Bereitstellen fensterloser Rich-Edit-Steuerelemente mit Fensterfunktionalität

Die Fensterfunktion umfasst die Möglichkeit, Nachrichten zu empfangen, und den Besitz eines Gerätekontexts, in den gezeichnet werden soll. Rich-Edit-Steuerelemente ohne Fenster erhalten diese Funktionalität über zwei Schnittstellen: ITextServices und ITextHost.

Wichtige Informationen

Technologien

Voraussetzungen

  • C/C++
  • Programmierung der Windows-Benutzeroberfläche

Anweisungen

Einrichten der Fensterfunktionalität

Im folgenden Beispielcode wird veranschaulicht, wie der Texthost und die Textdienste erstellt werden.

    HRESULT hr;
    
    IUnknown* pUnk               = NULL;
    ITextServices* pTextServices = NULL;
    
    // Create an instance of the application-defined object that implements the ITextHost interface.
    TextHost* pTextHost = new TextHost();
    
    if (pTextHost == NULL) 
        goto errorHandler;

    // Create an instance of the text services object.
    hr = CreateTextServices(NULL, pTextHost, &pUnk);
    
    if (FAILED(hr))
        goto errorHandler;
        
    // Retrieve the IID_ITextServices interface identifier from Msftedit.dll. 
    IID* pIID_ITS = (IID*) (VOID*) GetProcAddress(hmodRichEdit, "IID_ITextServices");
               
    // Retrieve the ITextServices interface.    
    hr = pUnk->QueryInterface(*pIID_ITS, (void **)&pTextServices);
    
    if (FAILED(hr))
        goto errorHandler;

Bemerkungen

Der hmodRichEdit-Parameter im Codebeispiel ist ein Handle für das modul Msftedit.dll, und es wird davon ausgegangen, dass dieses Handle bereits durch einen Aufruf der GetModuleHandle-Funktion abgerufen wurde.

Vollständiges Beispiel

Verwenden fensterloser Rich-Bearbeitungssteuerelemente

Verwenden von Rich Edit-Steuerelementen

Demo allgemeiner Windows-Steuerelemente (CppWindowsCommonControls)