Я создал диалоговое окно внутри библиотеки Win32 (с использованием редактора ресурсов) и теперь хочу показать его как прикладную программу (используя эту DLL), вызывает DisplayDialog, но он не работает.Создание и загрузка DialogBox из DLL
// AppProgram.cpp
...
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case WM_COMMAND:
switch (LOWORD (wParam)) {
case IDM_FILE_NEW_DIALOG:
DisplayDialog (hInst, hWnd);
break;
...
}
break;
....
}
return DefWindowProc(hWnd, msg, wParam, lParam);
}
Моя DLL выглядит как
#include "stdafx.h"
#include "myDLL.h"
EXPORT BOOL CALLBACK DisplayDialog (HINSTANCE hInst, HWND hWnd) {
DialogBox (hInst, MAKEINTRESOURCE (IDD_DIALOG1), hWnd, reinterpret_cast<DLGPROC> (DiagProc));
// MessageBox works here
}
...
Я проверил, что эта DLL отображает диалог, если диалог принадлежит AppProgram. Здесь я хочу отобразить диалог, когда он является частью библиотеки DLL.
Просьба предложить нам создать диалог внутри DLL или передать его из программы. + как показать диалог в данном сценарии. Заранее спасибо.
GetDlgItem (hWnd, IDC_EDIT_FNAME) хорошо работает в WM_INITDIALOG, но возвращает 0x00000000 в WM_COMMAND, пожалуйста, скажите мне, почему его «неправильно работает внутри WM_COMMAND. – null
@ajay - это другой вопрос. –