BOOL CProcMemWnd::CreateToolTipCtrl() // CProcMemWnd继承CFrameWnd
{
m_hwndTooltip=CreateWindow(TOOLTIPS_CLASS, (LPSTR) NULL, TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, (HMENU) NULL, NULL, NULL);
TOOLINFO ti; ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = 0;
ti.hwnd = GetSafeHwnd();
ti.hinst = NULL;
ti.uId = (UINT) ID_MEM_REFRESH;
ti.lpszText = "fsfsdfsdfdsfs";
CRect rcButton;
m_wndToolBar1.GetItemRect(5,&rcButton);
ti.rect=rcButton;
::SendMessage(m_hwndTooltip, TTM_ADDTOOL, 0,
(LPARAM) (LPTOOLINFO) &ti);
::SendMessage(m_hwndTooltip,TTM_ACTIVATE,(WPARAM)TRUE,0);
return TRUE;}int CProcMemWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
CreateCtrlOnToolbar();
EnableToolTips();
return 0;
}
BOOL CProcMemWnd::PreTranslateMessage(MSG* pMsg)
{
if (m_hwndTooltip)
{
switch (pMsg->message)
{
case WM_MOUSEMOVE:
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
::SendMessage(m_hwndTooltip, TTM_RELAYEVENT, 0, (LPARAM) (LPMSG) &pMsg);
}
}
return CFrameWnd::PreTranslateMessage(pMsg);
}
{
m_hwndTooltip=CreateWindow(TOOLTIPS_CLASS, (LPSTR) NULL, TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, (HMENU) NULL, NULL, NULL);
TOOLINFO ti; ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = 0;
ti.hwnd = GetSafeHwnd();
ti.hinst = NULL;
ti.uId = (UINT) ID_MEM_REFRESH;
ti.lpszText = "fsfsdfsdfdsfs";
CRect rcButton;
m_wndToolBar1.GetItemRect(5,&rcButton);
ti.rect=rcButton;
::SendMessage(m_hwndTooltip, TTM_ADDTOOL, 0,
(LPARAM) (LPTOOLINFO) &ti);
::SendMessage(m_hwndTooltip,TTM_ACTIVATE,(WPARAM)TRUE,0);
return TRUE;}int CProcMemWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
CreateCtrlOnToolbar();
EnableToolTips();
return 0;
}
BOOL CProcMemWnd::PreTranslateMessage(MSG* pMsg)
{
if (m_hwndTooltip)
{
switch (pMsg->message)
{
case WM_MOUSEMOVE:
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
::SendMessage(m_hwndTooltip, TTM_RELAYEVENT, 0, (LPARAM) (LPMSG) &pMsg);
}
}
return CFrameWnd::PreTranslateMessage(pMsg);
}
解决方案 »
- 异常处理
- 向【zgl7903】提问: 不显示删除回复显示所有回复显示星级回复显示得分回复 try...catch...finally,如何可以用它来屏蔽掉弹出的窗口?
- 呵呵,我穷啊!估计没有比我更穷的啦
- 【【绝】】 超级罕见,有关托盘的一个问题。
- 如何区分数据库中日期类型是DATA型还是TIME型?
- 请高手帮忙:文档/视图问题
- 用控制面板启动服务跟用net start启动服务有何不同?
- 请问高手如何在编辑框里显示所有ASCII码?急!!!
- 急聘C++/VC程序员
- CFile::GetStatus(....)问题
- 如何在标题栏显示活动的文字!!
- 看了几篇文章,上面说使用__declspec(dllexport)可以不再.def中定义,但是我动态调用时函数GetProcAddress得不到地址,而在.def中定义后
或者到这里看一下!http://expert.csdn.net/Expert/topic/1607/1607711.xml?temp=.6588251可以利用 ToolTipCtrl,以下是代码(在 CView 中测试通过,如果你的窗口客户区小于窗口大小,要坐标变换一下):// class members:
CToolTipCtrl m_ctrlToolTip;// declare message enter
afx_msg BOOL OnTTNNeedText(UINT id, NMHDR * pNMHDR, LRESULT * pResult);// implementations of massage map
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnTTNNeedText)// OnCreate : Override and add these code
if (m_ctrlToolTip.Create(this, 0))
m_ctrlToolTip.AddTool(this, LPSTR_TEXTCALLBACK, &NULL);// PreTranslateMessage : Override and add these code
if (NULL != m_ctrlToolTip.GetSafeHwnd())
m_ctrlToolTip.RelayEvent(pMsg);// OnMouseMove : Override and add these code
if (m_ctrlToolTip.GetStyle() & WS_VISIBLE)
m_ctrlToolTip.Update();// OnNeedText : write these code
BOOL CYourWnd::OnTTNNeedText(UINT id, NMHDR * pNMHDR, LRESULT * pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR; POINT pt;
GetCursorPos(&pt);
ScreenToClient(&pt); _stprintf(pTTT->szText, _T("x = %d, y = %d"), pt.x, pt.y); return(TRUE);
}
这个ToolTip不是要在视图,而是在工具条上