DialogBox wird nicht erstellt und Fenster friert ein, wieso?
-
*lol* ? dann erscheint die DialogBox.... aber wieso ?
-
Schreib mal BOOL, TRUE und FALSE statt der Kleinbuchstaben und es geht auch
ohne DLGPROC.MfG
-
Hmm ihr scheint ja auf einem ziemlich hohen geistigen Niveau zu sein. Vllt guckt ihr euch einfach mal meine Antwort an. Deine DialogProc muss so aussehen wie ich sie dir gepostet hab. Kannst du auch in der MSDN nachlesen.
-
nein muss sie nich :P, ich hatte schon oeffters Dialoge gebastelt und sie haben bislang auch immer ohne deine möglichkeit funktioniert, doch irgendwie gehts net mehr ... -.- Borland is kaputt.
und es bringt auch nix wenn ich da true bool false ect klein oder groß schreibe ...grr... komisch find ichs ja des wenn das fenster gefreezed ist und ich alt druecke die DBox ershceint ...
-
Aus MSDN zu Dialogboxen:
char szItemName[80]; // receives name of item to delete. BOOL CALLBACK DeleteItemProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: if (!GetDlgItemText(hwndDlg, ID_ITEMNAME, szItemName, 80)) *szItemName=0; // Fall through. case IDCANCEL: EndDialog(hwndDlg, wParam); return TRUE; } } return FALSE; }
-
*freufreufreu* ich habe es jetzt auch kapiert, wie das mit dem Resourcencompiler von Borland geht
Ich hab die Lösung: Es liegt nicht daran, daß HINSTANCE hInst; nie initialisiert wird, es liegt auch nicht an szAppName[] = " Testing" mit Leerzeichen.
Die Lösung liegt in der WinProc():
/*case WM_PAINT: return 0;*/Der Grund: Windows sendet die PAINT-Nachricht (d.h. der Clientbereich des Hauptfensters wird für ungültig erklärt) und die Reaktion ist ein mageres return 0;. Darum "friert" das Fenster ein, weil der Arbeitsbereich nie wieder für gültig erklärt wird.
Also entweder ganz weglassen oder
case WM_PAINT: hdc = BeginPaint(hwnd, &ps); EndPaint(hwnd, &ps); return 0;
-
alter ich glaub es hackt... krasse sach wie lange hasten daran jetzt getüfftel... also bei mir gehts jetzs auch, also aller herzlichsten dank fuer den TIPP des Jahr 100's

Gruß und gn8 Tobi
-
BOOL CALLBACK DeleteItemProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam)Das ist auch veraltet ...
TObi
Ist schon ziemlich dreist was du hier ablieferst. Solltest dir vllt nochmal überlegen was du schreibst ... man kann viele Sachen durch Casts beheben. Aber der einzigst richtige Funktionsrump besteht ausINT_PTR DialogProc(HWND, UINT, WPARAM, LPARAM). Ob du das nun einsiehst oder nicht ... theoretisch kannst du auch aus nem Menschen auch nen Affen machen -.-
-
@(D)Evil: Meine Meinung
!
-
Wenn der Mercedes kein Benzin will, schreiben wir Diesel auf den Kanister ^^
Sehr Lustig dieser Thread, ich habe mich weggeschrien vor Lachen

Schieb mal WM_PAINT an, dann fährt der Diesel auch mit Benzin, beklopter geht es echt nicht mehr und mit dynamic_cast<*> kannst sogar im Tank pissen.
Wie schreibst du eigentlich Platform unabhängige Programme, mit castings ala (LINUX(UNIX(JAVA(MAC(FisherPrice)))))Windows
OK, spass beiseite
Regel Nr.1 - Keine Cast und drauf achten was der Compiler will
Regel Nr.2 - Gib dem Compiler was er will
Regel Nr.3 - Immer unötige Cast vermeiden
-
Der Kraftstoff im Tank kann noch soviel Oktan haben, wenn die Lenkradsperre (WM_PAINT) nicht gelöst ist, wirst Du nicht viel Spaß am Porsche haben.
-
Ich rede denoch vom casting und mal abgesehen davon, wer WM_PAINT abfragt, ohne es zu nutzen, sollte sich gedanken über sein Programmierstil machen, weiter ist auch immer zu empfehlen, alles Überflüssige bei der Fehlersuche rauszuwerfen, was sich erübrigt wenn man von anfang an unnütziges weg lässt.