CreateDialog() und die Tabreihenfolge



  • Hallo,

    mit CreateDialog() erzeuge ich einen moduslosen Dialog:

    hDlgCtrl = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_CONFIG), hWnd, DlgProcConfig);
    

    Ich arbeite mit dem Ressourceneditor von Visual C++ 6.0, nun meine Frage: der erzeugte Dialog ignoriert vollkommen die Tabreihenfolge, sprich der Eingabefokus springt nicht von einem Editfeld zum nächsten, wenn ich die Tab-Taste drücke. Weiterhin wird die Standardtaste (IDOK) nicht "gedrückt", wenn die Eingabetaste betätigt wird.

    Mit DialogBox() funktioniert es hingegen blendend, aber ich brauche einen moduslosen Dialog. Ich habe gelesen, dass man bei CreateDialog() die Dialogprozedur vollkommen selbst implementieren muss, aber erwartet man auch, dass ich dort jedes mal den Tabulator abfange und mit SetFocus() oder was auch immer das nächste Feld selektiere 😕



  • du hast IsDialogMessage in der Nachrichtenschleife vergessen



  • Vielen Dank.
    Vergessen ist gut 😃 ... "nicht gewusst" bzw. "noch nie gehört" trifft es wohl eher.

    while(GetMessage(&msg, NULL, 0, 0))
    {
    	if(!IsDialogMessage(hDlgCtrl, &msg))
    	{ 
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    }
    

Anmelden zum Antworten