PSS ID Number: 135873
Article Last Modified on 6/29/2004
class CTooltipsApp : public CWinApp
{
//...
public:
HWND m_hwndDialog;
CToolTipCtrl* m_gpToolTip;
//...
};
CTooltipsApp::CTooltipsApp()
{
m_hwndDialog = NULL;
m_gpToolTip = NULL;
}
BOOL CTooltipsApp::ProcessMessageFilter(int code, LPMSG lpMsg)
{
if (m_hwndDialog != NULL)
if (lpMsg->hwnd == m_hwndDialog ||
::IsChild(m_hwndDialog, lpMsg->hwnd))
{
if (NULL != m_gpToolTip)
m_gpToolTip->RelayEvent(lpMsg);
}
return CWinApp::ProcessMessageFilter(code, lpMsg);
}
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
CButton m_btOK;
//}}AFX_DATA
CToolTipCtrl* m_pTooltip;
//...
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
m_pTooltip = NULL;
}
CAboutDlg::~CAboutDlg()
{
delete m_pTooltip;
}
void CAboutDlg::OnMouseMove(UINT nFlags, CPoint point)
{
//Set up the tooltip
if (!m_pTooltip)
{
int rt;
m_pTooltip = new CToolTipCtrl;
rt = m_pTooltip->Create(this);
ASSERT(rt!=0);
((CTooltipsApp*)AfxGetApp())->m_gpToolTip= m_pTooltip;
rt = m_pTooltip->AddTool(this, "About Box");
ASSERT(rt!=0);
rt = m_pTooltip->AddTool(&m_btOK,"OK Button");
ASSERT(rt!=0);
m_pTooltip->Activate(TRUE);
}
CDialog::OnMouseMove(nFlags, point);
}
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
((CTooltipsApp*)AfxGetApp())->m_hwndDialog=m_hWnd;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAboutDlg::PostNcDestroy( )
{
CDialog::PostNcDestroy();
((CTooltipsApp*)AfxGetApp())->m_hwndDialog= NULL;
((CTooltipsApp*)AfxGetApp())->m_gpToolTip= NULL;
}
Keywords: kbCmnCtrls kbCtrl kbDlg kbFAQ kbhowto kbToolTip KbUIDesign KB135873
Technology: kbAudDeveloper kbMFC kbVC210 kbVC220 kbVC32bitSearch kbVC400 kbVC410 kbVC420 kbVC420b kbVC500 kbVC500Search kbVC600 kbVCNET2002 kbVCNET2003 kbVCNETSearch kbVCsearch