我正在使用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))
{
...
}
我的申请有什么问题?
非常感谢。
最佳答案
您的过程可能没有主题,因为它没有表现出v6 comctl32。非主题对话框默认为带有彩色背景的按钮。主题对话框具有白色背景。
将comctl32 v6 list 添加到您的可执行文件中。