具有 Windows 7 外观的消息框
Posted
技术标签:
【中文标题】具有 Windows 7 外观的消息框【英文标题】:Message boxes with Windows 7 look-and-feel 【发布时间】:2013-07-16 21:06:27 【问题描述】:我提出了这篇关于自定义消息框设计的 MSDN 文章:
User Interface Text
原生消息框如下所示:
但我的消息框看起来像这样:
这就是我想要的:
我正在使用 C++,这是我的代码(用于确认退出消息的代码):
int ccm()
int msgbox = MessageBox(
NULL,
(LPCWSTR)L"Do you really want to quit?",
(LPCWSTR)L"Music",
MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2
);
switch (msgbox)
case IDYES:
initdw();
break;
case IDNO:
adw();
break;
return msgbox;
我调用 ccm();当用户想要退出并且我这样检测时
case WM_CLOSE:
ccm();
return 0;
但我想要看起来像原始 windows 样式的代码 我不想设计自定义消息我想要原生代码
【问题讨论】:
我认为您展示的许多示例都不是标准消息框,它们是设计为类似于标准的自定义窗口。 画图、写字板、语音识别都是原生的 【参考方案1】:您正在寻找的自定义类型可以通过使用TaskDialog()
或TaskDialogIndirect()
而不是MessageBox()
来实现。它们是 Vista 和更高版本 Windows 上的首选消息框功能,因为它们更灵活,并且更多地使用标准化的 Windows UI 元素,以便与其他 UI 的外观更加一致。
例如:
TaskDialog(hMyWnd, hInstance, L"Music", L"You have the latest version of Music", NULL, TDCBF_OK_BUTTON, MAKEINTRESOURCE(MY_MUSIC_ICON_ID), NULL);
int iBtn = IDNO;
if (TaskDialog(hMyWnd, NULL, L"Music", L"Do you really want to quit?", NULL, TDCBF_YES_BUTTON | TDCBF_NO_BUTTON, NULL, &iBtn) == S_OK)
switch (iBtn)
case IDYES:
initdw();
break;
case IDNO:
adw();
break;
【讨论】:
以上是关于具有 Windows 7 外观的消息框的主要内容,如果未能解决你的问题,请参考以下文章