C++如何给一个自绘Button贴图作背景

不是MFC我生成了一个按纽HWNDTestBTN=CreateWindow(TEXT("Button"),TEXT("Test"),BS_PUSHBUTTON|WS_VI... 不是MFC我生成了一个按纽
HWND TestBTN = CreateWindow(
TEXT("Button"),
TEXT("Test"),
BS_PUSHBUTTON | WS_VISIBLE |WS_CHILD|BS_OWNERDRAW,// OWNERDRAW自绘按钮标识
300,
150,
120,
40,
g_hWnd,
NULL,
hInst,
NULL);
如何把test.bmp贴在上面
展开
 我来答
437384801
推荐于2016-11-27 · TA获得超过1867个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:495万
展开全部
恩,很好用的是纯正的api,用loadimage(里面的参数),获取对应的image 的句柄,这个是api,然后如果是在你的mfc环境下,可以这么做获取Cbutton* b=Cbutton::fromhandle(你上面的按钮句柄),然后b->setbitmap(图像对应的句柄),或者直接api函数,SetBitmap(按钮句柄,图片句柄),遗憾,我已经转入C﹟的学习,
追问
MFC的我会贴,就是想知道API的,把主要的再说一下句柄获得了,然后呢,我贴上了但是老是闪,若隐若现,难道winmain老刷新?不刷新怎么办,还有贴不到这个按纽上面去,贴下面去了,好像也没有设置Z序的地方啊
追答
看看在WM_PAINT 里面的看看能话吗,
你看看吧。。。
下面解释很好啊。。。
今天做了个图片浏览器,用了Java呵C#一起完成的,才发现C#跟java差不多
为什么我要用两种语言呢?
1:刚学习C# 不懂的枚举的文件的函数或者类,但是Java的我会,因此将得到的文件名字写入了一个文本文件。
2:因为Java要虚拟机的,种是超过内存,而且还是要布局,图像无法放大,
因此用了C#,用去来跟Java差不多,于是我很顺利的读取了该文件。并且显示的很好。。
那学习VC 呢,VC很复杂,但是想想C#的简单和Javad的简单,值得学习C++
http://msdn.microsoft.com/en-us/library/a1446sbt(v=vs.71).aspx
Parameters
hBitmap
The handle of a bitmap.
Return Value
The handle of a bitmap previously associated with the button.

Remarks
The bitmap will be automatically placed on the face of the button, centered by default. If the bitmap is too large for the button, it will be clipped on either side. You can choose other alignment options, including the following:

BS_TOP
BS_LEFT
BS_RIGHT
BS_CENTER
BS_BOTTOM
BS_VCENTER
Unlike CBitmapButton, which uses four bitmaps per button, SetBitmap uses only one bitmap per the button. When the button is pressed, the bitmap appears to shift down and to the right.

Example
CopyCButton myButton;

// Create a bitmap button.
myButton.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_BITMAP,
CRect(10,10,60,50), pParentWnd, 1);

// Set the bitmap of the button to be the system check mark bitmap.
myButton.SetBitmap( ::LoadBitmap(NULL, MAKEINTRESOURCE(OBM_CHECK)) );
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
栖凤婷
推荐于2016-06-15 · TA获得超过551个赞
知道小有建树答主
回答量:468
采纳率:0%
帮助的人:365万
展开全部

Win32下按钮自绘:

  1. 新建一个类CBmpButton。写一个Create函数,此函数加载bmp到一个HBITMAP中;创建按钮CreateWindow;修改按钮消息循环SetWindowLong到自定义的消息循环中

  2. 在自定义的消息循环中,捕获WM_PAINT消息,在此消息中使用SelectObject选中第1步中的HBITMAP,然后再在按钮的HDC中使用BitBlt绘制背景图

  3. 如有需要,捕获WM_LBUTTONUP等消息并添加响应。


MFC中自绘:

    1.子类化。PreSubclassWindow

    2.重载OnPaint、OnCtrlColor、OnLButtonDown等函数

    3.在DrawItem和OnPaint中使用BitBlt在按钮的CDC中绘背景图片。


综上所述,自绘的关键是子类化,然后重载实现Paint、ButtonDown等函数。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式