gpt4 book ai didi

winapi - 如何在 CPrintDialogEx 中获取属性表的句柄

转载 作者:行者123 更新时间:2023-12-04 10:28:18 25 4
gpt4 key购买 nike

我正在尝试将属性页添加到 CPrintDialogEx并且惨败。我的代码目前是

PROPSHEETPAGE optionsPage1;
HPROPSHEETPAGE hOptionsPage = NULL;

memset(&optionsPage1, 0, sizeof(PROPSHEETPAGE));
optionsPage1.dwSize = sizeof(PROPSHEETPAGE);
optionsPage1.dwFlags = PSP_DEFAULT | PSP_USETITLE;
optionsPage1.hInstance = AfxGetInstanceHandle();
optionsPage1.pszTemplate = MAKEINTRESOURCE(IDD_QUICKREPORT_OPTIONS);
optionsPage1.hIcon = NULL;
optionsPage1.pszIcon = NULL;
optionsPage1.pszTitle = _T("Options");
optionsPage1.pfnDlgProc = (DLGPROC)CQuickReport::OptionsPropertyPageDlgProc;
optionsPage1.lParam = NULL;
m_pdex.nPropertyPages = 1;
hOptionsPage = CreatePropertySheetPage(&optionsPage1);
m_pdex.lphPropertyPages = &hOptionsPage;

INT_PTR nResult = CPrintDialogEx::DoModal();

属性页没有显示,所以我想在 WM_INITDIALOG 之后添加它在 CPrintDialogEx .创建后如何获取属性表的句柄。如果有人有一种勇敢的方式来完成这项工作并命名 CPrintDialogEx除了将祖 parent 的 txt 设置为 OnInitDialog 中的对话框之外

最佳答案

调用前应添加属性表DoModal .
OnInitDialogDoModal 之后调用,所以来初始化页面已经来不及了。

只需覆盖 DoModal反而:

class CMyPrintDialogEx : public CPrintDialogEx
{
public:
INT_PTR DoModal()
{
PROPSHEETPAGE optionsPage1;
memset(&optionsPage1, 0, sizeof(PROPSHEETPAGE));
optionsPage1.dwSize = sizeof(PROPSHEETPAGE);
optionsPage1.dwFlags = PSP_DEFAULT | PSP_USETITLE;
optionsPage1.hInstance = AfxGetInstanceHandle();
optionsPage1.pszTemplate = MAKEINTRESOURCE(IDD_QUICKREPORT_OPTIONS);
optionsPage1.pszTitle = _T("Options");
optionsPage1.pfnDlgProc = (DLGPROC)CQuickReport::OptionsPropertyPageDlgProc;
optionsPage1.lParam = NULL;
m_pdex.nPropertyPages = 1;
HPROPSHEETPAGE hOptionsPage = CreatePropertySheetPage(&optionsPage1);
m_pdex.lphPropertyPages = &hOptionsPage;

INT_PTR nResult = CPrintDialogEx::DoModal();

return nResult;
}
};

关于winapi - 如何在 CPrintDialogEx 中获取属性表的句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60535372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com