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

2024-12-07 08:26:45
推荐回答(4个)
回答1:

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) == 某个控件)
{
处理之.
}
}
}

回答2:

使用了“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) == 某个控件)
{
处理之.
}
}
}

回答3:

处理WM_LBUTTONDOWN消息

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

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

case WM_COMMAND:
{
if ( wParam == ID_STATIC_YOUR )
{
// 处理你的逻辑
}
}

回答4:

推荐你看看孙鑫<VC深入详解>,上面讲得很详细。