Win32: Wie Sie benutzerdefinierte zeichnen ein Edit-Steuerelement?

brauche ich, um die Funktionalität implementieren, die von EM_SETCUEBANNER, wo ein text-Hinweis erscheint im inneren ein Edit-Steuerelement:

Win32: Wie Sie benutzerdefinierte zeichnen ein Edit-Steuerelement?

Der Haken ist, dass ich nicht verwenden können, die version 6 der Common Controls, die was ist erforderlich, um das von Microsoft bereitgestellte Implementierung eines cue-banner.

ist, habe ich mich in Sie verändern einfach den text in das edit-Steuerelement, und das schriftart-format zu

Dark Gray Italic Text

aber es wirft Ändern Veranstaltungen (Komponenten-wrapper bereitgestellt durch höhere Bauteil-Bibliothek) , ich kann nicht einen Weg finden, zu vermeiden.

So war ich statt zu gehen, um benutzerdefinierte ziehen Sie den text, zeichnen Sie die Cue-Banner-text, wenn das Steuerelement ist unkonzentriert und leer, und verlassen sich auf Standard-Malerei sonst.

Den Edit-control nicht gut setzen Sie eine benutzerdefinierte Zeichnung Mechanismus, wie ListView, TreeView und andere bieten.

Andere Leute haben hingeschaut, aber es scheint eine fast Unmögliche Aufgabe:

Aus der Art und Weise, die Dinge suchen, ich werde
haben, um die folgenden
Nachrichten:

  • WM_ERASEBKGND -, WM_PAINT (aus offensichtlichen Gründen)
  • WM_SETFOCUS, WM_KILLFOCUS (um zu verhindern, dass
    der weiße Balken von der Anzeige --
    oben beschrieben)
  • WM_CHAR (zu verarbeiten und aktualisieren
    text in das Steuerelement)

Und ich müssen auch einen Weg finden
Anzeige der Cursor in das Steuerelement,
da ich noch keinen Weg gefunden, zu ermöglichen
Windows zu tun, dass für mich auch ohne
Malerei der weiße Balken, die ich erwähnt.

Dieser wird Spaß machen. :rolleyes:

Gegeben, dass die Windows-Edit-Steuerelement war nie vorgesehen, custom gezogen: weiß jemand, wie man benutzerdefinierte zeichnen Sie ein Windows-Edit-Steuerelement?


Hinweis: ich werde auch akzeptieren, Antworten, die mein problem lösen, statt die Beantwortung meiner Frage. Aber jemand anderes wollen, um benutzerdefinierte zeichnen ein Edit-Steuerelement, kommen über diese Frage, würde wohl gerne eine Antwort.

Sie konnte nur fake, wie ich es mit dem Feld "Sofortsuche" in Aero.Steuerelemente bitbucket.org/factormystic/aero.controls
ich hatte versucht, Ihren Ansatz vor. ich war neugierig, wie Sie das problem gelöst, Zeichnung der "Suchbox" Themen. Aber ich sehe Sie nicht das problem lösen.
6 Jahren, ich sage nur CreateWindow mit text als Standard. Wenn der Benutzer auf das Steuerelement, das Sie löschen den text. Sie können auch die schriftart auf Kursiv, wie im Beispiel aus und ändern Sie auf klicken Sie auf.

InformationsquelleAutor Ian Boyd | 2009-12-23

Schreibe einen Kommentar