我在Win32 DLL(使用資源編輯器)內創建了一個對話框,現在想要顯示它作爲應用程序(使用此DLL)調用DisplayDialog,但它不起作用。從DLL創建並加載DialogBox
// 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中正常工作,但在WM_COMMAND中返回0x00000000,請告訴我爲什麼它在WM_COMMAND中不能正常工作。 – null 2013-02-20 05:59:57
@ajay - 這是另一個問題。 – 2013-02-20 09:31:47