15,979
社区成员
发帖
与我相关
我的任务
分享
mToolBar2_.ReplaceButton(ID_BAR_COMBO1, *mpCalibration_);
CMenu menu1;
menu1.LoadMenu(IDR_TOOLA);
mToolBar3_.ReplaceButton(ID_BAR_TOOLA,
CMFCToolBarMenuButton(ID_BAR_TOOLA, menu1, GetCmdMgr()->GetCmdImage(ID_BAR_TOOLA)));
CMyMFCToolBar mToolBar1_;
CMyMFCToolBar mToolBar2_;
CMyMFCToolBar mToolBar3_;
//mToolBar1_.EnableToolTips(TRUE); //使用自带的Prompt提示消息(带有图标),如果再加上这句话就会再添加多一个ToolTip提示消息(不带图标)
mToolBar2_.EnableToolTips(TRUE); //为了响应CMFCToolBarComboBoxButton的ToolTip提示消息,因为CMFCToolBarComboBoxButton没有Prompt提示消息
//mToolBar3_.EnableToolTips(TRUE); //使用自带的Prompt提示消息(带有图标),如果再加上这句话就会再添加多一个ToolTip提示消息(不带图标)
BOOL CMyMFCToolBar::OnUserToolTip(CMFCToolBarButton* pButton, CString& sPrompt) const
{
//我这是根据当前按钮的图标索引判断
int iImg = pButton->GetImage();
switch (pButton->m_nID)
{
//这是第二个工具栏的两个ComboBox提示消息
case ID_COMBO_CALIBRATE:
sPrompt.LoadString(ID_COMBO_CALIBRATE);
break;
case ID_COMBO_UNIT:
sPrompt.LoadString(ID_COMBO_UNIT);
break;
//这是第三个工具栏的 右侧带有三角符号的 按钮的提示消息
case ID_BAR_TOOLA:
if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLA2))
sPrompt.LoadString(ID_MENS_TOOLA2);
else
sPrompt.LoadString(ID_MENS_TOOLA1);
break;
case ID_BAR_TOOLC:
if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLC2))
sPrompt.LoadString(ID_MENS_TOOLC2);
else
sPrompt.LoadString(ID_MENS_TOOLC1);
break;
case ID_BAR_TOOLE:
if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLE2))
sPrompt.LoadString(ID_MENS_TOOLE2);
else if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLE3))
sPrompt.LoadString(ID_MENS_TOOLE3);
else
sPrompt.LoadString(ID_MENS_TOOLE1);
break;
case ID_BAR_TOOLH:
if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLH2))
sPrompt.LoadString(ID_MENS_TOOLH2);
else
sPrompt.LoadString(ID_MENS_TOOLH1);
break;
case ID_BAR_TOOLK:
if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLK2))
sPrompt.LoadString(ID_MENS_TOOLK2);
else if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLK3))
sPrompt.LoadString(ID_MENS_TOOLK3);
else
sPrompt.LoadString(ID_MENS_TOOLK1);
break;
case ID_BAR_TOOLM:
if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLM2))
sPrompt.LoadString(ID_MENS_TOOLM2);
else
sPrompt.LoadString(ID_MENS_TOOLM1);
break;
case ID_BAR_TOOLQ:
if (iImg == GetCmdMgr()->GetCmdImage(ID_MENS_TOOLQ2))
sPrompt.LoadString(ID_MENS_TOOLQ2);
else
sPrompt.LoadString(ID_MENS_TOOLQ1);
break;
}
//这里根据自己定义的字符串是否带有换行符"\n"决定要不要去掉
if (!sPrompt.IsEmpty())
{
sPrompt.Replace(L"\n", L"");
return TRUE;//表示外部修改过
}
return FALSE;//表示使用默认的提示
}
BOOL CTestDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID = pNMHDR->idFrom;
UINT nIndex = m_toolbar.CommandToIndex(nID);
m_strToolBarMsg = _T("");
switch (nIndex)
{
case 0:
m_strToolBarMsg = _T("Setting");
break;
case 1:
m_strToolBarMsg = _T("Run");
break;
case 2:
m_strToolBarMsg = _T("Clear");
break;
case 3:
m_strToolBarMsg = _T("Refresh");
break;
case 4:
m_strToolBarMsg = _T("About");
break;
case 5:
m_strToolBarMsg = _T("Exit");
break;
default:
m_strToolBarMsg = _T("");
break;
}
pTTT->lpszText = m_strToolBarMsg.GetBuffer();
pTTT->hinst = AfxGetResourceHandle();
m_strToolBarMsg.ReleaseBuffer();
return TRUE;
}