Entwickler-Ecke
Windows API - [VC++ Problem] Fenster aus Resource anzeigen
Aya - Mi 30.07.03 19:15
Titel: [VC++ Problem] Fenster aus Resource anzeigen
Hi,
dashier ist leider kein Delphi problem, sondern ein VC++ prob... aber, da es bei beiden eigentlich in etwa gleich gehen müßte, würde mir sogar ne Delphi lösung reichen ;)
Ich hab nen Formular in ner RES Datei gemacht und möchte das jetzt gern anzeigen. Wie mach ich das??? :oops:
und, wie bekomme ich da dann mit ob jemand nen Button drückt??? Denn bisher hat mein Programm noch kein Handle o.Ä. (ist nen PlugIn für ein Programm, hat kein Hauptformular o.ä.)
Au'revoir,
Aya~
Aya - Mi 30.07.03 20:13
Hi,
hab das ganze jetzt mit CreateDialog hinbekommen, aber da kommt jetzt immer der fehler:
| Zitat: |
error LNK2001: unresolved external symbol __imp__CreateDialogParamA@20
fatal error LNK1120: 1 unresolved externals
Error executing link.exe |
Was bedeutet das??? :?
Au'revoir,
Aya~
Delete - Mi 30.07.03 20:42
Ungekürzt:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| #include <windows.h>
#define MAINDIALOG 100 #define IDM_BUTTON 110
BOOL CALLBACK dlgproc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_COMMAND: if(HIWORD(wParam)==BN_CLICKED && LOWORD(wParam)==IDM_BUTTON) { MessageBox(hwndDlg,"Button geklickt",NULL,0); return true; } case WM_CLOSE: EndDialog(hwndDlg,0); return true; default: return false; } }
int WINAPI WinMain(HINSTANCE hi,HINSTANCE,PSTR,int) { DialogBox(0,MAKEINTRESOURCE(MAINDIALOG),0,&dlgproc); return 0; } |
0 Fehler, 0 Warnungen. Der Dialog (ID = 100) besteht nur aus einem Button (ID = 110). :) Hilft das irgendwie weiter?
btw: Mit "CreateDialog" geht´s logischerweise auch. Da unterscheidet sich nur das Beenden:
Quelltext
1: 2:
| case WM_CLOSE: PostQuitMessage(0); |
und du brauchst natürlich eine Nachrichtenschleife.
Delete - Mi 30.07.03 20:46
Ach, was soll´s ... Fix umgebaut:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| #include <windows.h>
#define MAINDIALOG 100 #define IDM_BUTTON 110
BOOL CALLBACK dlgproc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_COMMAND: if(HIWORD(wParam)==BN_CLICKED && LOWORD(wParam)==IDM_BUTTON) { MessageBox(hwndDlg,"Button geklickt",NULL,0); return true; } case WM_CLOSE: PostQuitMessage(0); return true; default: return false; } }
int WINAPI WinMain(HINSTANCE hi,HINSTANCE,PSTR,int) { MSG msg; HWND hDlg;
hDlg = CreateDialog(0,MAKEINTRESOURCE(MAINDIALOG),0,&dlgproc); while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
DestroyWindow(hDlg);
return 0; } |
:)
Aya - Mi 30.07.03 20:56
Hi,
mh... hilft leider auchnich richtig weiter :(
Das mit der Fehlermeldung scheint aber auch nicht unbedingt am Code zu liegen...
Kann man denn CreateDialog jederzeit aufrufen, oder z.B. nur beim Programmstart etc...??
und, muß ich evtl irgendwas beachten wenn ich das aus ner DLL heraus mache??? (Ich bastle ja im grunde an ner DLL, in der DLL is der Dialog und soll wenn ich in der DLL z.B. die funktion Bla() aufrufe angezeigt werden)
Au'revoir,
Aya~
Delete - Mi 30.07.03 22:21
Du hast auch eingestellt, dass es eine GUI Anwendung werden soll?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!