M
Der CALLBACK -Funktion einen weiteren Parameter zu übergeben war natürlich nicht möglich.
Das Handel meiner Dialogbox erhalte ich in der CALLBACK -Funktion von mainWindows mittels get -Funktion, die ich in der Klasse implementiert habe die mein Dialog mit ::CreateDialogParam(...) erzeugt.
Hier noch eben ein paar Codeschnipsel:
-----main.h--------
#include ...
//Funktionsdeklarationen, unter anderem auch:
HWND getDialog();
-----main.cpp------
HWND hDialog; //global definiertes Handel
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdArgs, int cmdShow) {
...
mainWindow.create();
hDialog = CreateDialogParam(...); //Dialogbox
...
}
HWND getDialog() {return hDialog;}
-----procedure.cpp--------
LRESULT CALLBACK Win::windowProcedure(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
LRESULT returnValue = 0; // return value
// Controller des window Handle's
static Controller *ctrl;
ctrl = (Controller*)::GetWindowLongPtr(hwnd, GWL_USERDATA);
HWND childWindow = getDialog(); // handle der Dialogbox
HWND canvas = FindWindowEx(hwnd, 0, NULL, L"Zeichenfläche"); // handle einer Zeichfläche
switch(msg)
{
...
case WM_SIZE:
returnValue = ...
SetWindowPos(glWindow,HWND_BOTTOM,0,0,200,300,NULL);
SetWindowPos(canvas, HWND_TOP, 0, HIWORD(lParam)-160,300,160,NULL);
break;
...
}
}
Ich hoffe, dass ich dem Forum gerecht geworden bin und soweit alles richtig gemacht habe. Ein Problem wäre damit vorerst gelöst
Euch noch viel Spaß beim Programmieren, wünscht euch
maggus