CreateWindow mit Resource
-
hi
wenn man ein Dialog erzeugt, kann man ja wunderbar mit einem resourceeditor das design erstellen.
in meinem programm erzeuge ich aber mit CreateWindow ein fenster, welches sich im Hauptfenster meines Programmes befindet (da soll es auch bleiben).
leider muss ich die buttons, checkboxen... alle selbst erstellen
wie z.B. so
Code:hButton1 = CreateWindow( "button","Beenden", WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON, 30, 330, 100, 30, hChild2, (HMENU)400, hInstance, NULL);
ist es denn nicht möglich das design für ein mit CreateWindow erzeugtes fenster aus einer resource zu laden?
vielen dank für eure hilfe
slower
-
The CreateDialog function uses the CreateWindowEx function to create the dialog box.
[...]
Finally, CreateDialog returns the window handle to the dialog box.Damit sollte es doch dann möglich sein, den Dialog entsprechend zu positionieren
-
hhhmm ja, schon klar
aber wie lade ich dann die resource?
-
CreateDialog übergibst Du per MAKEINTRESOURCE(IDD_DIALOGRESOURCENNAME) den Dialog aus Deinen Resourcen.
-
ich will es ja nicht mit CreateDialog sondern mit CreateWindowEx machen.
also wie geht es da?
-
Gar nicht.
-
Du kannst natürlich die Funktionalität von CreateDialog nachbauen, aber das willst du bestimmt auch nicht.
-
es muss doch möglich sein in meiner anwendung fenster mit hilfe von resourcen zu erstellen ohne die funktion createdialog?
denn bei createdialog hab ich immer ein fenster, welches sich nicht mit dem Hauptprogrammfenster mit bewegt, also außerhalb ist. das will ich vermeiden.
oder gibt es eine möglichkeit einen dialog zu erstellen, der meinen ansprüchen entspricht?
so gehts nicht:
CreateDialog ( hInst,"IDD_TabGlobal", hChild2,(DLGPROC)ChildWndProc);
IDD_TabGlobal DIALOGEX 200,10,100,100 STYLE WS_CHILD | WS_VISIBLE EXSTYLE WS_EX_CLIENTEDGE FONT 8, "MS Sans Serif" BEGIN PUSHBUTTON "Nein",IDNO,10,10,50,14 END
-
Könnte sein das das dir weiterhilft:
-
Du könntest es z.B. auch WM_MOVING und WM_SIZING von hChild2 abfangen und per SetWindowPos an den Dialog weiterleiten
abervielleicht hilft dir auch der vorherige Tip - je nach dem, was genau du überhaupt vorhast
-
slower schrieb:
ist es denn nicht möglich das design für ein mit CreateWindow erzeugtes fenster aus einer resource zu laden?
Na klar ist das möglich! Mach dir einfach zuerstmal eine Struktur:
struct CHILD_PROPERTIES { DWORD dwExStyle; LPCTSTR lpClassName; LPCTSTR lpWindowName; DWORD dwStyle; int x; int y; int nWidth; int nHeight; UINT Parent_ID; // 0, wenn Parent==Hauptfenter // sonst die ID des Parent-Controls (z.B. ne GroupBox) UINT ID; };
Solche Strukturen füllst du z.B. in einem Hex-Editor (hängst sie halt hintereinander). Das kannst du dann als z.B. .dat-File speichern und in deine Resourcen aufnehmen per BINARY. In deinem Programm schreibst du dann eine Funktion, die die Strukturen ausliest und die Fenster erstellt.
Ich frag mich aber, warum du das nicht mit nem Dialog machen willst.slower schrieb:
so gehts nicht
Könntest du das bitte präzisieren?
-
naja ich meine mit dem obrigen sorce erhalte ich nur ein fenster, welches sich nicht mit dem Hauptprogrammfenster mit bewegt, also außerhalb ist. das will ich vermeiden.
-
WM_MOVE und WM_SIZE abfangen und an den Dialog weiterleiten
Sorry, oben hatte ich WM_MOVING und WM_SIZING geschrieben - das ist aber nicht nötig