如何设置CButtonST按钮在disable状态下的图标?

sanpwy 2011-10-12 03:26:55
定义了一个CButtonST类型的按钮,
由于类本身只提供了两种状态的图标显示,就是鼠标在和不在按钮上两种不同的状态。
按钮在disable时全变灰了,轮廓很模糊,因此想知道如何设置disable状态时的图标。

在网上找了很久,
知道使用cbitmapbutton可以定义四种状态,
但是再将按钮改成cbitmapbutton不现实,而且CbuttonST具有很多cbitmapbutton没有的功能,
所以请不要再说用cbitmapbutton了。

至于drawitem中自绘制,自己琢磨了蛮久,目前还是搞不清,
不知道哪位能指点下
...全文
269 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanpwy 2011-10-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 laslull 的回复:]
你可能要做三件事情
1.添加或者修改buttonst接口 增加disable状态的icon/bitmap设置
2.m_csBitmaps结构里保存对应的icon/bitmap
3.模拟其他两种状态的绘制 依葫芦画瓢把你的disable状态下的位图贴上去

贴位图位置主要见我上贴
[/Quote]

还没试,不过非常感谢你的回答
laslull 2011-10-13
  • 打赏
  • 举报
回复
你可能要做三件事情
1.添加或者修改buttonst接口 增加disable状态的icon/bitmap设置
2.m_csBitmaps结构里保存对应的icon/bitmap
3.模拟其他两种状态的绘制 依葫芦画瓢把你的disable状态下的位图贴上去

贴位图位置主要见我上贴
landy_cheung 2011-10-13
  • 打赏
  • 举报
回复
自己改改代码就不行了嘛。
laslull 2011-10-13
  • 打赏
  • 举报
回复
void CButtonST::DrawItem(LPDRAWITEMSTRUCT lpDIS)
下面用到三个函数都需要你改写,注意最后一个参数就是disable状态
DrawTheIcon
DrawTheBitmap
DrawTheText
laslull 2011-10-13
  • 打赏
  • 举报
回复
cbuttonst我也用过
disable状态是自绘的
你要改 只能改它的自绘代码了
sanpwy 2011-10-13
  • 打赏
  • 举报
回复
nobody knows?
sanpwy 2011-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 shen_wei 的回复:]

GetDlgItem(IDC_BUTTON)->EnableWindow(TRUE);

可以直接这样。。
[/Quote]

这个就将按钮enable了啊,
我是要修改按钮在disable状态下的图标,不是默认的变灰的那种
shen_wei 2011-10-12
  • 打赏
  • 举报
回复
GetDlgItem(IDC_BUTTON)->EnableWindow(TRUE);

可以直接这样。。

15,979

社区成员

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

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