Dialogboxen

nabend!

hab da ein problem mit dialogboxen. ich programmiere mit c++ über die winapi.

also die dialogbox hab ich mit dem resourcen-editor erstellt.
jetzt hab ich ein problem mit dem anzeigen.

ich rufe den dialog folgendermaßen auf:
Code:
DialogBox(ginstance, MAKEINTRESOURCE(IDD_DIALOG1), hwnd, (DLGPROC)Dialog);

die entsprechende funktion (Dialog()) für die nachrichten hab ich auch.

ich bekomme auch keine kompilier-fehler.

das komische is nur wenn ich jetzt den dialog aus dem hauptfenster aufrufen will (über ein menü), erscheint er nicht!

das fenster friert ein und die cpu-auslastung für den prozess steigt auf 40-50%.
das programm kann dann nur noch über den taskmanager beendet werden.


also wie bekomme ich es hin, dass ich das dialog fenster ordentlich aufrufen kann?

/sorry wenn ich was vergessen hab oder so, es ist schon so spät! 8)
 
was sagt denn der GetLastError? und (bin kein C++ler ;) ) ist Dialog wirklich ein Pointer zu der Prozedur? Oder eher der Prozedurname?
Ich hätte da z.B eher sowas stehen:
Code:
int Dialog bla {}
DialogBox (bla,(DLGPROC)&Dialog))
(keine Garantie, da wie erwähnt, kein C'äh'ler ;)
 
Normalerweise reicht da der Prozedurname, andernfalls würde sich der Compiler wahrscheinlich beschweren.
Poste mal bitte die die Dialog()-Funktion, ich glaube da liegt der Fehler.

Edit: Habe gerade mal nachgeschaut:
In der msdn wird auch nur der Prozedurname verwendet:
Original von msdn, unter "Using Dialog Boxes"
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDM_DELETEITEM:
if (DialogBox(hinst,
MAKEINTRESOURCE(DLG_DELETEITEM),
hwnd, (DLGPROC)DeleteItemProc)==IDOK)
{

// Complete the command; szItemName contains the
// name of the item to delete.

}

else
{

// Cancel the command.

}
break;
}
return 0L;
DeleteItemProc ist der Name der entsprechenden Funktion und kein Pointer.
 
ja der aufruf der funktion stimmt und der fehler lag auch in der nachrichten funktion.

ich hab am ende der funktion das return false vergessen.
jetzt funktionierts wunderbar.
danke trotzdem für die hilfe
 
Zurück
Oben