VS2010 如何在程序中更改Button控件的Disable属性值 C++

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2010 如何在程序中更改Button控件的Disable属性值 C++相关的知识,希望对你有一定的参考价值。

比如有一个单选钮,选择此单选钮时Button的Disable属性值为FLASE,否则为TRUE,程序中如何实现

VC++中,按钮属于CButton类,它继承自CWnd这个窗口基类。

Button控件的Disable属性是指使按钮变成灰色,即失效。由于按钮属于一种窗口,也就是窗口失效。在CWnd中有如下成员函数:

BOOL EnableWindow(
   BOOL bEnable = TRUE 
);
  微软帮助文档给出的说明主要意思为:如果参数为TRUE(默认),则窗口有效,为FALSE窗口失效。该函数调用会返回之前窗口的状态。
   对于指定的按钮控件 ,可以自己指定它的 ID 或  用系统的  默认ID . 这时使用 CWnd::GetDlgItem根据这个ID可以获取按钮(实际是CWnd*)的指针。此时直接使用该指针调用CWnd的EnableWindow函数参数为FALSE,如下:
   GetDlgItem(按钮ID) -> EnableWindow( FALSE );
   //在按钮对应对话框的窗口类中这    
   //样用,不是对应的窗口类,要先获取按钮所属的窗口
注意按钮CButton类的SetState并不能使按钮失效,而是模拟鼠标单击消息,该函数调用结束会恢复原始状态,即瞬间状态,之后会恢复原来状态。如:
   reinterpret_cast<CButton*>( 按钮ID ) ->SetState( 1 );
 //只是暂时设置为按下(不是失效),此时会发送WM_LBUTTONDOWN消息,该函数调用结 //束就会像松开鼠标的按钮一样
GetDlgItem有多个重载版本,注意调用方式。
如Win32版本的:
HWND hButton;
::GetDlgItem( hButton , 按钮ID );//获取按钮句柄
::EnableWindow( hButton , FALSE );//设置按钮为无效

参考技术A 首先为该按钮控件添加一个控件变量m_btn,然后调用该控件变量的成员函数m_btn.EnableWindow(1), m_btn.EnableWindow(1)实现按钮的禁用或启用,改实现代码可以在按钮的响应函数里面实现,设置一个标记变量,点一下置为false,点一下置为true,根据标记变量判断启用与禁用。本回答被提问者和网友采纳 参考技术B 你设置完了自己去后台看去就行了呀

以上是关于VS2010 如何在程序中更改Button控件的Disable属性值 C++的主要内容,如果未能解决你的问题,请参考以下文章

如何在VS2010 WPF设计器中控制自定义控件的默认属性

(转载)VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)

VS2010-MFC(常用控件:按钮控件ButtonRadio Button和Check Box)

(转载)VS2010/MFC编程入门之二十二(常用控件:按钮控件ButtonRadio Button和Check Box)

更改过电脑时间后 vs2010运行不出正确结果 是啥原因

C# winform编程 开发环境VS2010 listview控件问题