VS2010中怎么添加消息处理函数,,,急啊,,,,,,

VS2010中怎么添加消息处理函数,,,急啊,,,,,,,第1张

Const int MessageNum = 0x0400

重载DefWndProc方握兆法,

判断消息是否MessageNum

如果是自己定义的函喊皮竖数

DoSomething

否则交给系统处理郑大

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

( 按钮ID ) ->SetState( 1 )

//只是暂时设置为薯拆伍按下(不是失效),此时会发送WM_LBUTTONDOWN消息,该函数调用结 //束就会像松开鼠标的按钮一样

GetDlgItem有多个重载版本,注意调用方式。

如Win32版本的:

HWND hButton

::GetDlgItem( hButton , 按钮ID )//获取按钮句柄

::EnableWindow( hButton , FALSE )//设置按钮为无效


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11971640.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存