创建一个窗口,里面有一个button控件,当点击botton时,弹出另外一个窗口,怎么实现?

win32sdk编程,c++语言实现... win32 sdk编程,c++语言实现 展开
 我来答
透彻又慎重的mmo
2019-04-15 · TA获得超过2583个赞
知道大有可为答主
回答量:6729
采纳率:72%
帮助的人:702万
展开全部


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 );//设置按钮为无效



推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式