如何获取 CPrintDialogEx 中 属性 sheet 的句柄
How can I get the handle to the property sheet in CPrintDialogEx
我正在尝试将 属性 页面添加到 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();
属性 页面未显示,所以我想在 CPrintDialogEx
中的 WM_INITDIALOG
之后添加它。创建 属性 sheet 后如何获取它的句柄。如果有人有一个勇敢的方法来完成这项工作并在 CPrintDialogEx
之外将祖父母的 txt 设置为 OnInitDialog
中的对话框
属性 sheet 应在调用 DoModal
之前添加。
OnInitDialog
是在DoModal
之后调用的,所以来不及初始化页面。
只需覆盖 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;
}
};
我正在尝试将 属性 页面添加到 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();
属性 页面未显示,所以我想在 CPrintDialogEx
中的 WM_INITDIALOG
之后添加它。创建 属性 sheet 后如何获取它的句柄。如果有人有一个勇敢的方法来完成这项工作并在 CPrintDialogEx
之外将祖父母的 txt 设置为 OnInitDialog
属性 sheet 应在调用 DoModal
之前添加。
OnInitDialog
是在DoModal
之后调用的,所以来不及初始化页面。
只需覆盖 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;
}
};