【发布时间】:2015-06-28 13:16:11
【问题描述】:
我正在使用 Microsoft Visual Studio Community 2015 RC 创建一个 Win32 应用程序。我正在使用 C++。
当我调用PrintDlg() 或PrintDlgEx() 时,生成的对话框具有灰色背景。无论如何,我检查过的所有其他程序中的相同对话框都有白色背景。
我看到有一些方法可以处理WM_CTLCOLORDLG 来设置对话框的背景颜色,但是由于所有其他应用程序都具有相同的行为,我认为它们并非都是为以相同的方式处理此消息而构建的.
我在这里包含了我用来打开对话框的代码PrintDlg():
PRINTDLG print_dialog{
sizeof(PRINTDLG),
hWnd,
NULL, NULL, NULL,
0,
0, 0, 0, 0,
1,
NULL, 0,
NULL,
};
if (PrintDlg(&print_dialog))
{
...
}
还有PrintDlgEx()的代码:
PRINTDLGEX print_dialog = {};
print_dialog.lStructSize = sizeof(PRINTDLGEX);
print_dialog.hwndOwner = hWnd;
print_dialog.Flags = PD_NOPAGENUMS;
print_dialog.nStartPage = START_PAGE_GENERAL;
if (PrintDlgEx(&print_dialog))
{
...
}
我的申请有什么问题?
非常感谢。
【问题讨论】:
-
使用 PrintDlgEx() 代替。
-
@HansPassant 我已经尝试过使用
PrintDlgEx(),但我得到了相同的结果。 -
请显示您使用PrintDlgEx的代码。
-
@IInspectable 我已经使用 PrintDlgEx 包含了代码。
标签: c++ user-interface winapi