Re: Tooltips for cutomized CFileDialog
Did you manage to EnableToolTips during your OnInitDialog? I don't see it.
I have called EnableToolTips in either OnInitDialog and OnInitDone,
after the base class call of OnInitDialog resp. OnInitDone.
(In the posting it is in OnInitDone.)
I tried to take a look at incoming messages, so I modified
WindowProc to
LRESULT CFileDialogExtra::WindowProc(UINT message, WPARAM wParam,
LPARAM lParam)
{
LRESULT result = CFileDialogEx::WindowProc(message, wParam,
lParam);
if (message == TTN_NEEDTEXTA || message == TTN_NEEDTEXTW)
{
TRACE("OKOK\n"); // I never get here
}
TRACE("WindowProc: message=%.8x wParam=%.8x lParam=%.8x\n", message,
wParam, lParam);
if (message != WM_DESTROY && message != WM_NOTIFY && message !=
WM_NCDESTROY)
{
MSG msg;
msg.hwnd = m_hWnd;
msg.message = message;
msg.wParam = wParam;
msg.lParam = lParam;
if (m_ToolTip.m_hWnd != NULL)
m_ToolTip.RelayEvent(&msg);
}
return result;
}
Watching the messages by the TRACE macro when the
mouse is over the check box I see messages like
message=00000020 WM_SETCURSOR
message=00000084 WM_NCHITTEST
message=00000200 WM_MOUSEFIRST
message=00000085 WM_NCPAINT
message=00000019 ??
message=00000136 WM_CTLCOLORDLG
message=00000014 WM_ERASEBKGND
message=0000000f WM_PAINT
message=00000019 ??
message=00000138 WM_CTLCOLORSTATIC
but never TTN_NEEDTEXTA or TTN_NEEDTEXTW.
On a normal dialog it does work, on the customized
CFileDialog it does not. May it have to do with the fact,
that my check box is not a child of the dialog but a
grand child?
Also, there are a couple other problems...
Please don't be fussy about my OnToolTipText,
it's a one to one copy of MFC source code
(CFrameWnd::OnToolTipText).
Hallo, I have derived a class CFileDialogExtra from CFileDialog,
added a check box there und would like to show a tooltip for
that check box.
I've read Q141871, have overridden WM_LBUTTONDOWN, WM_LBUTTONUP
and WM_MOUSEMOVE as well as WindowProc completely
and added RelayEvent.
However I do not receive any TTN_NEEDTEXT message when the mouse
is over the check box. What am I missing still?