MFC CTooLBar 工具栏显示提示信息ToolTip

来源:互联网 发布:环球捕手 知乎 编辑:程序博客网 时间:2024/05/22 14:09

CTooLBar 工具栏显示提示信息ToolTip,首先添加Toolbar控件,网上有多种实现方式,推荐两种:

一:

在资源里添加ToolBar控件,在对话框OnInitDialog里关联,设置:

BOOL CWeldTechnologyDlg::OnInitDialog(){CDialogEx::OnInitDialog();.............m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_VISIBLE|WS_CHILD|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC|CBRS_BORDER_TOP);m_wndToolBar.LoadToolBar(IDR_TOOLBAR1);//加载工具栏资源m_wndToolBar.GetToolBarCtrl().SetBitmapSize(CSize(102,48));//设置图像大小m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(102,48));//设置工具栏图标按钮的大小//显示工具栏RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);INIT_EASYSIZE; return TRUE;}

二:

直接代码生成ToolBar,也是在OninitDialog中添加如下代码:

BOOL CToolTipDlg::OnInitDialog(){CDialog::OnInitDialog();// TODO: Add extra initialization hereUINT array[10];for (int i = 0;i<10;i++){if (i==3 || i==7)array[i]= ID_SEPARATOR; //第4、8个按钮为分隔条elsearray[i]=i+1001;}m_ToolBar.Create(this);m_ToolBar.SetButtons(array,10);m_ToolBar.SetButtonText(0,"新建");m_ToolBar.SetButtonText(1,"打开");m_ToolBar.SetButtonText(2,"保存");m_ToolBar.SetButtonText(4,"剪切");m_ToolBar.SetButtonText(5,"复制");m_ToolBar.SetButtonText(6,"粘贴");m_ToolBar.SetButtonText(8,"打印");m_ToolBar.SetButtonText(9,"帮助");m_ToolBar.LoadBitmap(IDB_BITMAP1);   //加载位图m_ToolBar.SetSizes(CSize(36,36),CSize(16,16)); //设置按钮和按钮位图大小m_ToolBar.EnableToolTips(TRUE);RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); //显示工具栏return TRUE;  // return TRUE  unless you set the focus to a control}

设置好了,添加工具栏ToolTip:

在.h文件里声明消息:

afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );

在.cpp下关联消息

BEGIN_MESSAGE_MAP(CWeldTechnologyDlg, CDialogEx)ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify)END_MESSAGE_MAP()

添加响应代码:

BOOL CWeldTechnologyDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult){TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;CString str;UINT nID =pNMHDR->idFrom; //获取工具栏按钮IDif(nID){nID = m_wndToolBar.CommandToIndex(nID); //根据ID获取按钮索引if (nID != -1){switch(nID){case 0:pTTT->lpszText  = L"中心点设置";break;case 1:pTTT->lpszText  = L"焊板设置";break;case 2:pTTT->lpszText  =L"焊层设置";break;case 3:pTTT->lpszText  =L"焊道工艺设置";break;case 4:pTTT->lpszText  =L"生成焊点轨迹";break;default:pTTT->lpszText = L" ";break;}//获取工具栏文本pTTT->hinst = AfxGetResourceHandle();return(TRUE);}}return(FALSE);}






0 0