Tooltips für Textpassagen in RichEdit Controll



  • Hallo, ich benutze in meiner Anwendung ein Richedit Control um Text darzustellen. Meine Anwendung ist soweit fertig, ein Feature würde ich gerne noch einbauen. Und zwar möchte ich, wenn ich Text markiere, für diesen Text einen Tooltip hinterlegen, also irgendwie in Richedit "einbetten". Der Text soll folgendermassen einzugeben sein:

    - man markiert Text
    - rechte Maustaste öffnet ein Popup um Befehle auszuführen (das hab ich bereits realisiert)
    - einer dieser Befehle öffnet ein Dialogfenster um Text einzugeben (das habe ich auch schon)
    - der eingegebene Text wird im Richedit als Tolltip hinterlegt (das fehlt mir)

    Meine Anwendung bietet dann die Möglickeit den Inhalt des Richedit im rtf-Format abzuspeicher und zu laden (das geht auch soweit).
    Hat jemand eine Tip wie ich das realisieren kann?



  • Also wenn der Tooltip fürs ganze hwnd gilt dann vielleicht so

    void CreateMyTooltip (HWND hwnd,char *tooltip)
    {
    
        INITCOMMONCONTROLSEX iccex; 
        HWND hwndTT;                
    
        TOOLINFO ti;
        RECT rect;                 
    
        iccex.dwICC = ICC_WIN95_CLASSES;
        iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
        InitCommonControlsEx(&iccex);
    
        hwndTT = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, NULL,
            WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,		
            0, 0, 0, 0, hwnd, NULL, NULL, NULL );
    
        SetWindowPos(hwndTT, HWND_TOPMOST, 0, 0, 0, 0,
            SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
    
        GetClientRect (hwnd, &rect);
    
        ti.cbSize = sizeof(TOOLINFO);
        ti.uFlags = TTF_SUBCLASS;
        ti.hwnd = hwnd;
        ti.hinst = NULL;
        ti.uId = 0;
        ti.lpszText = tooltip;
        ti.rect.left = rect.left;    
        ti.rect.top = rect.top;
        ti.rect.right = rect.right;
        ti.rect.bottom = rect.bottom;
    
        SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);	
    }
    


  • Danke für den Hinweis. Tooltips generel stellen hier nicht das Problem dar. Der Tooltip soll auch nicht für den ganzen Text, sondern verschiedene Tooltips sollen für Textpassagen gesetzt werden.
    Möglicherweise kann man das ja über Hyperlinks realisieren. In eine Blog hab ich was von "friendly name hyperlinks" gelesen, aber da ist dann auch nicht näher drauf eingegangen worden.
    Ich kann das Ganze mal an einem Beispiel erklären. Unter z.B. Word 2003 kann man Text markieren und ihn als Hyperlink deklarieren, als Adress gibt man irgendwas ein und mit dem Button "Quick Info" trägt man die Information ein, die erscheinen soll wenn man sich mit der Maus drüber bewegt.
    Wer kann helfen?


Log in to reply