在VC++中如何响应static控件的单击消息?

来源:百度知道 编辑:UC知道 时间:2024/05/27 12:48:12
请不要和我讲MFC和控件类!!!谢谢

我已经设置了static控件的notify风格,那它的单击消息名称是什么?如何在对话框函数中截获?(直接case WM_XXX可以么?)

1、可以使用了“notify”风格(即是控件的SS_NOTIFY风格)后,当点击该控件时,其父窗口会收到下列消息:
消息名为:
WM_COMMAND
消息的参数:
wParam: LOWORD(wParam)存放的是控件的ID,HIWORD(wParam)放的是STN_CLICKED(这是静态控件被 点击的标志)
lParam: 该控件的句柄。

2、例子:
case WM_COMMAND:
{
if(HIWORD(wParam) == STN_CLICKED)
{
if(LOWORD(wParam) == 某个控件)
{
处理之.
}
}
}

使用了“notify”风格(即是控件的SS_NOTIFY风格)后,当你点击该控件时,其父窗口会收到下列消息:

消息名为:
WM_COMMAND
消息的参数:
wParam: LOWORD(wParam)存放的是控件的ID,HIWORD(wParam)放的是STN_CLICKED(这是静态控件被 点击的标志)
lParam: 该控件的句柄。

代码为:
case WM_COMMAND:
{
if(HIWORD(wParam) == STN_CLICKED)
{
if(LOWORD(wParam) == 某个控件)
{
处理之.
}
}
}

处理WM_LBUTTONDOWN消息

case WM_LBUTTONDOWN:
{
// 获取焦点句柄
HWND hFocus = GetFocus();
if ( hFocus == hStatic )
{
// 处理你的逻辑
}
}
break;

或者处理WM_COMMAND消息,wParam 就是点击的ID。

case WM_COMMAND: