我有一个 WH_CALLWNDPROC 钩子代码,用于处理 WM_INITDIALOG 消息以获取有关消息框的信息。我可以获得“消息”、“标题”、“按钮”,但我无法获得“图标”信息。我正在尝试使用以下函数:
long getIcon(HWND hwnd) { // handle of messagebox dialog
HWND hlbl = GetDlgItem(hwnd,20);
wcout << "LABEL HWND: " << hlbl << endl;
if (hlbl != NULL) {
LRESULT r = SendMessage(hlbl,WM_GETICON,0,0);
return (long)r;
}
return 0;
}
这个函数总是返回0。我用MS Spy++检查过了,发现图标句柄为0。 正确的获取图标方式是什么?
MessageBox
图标是系统图标,您可以通过使用LoadImage
(或LoadIcon
)和IDI_INFORMATION
、IDI_ERROR
、IDI_WARNING
或IDI_QUESTION
进行加载。 - jamesdlin