info boxes
-
Hallo Leute hätte mal eine Frage

Wie kann man bei Mouseover über irgendeinem Element Button, Listbox.. eine Infobox anzeigen lassen?
mfg david
-
Du meinst einen Tooltip?
Guck dir mal CToolTipCtrl an.

-
Ich hab mir kurz ein testprogramm geschrieben bei dem ich einen Tooltip bei meiner Checkbox IDC_CHECK1 anzeigen will, es funktioniert aber leider nicht.
könnts mir helfen?BOOL CSliderCtrlPage::OnInitDialog() { CPropertyPage::OnInitDialog(); CRect rect; CWnd* pWnd_check1 = GetDlgItem(IDC_CHECK1); pWnd_check1->GetWindowRect(&rect); if (!m_ToolTipCtrl.Create(this)) { TRACE("Unable To create ToolTip\n"); return false; } // Associate the tooltip control to the tab control // of CMyPropertySheet. m_ToolTipCtrl.AddTool(this, IDC_CHECK1, rect, IDC_CHECK1); // Activate the tooltip control. m_ToolTipCtrl.Activate(TRUE); // .... return true; }
-
Ich habe den Tooltip als Zeiger. Keine Ahnung, warum aber das geht.
Im Konstruktor mit NULL initialisieren und dann so weiter, wie du gemacht hast.
Achja, du musst auf jeden Fall noch eine Funktion hinzufügen:
BOOL CBasisView::PreTranslateMessage(MSG* pMsg) { if (NULL != m_pToolTip) { m_pToolTip->RelayEvent(pMsg); } return CFormView::PreTranslateMessage(pMsg); }Und vergiss nicht im Destruktor wieder aufzuräumen, wenn du auf Zeiger umsteigst.
Nochwas:
IDC_CHECK1 ist wohl keine Stringresource, oder? Lies dir nochmal genau die MSDN dazu durch. Du brauchst nur zwei Parameter:
Einen Zeiger auf das Control und den Text.
-
danke für deine hilfe es funktioniert jetzt anscheinend fehlte ihm die Pretranslate Funktion.
Bei der AddTool Funktion hab ich mich anscheinend verschaut

-
Die Funktion vergesse ich auch jedes Mal. Deswegen bin ich auch sehr schnell darauf gekommen, die in die Basisklasse zu packen.
