BM_SETIMAGE 如何使用

f22fbi 2009-03-24 08:56:57

SendMessage(hwndBN,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBitmap);
hwndBN是button类的子窗口的句柄,风格为BS_BITMAP

运行上面那句没有任何变化

给BS_BITMAP的按钮上显示图片应该怎么做?

用API

...全文
428 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sighout 2011-04-06
  • 打赏
  • 举报
回复
你的BUTTON Style 有没有包含 BS_BITMAP
f22fbi 2009-03-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 DavidHsing 的回复:]
wParam
The type of image to associate with the button. This parameter can be one of the following values:
IMAGE_BITMAP
IMAGE_ICON
lParam
A handle to the image to associate with the button.


你能 draw 出来说明你的 lParam 应该当时是有效的,
个人觉得要看看,这里给定的 handle 是不是全局有效的,可能 handle 只是你某个函数里面的局部变量。
建立成全局的试试看
[/Quote]
已经是全局的了
SendMessage(hwndBN,BM_SETSTYLE,BS_FLAT,true);
这句可以成功
cnzdgs 2009-03-26
  • 打赏
  • 举报
回复
是这样调没错,看看hBitmap是不是被你Delete了。如果找不到问题,把代码贴完整。
DavidHsing 2009-03-26
  • 打赏
  • 举报
回复
是不是你的这个 hwndBN 又自己响应了 OnPaint 或者 OnDraw 呢?
f22fbi 2009-03-25
  • 打赏
  • 举报
回复
没人?自己UP
DavidHsing 2009-03-25
  • 打赏
  • 举报
回复
wParam
The type of image to associate with the button. This parameter can be one of the following values:
IMAGE_BITMAP
IMAGE_ICON
lParam
A handle to the image to associate with the button.


你能 draw 出来说明你的 lParam 应该当时是有效的,
个人觉得要看看,这里给定的 handle 是不是全局有效的,可能 handle 只是你某个函数里面的局部变量。
建立成全局的试试看
f22fbi 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sys0009 的回复:]

应该没问题啊,按钮调下UpdateWindow刷新下。

或者SendMessage(hwndBN,BM_GETIMAGE,IMAGE_BITMAP,0L);看下返回值是否设置成功。

[/Quote]

位图没错,我用这个位图可以在窗口上画出来

可以再button的按钮过程中接收到BM_SETIMAGE消息

SendMessage(hwndBN,BM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBitmap);应该是返回改按钮上前一次位图的句柄

我调用了2次

但是第二次返回的值还是0;

说明虽然这个语句执行了

但是并没有效果
sys0009 2009-03-25
  • 打赏
  • 举报
回复

应该没问题啊,按钮调下UpdateWindow刷新下。

或者SendMessage(hwndBN,BM_GETIMAGE,IMAGE_BITMAP,0L);看下返回值是否设置成功。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧