【发布时间】:2011-11-12 01:08:47
【问题描述】:
我在哪里可以通过 WinApi 找到消息框的标准系统图标?我想创建一个高级对话框(带有详细信息扩展)作为 WinApi 资源,但我想使用系统默认图标,如:
对于 .NET,我知道我会在 System.Drawing.SystemIcons 中找到它们,但是我在哪里可以使用原生 C 和 WinApi 找到它们?我该如何应用它们?
【问题讨论】:
标签: c winapi dialog icons messagebox
我在哪里可以通过 WinApi 找到消息框的标准系统图标?我想创建一个高级对话框(带有详细信息扩展)作为 WinApi 资源,但我想使用系统默认图标,如:
对于 .NET,我知道我会在 System.Drawing.SystemIcons 中找到它们,但是我在哪里可以使用原生 C 和 WinApi 找到它们?我该如何应用它们?
【问题讨论】:
标签: c winapi dialog icons messagebox
您应该能够使用LoadIcon 获取它们。要获取问号图标使用LoadIcon(NULL, IDI_QUESTION),其他标识符是IDI_ERROR、IDI_WARNING 和IDI_INFORMATION。
【讨论】:
没错,
如果有人需要我的代码来设置图标并播放相应的声音。
HICON hIcon = NULL;
if(mbdIcon == MBD_ICON_INFORMATION) {
hIcon = LoadIcon(NULL, IDI_INFORMATION);
MessageBeep(MB_ICONASTERISK);
} else if(mbdIcon == MBD_ICON_QUESTION) {
hIcon = LoadIcon(NULL, IDI_QUESTION);
MessageBeep(MB_ICONQUESTION);
} else if(mbdIcon == MBD_ICON_WARNING) {
hIcon = LoadIcon(NULL, IDI_WARNING);
MessageBeep(MB_ICONWARNING);
} else if(mbdIcon == MBD_ICON_ERROR) {
hIcon = LoadIcon(NULL, IDI_ERROR);
MessageBeep(MB_ICONERROR);
} else {
ShowWindow(hPictureIcon, SW_HIDE);
}
if(hIcon != NULL)
{
Static_SetIcon(hPictureIcon, hIcon);
}
愿它为某人节省几分钟。 :)
【讨论】: