2012-04-09 5 views
1

Hallo Ich habe einige andere Posts über mein Problem auf SO gelesen, die noch nicht ganz beantwortet wurden (wie this). Ich habe jetzt das gleiche Problem. Ich habe ein Hauptfenster auf C/Win32 mit vielen Bearbeitungssteuerelementen in der Form unten. Beachten Sie, dass diese Tasten nur auf meinem Haupt app Fenster arbeiten ...Verwenden von Tab, um zu einem anderen Bearbeitungssteuerelement im Haupt-App-Fenster zu wechseln

hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "1", 
      WS_GROUP | WS_VISIBLE | ES_NUMBER | ES_RIGHT, 
      180, 94, 28, 20, hwnd, (HMENU)IDC_ATTRIBUTE_FITNESS, GetModuleHandle(NULL), NULL); 

und ich möchte von einem zum anderen mit der Tab-Taste bewegen. Wie Sie sich vorstellen können, kann ich nicht und ich habe versucht, was immer ich konnte. Ich habe versucht, mit einer beliebigen Kombination WS_EX_CLIENTEDGE und WS_GROUP aber nichts hat funktioniert. Jedes Mal, wenn ich in einem meiner Eingabefelder die Tabulatortaste drücke, höre ich den Signalton von Windows. Jeder kann aufschlussreiche Informationen darüber oder vielleicht ein kleines Tutorial oder eine Demonstration online zur Verfügung stellen, um es zu bekommen? Danke im Voraus.

Antwort

2

Geben Sie Ihren Steuerelementen den WS_TABSTOP Stil und verwenden Sie dann IsDialogMessage in Ihrer Nachrichtenschleife. Siehe auch den Artikel "Using the TAB key to navigate in non-dialogs" von Raymond Chen für weitere Details und Beispielcode.

+1

Oh ja, ich habe nur mit if (IsDialogMessage (hwnd, & Msg)) und dann Translate (Msg) usw. stattdessen diesen Code in den else. Vielen Dank. –

+1

Sie müssen möglicherweise auch den erweiterten Stil WS_EX_CONTROLPARENT angeben, wie hier gezeigt: http://blogs.msdn.com/b/oldnewthing/archive/2010/09/30/10069580.aspx – pcunite

Verwandte Themen