optionsPage1.dwFlags = PSP_DLGINDIRECT;
...
optionsPage1.pResource = (DLGTEMPLATE*)IDD_QREPORT_OPTIONS;
IDD_QREPORT_OPTIONS
- целое число, его не следует принудительно приводить к DLGTEMPLATE*
.Это будет указывать pResource
на некоторый случайный адрес памяти и, вероятно, является причиной сбоя.
Вам все равно не нужно pResource
.Замените PSP_DLGINDIRECT
на PSP_DEFAULT
, это будет указывать CreatePropertySheetPage
на использование pszTemplate
.
PROPSHEETPAGE
документация:
pszTemplate
Тип: LPCSTR
Шаблон диалогового окна для созданиястраница.Этот член может указывать либо идентификатор ресурса шаблона, либо адрес строки, в которой указано имя шаблона.Если установлен флаг PSP_DLGINDIRECT
в элементе dwFlags
, pszTemplate
игнорируется.Этот член объявлен как объединение с pResource
.
Пример:
INT_PTR CALLBACK dlgproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_COMMAND:
if(LOWORD(wParam) == IDC_BUTTON1)
MessageBox(hwnd, _T("test"), 0, 0);
return 0;
}
return FALSE;
}
PROPSHEETPAGE optionsPage1 = { 0 };
optionsPage1.dwSize = sizeof(PROPSHEETPAGE);
optionsPage1.dwFlags = PSP_DEFAULT | PSP_USETITLE;
optionsPage1.hInstance = AfxGetInstanceHandle();
optionsPage1.pszTemplate = MAKEINTRESOURCE(IDD_QREPORT_OPTIONS);
optionsPage1.pszTitle = _T("Options");
optionsPage1.pfnDlgProc = dlgproc;// AfxWndProc;