Tooltipps



  • Wieso macht ihr es euch so schwer??? In der SDK-Doku gibts doch ein riesiges Kapitel über ToolTips. Einfach mal nach ToolTip Control Reference suchen...



  • Hast Du nen Link? Unter google finde ich alles mögliche (und ich weiss ja nicht genau was Du meinst). Allerdings gibt es viel zu .NET, das kann ich leider nicht nehmen, genau wie die MFC. Also nur das was man in VC60 + ATL/WTL einsetzen kann.



  • -> http://msdn2.microsoft.com/en-us/library/ms650446.aspx

    Da sollte alles drinstehen wonach du suchst...



  • die ToolTipDialog.h aus dem CodeProject ist offenbar eine Resourcen-Headerdatei, die bei der Erstellung der Toolbar-Ressourcen erstellt wird. Die kannst Du nicht runterladen, sondern mußt sie selbst einrichten.



  • 0xDEADBEEF schrieb:

    -> http://msdn2.microsoft.com/en-us/library/ms650446.aspx

    Da sollte alles drinstehen wonach du suchst...

    Hmm, damit krieg ich nichts zusammen.

    Z.B. von dem Quelltext. Braucht man das alles für einen ToolTip?!? Dann krieg ich das nie hin...

    /* CREATE A TOOLTIP CONTROL OVER THE ENTIRE WINDOW AREA */
    void CreateMyTooltip (HWND hwnd)
    {
                     // struct specifying control classes to register
        INITCOMMONCONTROLSEX iccex; 
        HWND hwndTT;                 // handle to the ToolTip control
              // struct specifying info about tool in ToolTip control
        TOOLINFO ti;
        unsigned int uid = 0;       // for ti initialization
        char strTT[30] = "This is your ToolTip string.";
        LPTSTR lptstr = strTT;
        RECT rect;                  // for client area coordinates
    
        /* INITIALIZE COMMON CONTROLS */
        iccex.dwICC = ICC_WIN95_CLASSES;
        iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
        InitCommonControlsEx(&iccex);
    
        /* CREATE A TOOLTIP WINDOW */
        hwndTT = CreateWindowEx(WS_EX_TOPMOST,
            TOOLTIPS_CLASS,
            NULL,
            WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,		
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            hwnd,
            NULL,
            ghThisInstance,
            NULL
            );
    
        SetWindowPos(hwndTT,
            HWND_TOPMOST,
            0,
            0,
            0,
            0,
            SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
    
        /* GET COORDINATES OF THE MAIN CLIENT AREA */
        GetClientRect (hwnd, &rect);
    
        /* INITIALIZE MEMBERS OF THE TOOLINFO STRUCTURE */
        ti.cbSize = sizeof(TOOLINFO);
        ti.uFlags = TTF_SUBCLASS;
        ti.hwnd = hwnd;
        ti.hinst = ghThisInstance;
        ti.uId = uid;
        ti.lpszText = lptstr;
            // ToolTip control will cover the whole window
        ti.rect.left = rect.left;    
        ti.rect.top = rect.top;
        ti.rect.right = rect.right;
        ti.rect.bottom = rect.bottom;
    
        /* SEND AN ADDTOOL MESSAGE TO THE TOOLTIP CONTROL WINDOW */
        SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);	
    
    }
    


  • Ich bekomme folgende Fehlermeldungen (wär ja auch ein Wunder, wenn mal was sofort compilieren würde 😞 ) zur Compilezeit:

    error C2065: 'ghThisInstance' : nichtdeklarierter Bezeichner
    error C2661: 'SetWindowPos' : Keine ueberladene Funktion akzeptiert 7 Parameter
    error C2660: 'GetClientRect' : Funktion akzeptiert keine 2 Parameter
    error C2440: '=' : 'int' kann nicht in 'struct HINSTANCE__ *' konvertiert werden
    


  • Kann niemand weiterhelfen? 😞



  • Denk doch mal etwas selbst nach. Was könnte 'ghThisInstance' wohl sein? Was die anderen Meldungen sollen, was weiss ich. Benutzt du MFC oder irgendwas? Die normalen WinAPI Funktionen 'SetWindowPos' und 'GetClientRect' erwarten zumindest 7 bzw. 2 Parameter.



  • Ich nutze ATL/WTL.

    Ich habe es auch genau wie im Link versucht. Es werden auch Tooltipps angezeigt, zumindestens sieht es so aus. Nur ist der Tooltipp mini-klein (ca. 3x3 Pixel), so dass man natürlich keinen Text lesen kann. Hat jemand ne Ahnung wie man dieses Problem beheben kann?

    http://www.codeproject.com/wtl/CToolTipDialog.asp?df=100&forumid=26030&exp=0&select=1642497



  • Ok, konnte das "Problem" lösen. Es war wohl einfach die Breite nicht breit genug gewählt.


Anmelden zum Antworten