关于EnableTooltips,EnableTrackingToolTips

本文介绍如何使用CWnd的EnableTooltips方法为窗口启用工具提示功能。通过此方法,可以使窗口中的子控件显示工具提示,并指导如何根据不同情况响应特定的消息。

CWnd 的方法EnableTooltips可以启用该窗口的Tooltip,使该窗口中的子控件可以出现工具提示:

BOOL EnableTooltips(BOOL bEnable = TRUE);

1.在窗口创建后调用EnableToolTips或EnableTrackingToolTips

2.如果你的窗口是从CFrameWnd派生而来哪么只用响应TTN_GETDISPINFO消息,
因为CWnd::OnToolHitTest中把lpszText设为LPSTR_TEXTCALLBACK,
在这个消息的处理中可以根椐idForm来判断是哪个子控件要显示Tooltip,以便提供不同的提示文字。

如果你的窗口不是从CFrameWnd派生而来,那就必须响应TTN_NEEDTEXT通知消息。

3.别外Tooltip永远显示在子窗口之外。 

int CDlg_GroupBlockList::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDockablePane::OnCreate(lpCreateStruct) == -1) return -1; // TODO: 在此添加您专用的创建代码 // 创建列表控件 m_DrawGroup.Create(NULL, WS_CHILD | WS_VISIBLE | SS_OWNERDRAW, CRect(40, 0, 100, 100), this, IDC_STATIC_DrawGroup); m_VScroll.Create(SBS_VERT | WS_CHILD | WS_VISIBLE, CRect(0, 0, 20, 100), this, IDC_SCROLLBAR_VScroll); m_HScroll.Create(SBS_HORZ | WS_CHILD | WS_VISIBLE, CRect(0, 0, 100, 20), this, IDC_SCROLLBAR_HScroll); // 创建工具栏作为窗格的子控件 bool is = m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_LEFT | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(0, 0, 0,0), IDR_TOOLBAR_GROUPBLOCK); m_wndToolBar.LoadToolBar(IDR_TOOLBAR_GROUPBLOCK); DockPane(&m_wndToolBar, CRect(0, 0, 0, 0), DM_SHOW); // 创建工具栏作为窗格的子控件 bool isSel = m_wndToolBarSel.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(0, 0, 0, 0), IDR_TOOLBAR_SelOperation); m_wndToolBarSel.LoadToolBar(IDR_TOOLBAR_SelOperation); DockPane(&m_wndToolBarSel, CRect(1000, 0, 0, 0), DM_SHOW); return 0; } void CDlg_GroupBlockList::OnSize(UINT nType, int cx, int cy) { CDockablePane::OnSize(nType, cx, cy); if (GetSafeHwnd() == NULL) { return; } CRect rcDialog; GetClientRect(&rcDialog); CRect SelBarRect, rectSelWindow; m_wndToolBarSel.GetClientRect(SelBarRect); m_wndToolBarSel.GetWindowRect(rectSelWindow); rcDialog.right -= rectSelWindow.Width(); CRect rectDraw = rcDialog; CRect BarRect, rectWindow; m_wndToolBar.GetClientRect(BarRect); m_wndToolBar.GetWindowRect(rectWindow); rectDraw.left += rectWindow.Width(); CRect ViewSize; CWnd* pControl = GetDlgItem(IDC_STATIC_DrawGroup); if (m_DrawGroup.GetSafeHwnd()) { m_DrawGroup.SetWindowPos(NULL, rectDraw.left, rectDraw.top, rectDraw.Width(), rectDraw.Height(), SWP_NOZORDER | SWP_NOACTIVATE); } m_wndToolBar.SetWindowPos(NULL, BarRect.left, BarRect.top, rectWindow.Width(), rectDraw.Height(), SWP_NOZORDER); // 立即更新工具栏状态 m_wndToolBar.Invalidate(); m_wndToolBar.UpdateWindow(); m_wndToolBarSel.SetWindowPos(NULL, rectDraw.right, SelBarRect.top, rectSelWindow.Width(), rectDraw.Height(), SWP_NOZORDER); // 立即更新工具栏状态 m_wndToolBarSel.Invalidate(); m_wndToolBarSel.UpdateWindow(); 为啥工具栏按钮没有显示我设置的提示
最新发布
09-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值