Inhalt DialogBox --> MFC Dialog
-
Hallo,
ich bin totaler MFC noob (ja und eigentlich auch c++ noob^^).
Ich habe eine Konsolen App die eine DIalogBox erstellt und dort einen Editor eines Audio Plugins lädt:
... ... ... MyDLGTEMPLATE t; t.style = WS_POPUPWINDOW|WS_DLGFRAME|DS_MODALFRAME|DS_CENTER; t.cx = 100; t.cy = 100; DialogBoxIndirectParam (GetModuleHandle (0), &t, 0, (DLGPROC)EditorProc, (LPARAM)effect); ... ... ... INT_PTR CALLBACK EditorProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { AEffect* effect = theEffect; switch(msg) { case WM_INITDIALOG : { SetWindowText (hwnd, "VST Editor"); SetTimer (hwnd, 1, 20, 0); if(effect) { printf ("HOST> Open editor...\n"); effect->dispatcher (effect, effEditOpen, 0, 0, hwnd, 0); printf ("HOST> Get editor rect..\n"); ERect* eRect = 0; effect->dispatcher (effect, effEditGetRect, 0, 0, &eRect, 0); if(eRect) { int width = eRect->right - eRect->left; int height = eRect->bottom - eRect->top; if(width < 100) width = 100; if(height < 100) height = 100; RECT wRect; SetRect (&wRect, 0, 0, width, height); AdjustWindowRectEx (&wRect, GetWindowLong (hwnd, GWL_STYLE), FALSE, GetWindowLong (hwnd, GWL_EXSTYLE)); width = wRect.right - wRect.left; height = wRect.bottom - wRect.top; SetWindowPos (hwnd, HWND_TOP, 0, 0, width, height, SWP_NOMOVE); } } } break; case WM_TIMER : if(effect) effect->dispatcher (effect, effEditIdle, 0, 0, 0, 0); break; case WM_CLOSE : { KillTimer (hwnd, 1); printf ("HOST> Close editor..\n"); if(effect) effect->dispatcher (effect, effEditClose, 0, 0, 0, 0); EndDialog (hwnd, IDOK); } break; } return 0; }wie kann ich das ganze auf mein MFC Dialogfenster bekommen, also kein neues erzeugen, sondern auf das hauptfenster der App?
schlussendlich muss dieser Aufruf hier richtig sein denke ich mal
effect->dispatcher (effect, effEditOpen, 0, 0, hwnd, 0);
wobei ich für das hwnd irgendwie mein MFC Dialogfenster angeben muss, nur wie?
(ist ein void pointer der vorletzte Parameter)
am liebsten wäre es mir, wenn ich noch die position angeben könnte und falls der MFC Dialog zu klein ist ihn zu resizen
aber genug so kurz vorm wochende^^
grüsse titanico