Dialog schließen
-
Das war gerade für das Kreuz oben rechts
-
komisch...Petzold hat die Klasse aber auch Registriert...naja, da muss ich wohl noch lesen...
jetzt bekomme ich diese Fehlermeldung :
Error LCDCON.CPP 16: Cannot convert 'int (__stdcall *)(void *,unsigned int,unsigned int,long)' to 'int (__stdcall *)()' in function __stdcall WinMain(void *,void *,char *,int)
betreffende Zeile :
hwnd = CreateDialog (hInstance, szAppName, NULL, DlgProc);
und DlgProc :
BOOL CALLBACK DlgProc (HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case IDCANCEL: PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hdlg, message, wParam, lParam) ; }
sorry, ich kapier das nicht...in der Hilfe steht, die API
thx
-
erwartet als letzten Parameter die Adresse der DialogProc, die gebe ich ihm doch oder?
ausversehen auf Enter gedrückt...
-
Wenn der Petzold da schon DLGWINDOWEXTRA angibt dann soll bestimmt auch DefDlgProc aufgerufen werden und nicht DefWindowProc.
-
Original erstellt von <fadfreak>:
erwartet als letzten Parameter die Adresse der DialogProc, die gebe ich ihm doch oder?Nö. Du gibst ihm einen Pointer auf eine Window-Proc.
-
funktioniert immernoch nicht :
#include <windows.h> #include "config.h" BOOL CALLBACK DlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("LCDCon") ; HWND hwnd ; MSG msg ; hwnd = CreateDialog (hInstance, szAppName, 0, DlgProc); ShowWindow (hwnd, iCmdShow) ; while (GetMessage (&msg, NULL, 0, 0)) { TranslateMessage (&msg) ; DispatchMessage (&msg) ; } return msg.wParam ; } BOOL CALLBACK DlgProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_DESTROY: PostQuitMessage (0) ; return 0 ; } return DefDlgProc (hwnd, message, wParam, lParam) ; }
-
nimm doch den quellcode von der cd. der wird wohl richtig sein und funktionieren?
-
ja...ich glaube das werde ich wohl machen müssen...schade...
Mein Ziel : Eine Dialog-Box öffnen, ohne vor ein Fenster geöffnet zu haben...also kein CreateWindow, ist das überhaupt möglich?Danke
-
Natürlich ist sowas möglich
-
Original erstellt von <fadfreak>:
**ja...ich glaube das werde ich wohl machen müssen...schade...
Mein Ziel : Eine Dialog-Box öffnen, ohne vor ein Fenster geöffnet zu haben...also kein CreateWindow, ist das überhaupt möglich?Danke**
Geh auf http://www.winapi.net unter "Codeschnipsel" findest Du "Eine rein dialog-basierte Anwendung erzeugen"
Das ist genau DAS, was Du suchst!
-
Ja, habe ich gemacht, immernoch der gleiche Fehler :
Compiling LCDCON.CPP:
Error LCDCON.CPP 15: Cannot convert 'int (__stdcall *)(void *,unsigned int,unsigned int,long)' to 'int (__stdcall *)()' in function __stdcall WinMain(void *,void *,char *,int)Ist das mein Compiler?
aber das wars eigentlich, was ich suchte...
-
Lösch deinen kompletten Quelltext und füge das Beispiel von Winapi.net ein!
Du bist der erste, der mit dem dort abgedruckten (kompletten) Quelltext Fehler hat!
-
HALT DIE KLAPPE
-
Nein, nein. Hör nicht auf die anderen! Du musst den letzten Parameter in CreateDialog() nach DLGPROC casten. Also so:
CreateDialog(..., (DLGPROC)DialogProc);
-
Wenn man das richtig macht braucht man den Cast NICHT!
-
@<Ars>: Halt dein Maul, du kleiner IDIOT !!!!!!!! Du hast ja keine Ahnung! Im BCB z.B. MUSS man das casten!
-
DANN IST DER BCB EIN ASOZIALER COMPILER!! ICH WERDE DAS GLEICH TESTEN, OB DU WIRKLICH RECHT HATTEST, NOTFALLS ENTSCHULDIGE ICH MICH EIN BISSCHEN
-
SCHULDIGUNG. DIESER BCB IST EIN AR5CH
-
Du kannst dich jetzt schon entschuldigen. Frage ist, ob ich sie annehme! Ach ja, achte auch bitte auf die Fehlermeldung, die <fadfreak> angegeben hat. Das ist ein klarer Konvertierungsfehler, den man mit einem Cast ausbügeln kann.
-
Ars: #define STRICT
ABER DASS DAS BEIM BCB NICHT STANDARDMÄSSIG GESETZT IST REGT MICH UNHEIMLICH AUF!!! :o