Народ! Я чета туплю...
Не могу отобразить диалог, который находится в ДЛЛ (его темплейт). Как не бьюсь -- хрен.
вот так пробовал:
приходят в ДлгПрок следующие мессаги: WM_SETFONT, WM_DESTROY, WM_NCDESTROY и все
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
HMODULE hmod = GetModuleHandle(_T("DllStatic.dll"));
HRSRC hResDlg = FindResource(GetModuleHandle(_T("DllStatic.dll")), MAKEINTRESOURCE(IDD_DIALOG_LAB), RT_DIALOG);
if (NULL == hResDlg)
{
MessageBox(NULL, _T("Could not locate dialog box."), _T("Error"), MB_OK);
return 0;
}
HGLOBAL hResLoad = LoadResource(hmod, hResDlg);
if (NULL == hResLoad)
{
MessageBox(NULL, _T("Could not load dialog box."), _T("Error"), MB_OK);
return 0;
}
LPVOID lpResLock = LockResource(hResLoad);
if (NULL == lpResLock)
{
MessageBox(NULL, _T("Could not lock dialog box."), _T("Error"), MB_OK);
return 0;
}
CreateDialogIndirectParam(hInstance, (LPCDLGTEMPLATEW)lpResLock, NULL, DlgProc, 0);
return 0;
}
так тоже самое:
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
DialogBoxParam(GetModuleHandle(_T("DllStatic.dll")), MAKEINTRESOURCE(IDD_DIALOG_LAB), NULL, DlgProc, 0);
return 0;
}
А так выдает ошибку 1814 (The specified resource name cannot be found in the image file.):
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
DialogBoxParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG_LAB), NULL, DlgProc, 0);
err = GetLastError();
return 0;
}
Сама DlgProc:
BOOL CALLBACK DlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
switch (message)
{
case WM_INITDIALOG:
{
return TRUE;
}
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (wmId)
{
case IDOK:
EndDialog(hWnd, IDOK);
break;
case IDCANCEL:
EndDialog(hWnd, IDCANCEL);
break;
}
}
return FALSE;
}
Чего не так делаю?