MFC 软件开发问题,如何实现”mfc menu buttonN“不同位置,相同响应?

输入您需解决的
软件开发问题并开始搜索,
IT异常查询网可以方便地提供各类
程序错误解决方案。
怎么让vc里的按钮禁用但是颜色不变灰,和正常按钮一样,只是不能点 - VC/MFC
&&&发布于: 21:54:54&&&
如何让vc里的按钮禁用但是颜色不变灰,和正常按钮一样,只是不能点。我需要控制一个开关必要时禁用,但是禁用以后很难看,我希望禁用时保留正常时的状态,网上找了代码说
& CMainFrame::CMainFrame() &
& this-& m_bAutoMenuEnable=FALSE; &
但是我的是基本dlg类,没有CMainFrame,也没有m_bAutoMenuEnable
还有说不影射消息响应函数就行,具体怎么做呢?------解决的方法--------------------------------------------------------禁用以后的状态比较明显啊,显不好看的话,可以在WM_PAINT中处理,爱搞成什么样子都行
------解决的方法--------------------------------------------------------可以自己定义一个成员变量保存按钮的状态。
class CXXXDlg
BOOL m_bIsD
然后在对应的响应函数中使用:
void XXX::OnButtonClick()
if(m_bIsDisable)//如果按钮被禁用
//返回,不执行任何操作
///在下面添加按钮未被禁用时的处理
------解决的方法--------------------------------------------------------仅对按钮来说,实现上很简单:
看你的那小段程序估计你是用MFC的,那么就从CButton类派生一个子类,给子类增加对WM_LBUTTONDOWN消息的处理。在你的处理函数里测试一个标志变量。希望允许按钮被点击时,将调用直接传给父类的OnLButtonDown,此时由于父类的OnLButtonDown默认的调Default从而实现的按钮的点击行为。不希望允许按钮被点击时,只需什么也不错即可。
------解决的方法--------------------------------------------------------如果是工具栏,做一个正常时的图象,作一个灰时的图象,CToolBarCtrl::SetImageList ,CToolBarCtrl::SetDisabledImageList来设置,包两个图象绘来一样不就是你要的结果。
相关解决方法
你也许会喜欢
Web前端&&热门解决方法
Web前端&&最新解决方法
Web前端&&随机解决方法
诚心交换友情链接:qq:在VC++的MFC下编程时,同一个button控件,如何让其第一次点击和第二次点击时的效果不同?_百度知道
在VC++的MFC下编程时,同一个button控件,如何让其第一次点击和第二次点击时的效果不同?
或者说,第一次点击与第二次点击,执行不同的程序段?
提问者采纳
给button的响应函数添加一个static变了 类型 int
、bool都也可以 ,利用static变量的特点函数内的局部变量如果为static类型 函数被反复调用 上一次调用的值再本次调用时 仍然保留着.....例如***::OnButton1(){
static bool x=
MessageBox(_T(&第一次&));
MessageBox(_T(&非第一次&));
首先谢谢您,鄙人的VC++很弱,比如我在button控件第一次被点击时,运行这个程序段:(当第二次点击时,运行与{ }中类似的一段程序,该如何编写?)void CMyDlg::OnButton1() {m_listctrl.DeleteAllItems();m_listctrl.InsertItem(i,&热轧&); m_listctrl.SetItemText(i,1,&步进炉&);}
改int 或者给类添加个int的成员变量....
提问者评价
谢谢,已经解决了,我能再问下,怎么样统计button控件的点击次数?您的解决方案只能区别第一/非第一
其他类似问题
为您推荐:
button控件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求高手解答,关于MFC动态创建Button并添加响应函数的问题!我现在只能响应鼠标左键的消息_百度知道
求高手解答,关于MFC动态创建Button并添加响应函数的问题!我现在只能响应鼠标左键的消息
在CMyView里面定义了CButton button和函数OnButton,然后在消息映射加了ON_COMMAND(IDC_BUTTON, OnButton)OnButton里面很简单就是MessageBox(&创建成功&);但是这样做好像只能实现响应鼠标左键的消息呀?怎么才能实现右键的消息呢?求高手解答!
重写Button类,然后为这类添加消息响应然后用这类定义一个变量可以把生成的按钮当成一个子窗口,然后为这个按钮添加右键单机消息响应。然后把你创建的按钮与变量关连 又或者你在父类添加右键单击,获得创建按钮的大小CRect,然后判断右键单击时坐标是否在那个矩形内,如果在,那么就当作是响应右键单击。我记得是有一个函数可以判断点是否在矩形内的……
其他类似问题
为您推荐:
鼠标左键的相关知识
其他1条回答
你这个是ON_COMMAND,实际上是命令消息,所以只有左键点击才有触发你应该写一个按钮CMyButton,按钮类继承CButton,按钮类CMyButton里添加右键或者其它消息。。。
你这个讲的比较笼统呀,创建了一个新类继承CButton,那么是不是要CMyButton mybutton,然后再mybutton.Create呀?但是你说的添加消息我还是不懂。。。。你有没有资料什么的让我学习一下呀!求帮忙了!
在你自己创建的按钮类里手动添加消息隐射和消息响应函数。。。你可以去看下vc技术内幕什么的
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 mfc button 图片 的文章

 

随机推荐