怎样在程序中设置一个button 按钮的disabled,然后对按钮换图

linuxxi_08 2009-06-09 06:02:44


在程序中动态设置一个button按钮的disabled,设置完以后对按钮换图,按钮换图程序的 DrawItem 已经实现。

这个换图是通过消息触发的吗????

谢谢!!!
...全文
299 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
datoucaicai 2009-06-10
  • 打赏
  • 举报
回复
// 用位图按钮
CBitmapButton m_BitmapBtn; //头文件中定义
m_BitmapBtn.LoadBitmaps(IDB_BMPRES,IDB_BMPRESSEL,IDB_BMPRESFOCUS,IDB_BMPREDISABLED); //初始化加载位图
m_BitmapBtn.SubclassDlgItem(IDC_BUTTON,this);
m_BitmapBtn.SizeToContent();


// 设置按钮disabled
m_BitmapBtn.EnableWindow(FALSE) ; //按钮显示位图IDB_BMPREDISABLED
Ryanwen 2009-06-10
  • 打赏
  • 举报
回复
如果你已经实现了DrawItem,也设置了按钮为BS_OWNERDRAW,那还有什么问题,调用EnableWindow函数会触发自绘
还没淹死的鱼 2009-06-10
  • 打赏
  • 举报
回复
EnableWindow就可以
fengrx 2009-06-10
  • 打赏
  • 举报
回复
SetButtonStyle(BS_OWNERDRAW | WS_TABSTOP);//设置自绘样式
Invalidate();//触发自绘事件,会自动调用DrawItem
softist 2009-06-10
  • 打赏
  • 举报
回复
对不起,敲错了,还不让改,这个论坛里有没有debug功能啊?
BS_OWNERDRAW
softist 2009-06-10
  • 打赏
  • 举报
回复
我估计是DrawItem没有被调用,你想寻求方法。是吧?
用程序把按钮加上LVS_OWNERDRAWFIXED风格了吗?
凤朝凰 2009-06-10
  • 打赏
  • 举报
回复
楼主用的是MFC么?看下CButton的方法,里面有的,具体是哪个我忘记了。SDK的话我就不知道了
linuxxi_08 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Ryanwen 的回复:]
C/C++ code
void CXXButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
......
UINT state;
state = lpDrawItemStruct->itemState;

if (state & ODS_DISABLED)
{
...在这画就可以了
}
......
}
[/Quote]

谢谢! 不好意思,是我没有把问题说明白啊,这个 DrawItem 我已经实现了。


我需要实现的是:

一: 给对话框里面的 按钮 设置disabled,通过程序动态设置,

而不是在对话框里面 对disabled选项 打勾勾。

二: 第二个问题是 当我给按钮设置好 disabled 后怎么去触发 DrawItem 给按钮换图片?

Ryanwen 2009-06-09
  • 打赏
  • 举报
回复

void CXXButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
// TODO: Add your message handler code here and/or call default
......
UINT state;
state = lpDrawItemStruct->itemState;

if (state & ODS_DISABLED)
{
...在这画就可以了
}
......
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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