ToolTip auf einem Rechteck, Kreis, Linie...



  • Hallo,
    ich habe in der OnDraw Funktion meines Fenster ein Rechteck gezeichnet. Wenn ich jetzt mit der Maus über das Rechteck fahre, möchte ich gerne ein ToolTip anzeigen, so wie bei Excel-Diagrammen.
    Ich hab eine Membervariable von CToolTipCtrl angelegt.
    In OnInitialUpdate mach ich m_ToolTip.Create(this). Aber was kommt jetzt. Oder bin ich völlig auf dem Holzweg?

    Kann mir jemand einen Tip geben, wie so etwas realisiert werden kann?

    Gruß Dscho



  • Guck dir erstmal CRgn an!



  • Hi!
    Primär sollte man ToolTips Mausbewegungen in OnNcHitTest(CPoint point) vearbeite. Mit dem Point kannst du dann schaun (PtInRect), ob der Tooltipt stimmt.

    mfg



  • Danke für Eure Antworten.
    Aber ich habs nicht hinbekommen.
    Das Problem ist, wenn ich die Doku richtig verstanden habe, nach Create muss
    die Funktion AddTool ausgeführt werden und da ist das Problem.

    BOOL AddTool(
       CWnd* pWnd,    //das hab ich nicht, weil ein Rechteck kein Steuerelement ist
       UINT nIDText,
       LPCRECT lpRectTool = NULL,
       UINT_PTR nIDTool = 0
    

    d.h. bei der Zeile AddTool fliegt er raus.
    Ich hab mir schon überlegt, einfach unsichtbare Steuerelemente anzulegen, aber irgendwie kanns das doch nicht sein, oder ?
    In die Funktion OnNcHitTest(CPoint point) komm ich schon rein wenn ich mit der Maus in das Rechteck gehe, aber wie kommt dann der ToolTip auf den Bildschirm???

    Könnt Ihr mir bitte noch ein Stückchen weiterhelfen.
    Gruß Dscho



  • Hi!
    Da muss ich dir rechtgeben. Aber die MSDN sagt

    pWnd
    Pointer to the window that contains the tool.

    Also kann das das Fenster der Zeichenfläche sein. Ich wrede schauen ob ich heute noch was hin bekomme.

    mfg



  • Guten Morgen,

    ich hab mein Problem immer noch nicht lösen können 😞
    Gibt es niemand in der großen weiten Welt, der noch einen Tip für mein Problem hat.
    Ich bin für jeden Tip dankbar.

    Gruß Dscho



  • Schau Dir mal die MSDN zu 'CWnd::OnToolHitTest' an



  • Danke für Dein Tip. Ich hab mir die MSDN angeschaut und hab ein bischen rumprobiert. Aber die Funtkion wird nie aufgerufen. Was fehlt noch ???
    ich hab in OnInitialUpdate folgendes reingeschrieben:

    m_Rect.SetRect(100,100,200,200);
    	m_ToolTip.Create(this);
    	CToolInfo ti;
    	m_ToolTip.GetToolInfo(ti,this);
    	ti.hwnd = m_hWnd;
    	ti.uId = 1;
        ti.rect = m_Rect;
    	m_ToolTip.SetToolInfo(&ti);
    	m_ToolTip.Activate(TRUE);
    

    Ich geh mal davon aus, dass wenn man kein Steuerelement hat, die TOOLINFO Struktur irgendwie füllen muss??? Was aber gar nicht so einfach ist.
    Ich brauch noch etwas mehr Hilfe.


Anmelden zum Antworten