在VC++工具栏按钮上添加文本标签
2008-01-19 20:24:07 来源:WEB开发网void CMainFrame::UpdateToolBar(BOOL bRecalc) //bRecalc用于指示是否重新计算最大尺寸 {
3.在CMainFrame::OnCreate()函数中,就在return 0;之前加入如下代码:
CRect rect;
SIZE sizeButton,sizeImage;
if(bRecalc) {
m_sizeMax.cx = 0;
m_sizeMax.cy = 0;
//取得最大尺寸
for (int i=0;i<m_wndToolBar.GetCount();i++) {
m_wndToolBar.SetButtonText(i,TextTips[i]);
m_wndToolBar.GetItemRect(i,rect);
m_sizeMax.cx = __max(rect.Size().cx, m_sizeMax.cx);
m_sizeMax.cy = __max(rect.Size().cy, m_sizeMax.cy);
}
}
//设置按钮尺寸 sizeButton.cx = m_bTextTips ? m_sizeMax.cx : 23;
sizeButton.cy = m_bTextTips ? m_sizeMax.cy : 22;
sizeImage.cx = 16;
sizeImage.cy = 15;
m_wndToolBar.SetSizes(sizeButton,sizeImage); ShowControlBar(&m_wndToolBar,FALSE,FALSE); ShowControlBar(&m_wndToolBar,TRUE,FALSE);
m_wndToolBar.RedrawWindow();
}
UpdateToolBar();///更新工具条
4.实现控制菜单的功能,在菜单的命令处理函数中加入粗体代码:
return 0;
void CMainFrame::OnToolTexttips()
5.为了使WINDOWS系统参数改变后能够自动调整工具条大小,我们需要添加WM_SETTINGCHANGE消息处理函数OnSettingChange,并加入粗体代码:
{ m_bTextTips = !m_bTextTips; UpdateToolBar(FALSE);///FALSE参数表示不重新计算最大按钮 }
void CMainFrame::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
至此,所有任务已经完成,请编译并运行该程序,单击TextTips按钮,OK!
{ CFrameWnd::OnSettingChange(uFlags, lpszSection); UpdateToolBar();
}
注:本文假定您的程序已经加入了工具栏.
更多精彩
赞助商链接