Dialog verliert Fokus,beim öffnen von nonmodalen Dialog
-
Ich öffne mehrere nonmodale Dialog und möchte das der Fokus auf dem Hauptdialog bleibt.Damit der Dialog nicht mit den Hauptdialog verkleinert wird,benutze ich den Desktop als parent.Um zu verhindern das die Dialoge eigene Buttons im Tasbbar kriegen ist der Dialog ein Toolfenster und damit er voralle anderen Fenster koomt ist er Systemmodal.Ich habe es mit SW_SHOWNOACTIVATE versucht aber es funktioniert nicht.
Hier ist der Code zum Öffnen der Dialoge:
void BallonLeiste::Add_Ballon(Ballon_Info *info) { //Erstelle neuen Dialog BallonDlg * dlg = new BallonDlg(); dlg->startpoint = startpoint; dlg->endpoint = endpoint; dlg->info = info; dlg->leiste = this; dlg->Create(IDD_DIALOG11,AfxGetApp()->m_pMainWnd->GetDesktopWindow()); int n_height = dlg->GetHeight(); int n_width = dlg->GetWidth(); //Schiebe die Ballons nach oben und passe die Breite an for(int i =0; i < dlg_array->GetSize();i++) { dlg_array->GetAt(i)->Move(n_height,n_width); } //Füge den Ballon der Liste hinzu und Zeige ihn an dlg_array->Add(dlg); dlg->Move(0,n_width); dlg->ShowWindow(SW_SHOWNOACTIVATE); }
-
Was passiert im OnInitDialog Deines Dialoges? Wenn Du dort TRUE retrunierst sucht die DlgProc das erste Control mit dem Stil WS_TABSTOP und setzt dort den Focus. Returniere FALSE und seze nicht den Focus auf ein anderes Control, das sollte IMHO funktionieren.
-
Danke,klappt jetzt