VS2010 CMFCToolBar名称更新

CMFCToolBar是新推出来不久的一个控件,发现网上的介绍文章不多,经过一番摸索以及参考别人的做法,对其用法进行一些总结。

(1)自己画一个工具栏,ID是:IDR_TOOLBARVIEW。

(2)MainFrm.h 中定义一个工具栏变量:CMFCToolBarm_wndToolBar1;MFC应该已经建立好一个默认的“标准”工具栏:CMFCToolBar m_wndToolBar;我们可以模仿其做法,生成自己的工具栏。

(3)MainFrm.cpp的OnCreate函数中添加如下代码:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
.......

// 允许用户定义的工具栏操作:
InitUserToolbars(NULL, uiFirstUserToolBarId, uiLastUserToolBarId);
// ADD

if (!m_wndToolBar1.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(1,1,1,1), IDR_TOOLBARVIEW) ||
!m_wndToolBar1.LoadToolBar(IDR_TOOLBARVIEW))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}
bNameValid = strToolBarName.LoadString(IDS_TOOLBAR_VIEW);
ASSERT(bNameValid);
m_wndToolBar1.SetWindowText(strToolBarName);
m_wndToolBar1.EnableCustomizeButton(TRUE, ID_VIEW_CUSTOMIZE, strCustomize);
m_wndToolBar1.EnableDocking(CBRS_ALIGN_ANY);
//END

......

DockPane(&m_wndToolBar);
//ADD
DockPane(&m_wndToolBar1);

//END

......

}

修改完之后即可看到自己建立的工具栏,通过类向导即可添加自己的响应函数。以上工作都不难,关键是一些其他问题:

(1)对话框的名字在程序中用SetWindowText()函数进行了修改,如果你在CreateEx()函数中省略了工具栏的ID,那么修改就不会成功。

(2)即时如此,每次修改对话框名称后,必须将注册表中“HKEY_CURRENT_USER\Software\Microsoft\应用程序向导生成的本地应用程序\”下的对应目录删除掉,否则仍程序仍然不会给你更新。

http://blog.sina.com.cn/s/blog_6167e9fc0100wso5.html
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用cmfctoolbar设置背景颜色需要先通过CFrameWnd::GetControlBar 函数获取到cmfctoolbar控件的指针,然后调用SetPaneStyle 函数设置控件的样式。可以通过如下代码实现: CMFCToolBar* pToolBar = NULL; CFrameWnd* pFrameWnd = AfxGetMainWnd(); if (pFrameWnd != NULL) { pToolBar = (CMFCToolBar*)pFrameWnd->GetControlBar(ID_TOOLBAR); } if (pToolBar != NULL) { pToolBar->SetPaneStyle(pToolBar->GetPaneStyle() | CBRS_SIZE_DYNAMIC | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_GRIPPER | CBRS_BORDER_BOTTOM); pToolBar->SetPaneFillColor(RGB(255, 255, 255)); //背景颜色设置为白色 } 此代码获取到主窗口中ID为ID_TOOLBAR的cmfctoolbar控件,然后设置它的样式和背景颜色。SetPaneFillColor 函数用于设置控件的背景颜色,传入的参数为RGB值。可以自由替换RGB值来设置自己喜欢的颜色。 ### 回答2: 在使用CMFCToolBar控件时,我们可以通过以下步骤来设置它的背景颜色: 1. 在工程中添加头文件afxcontrolbars.h。 2. 在创建CMFCToolBar对象之前,设置其颜色属性。例如: CMFCToolBar m_wndToolBar; m_wndToolBar.SetBackgroundColor(RGB(0, 255, 0)); 其中,RGB(0, 255, 0)表示绿色的RGB值。 3. 如果需要在运行时改变背景颜色,我们可以在程序中捕捉WM_PALETTECHANGED消息,并调用CMFCToolBar的Invalidate()方法来更新界面,例如: void CMainFrame::OnPaletteChanged(CWnd* pFocusWnd) { CMDIFrameWnd::OnPaletteChanged(pFocusWnd); if (m_wndToolBar.GetSafeHwnd() != NULL) { // 重新绘制工具栏 m_wndToolBar.Invalidate(); } } 通过以上步骤,我们可以轻松地为CMFCToolBar设置背景颜色,让界面变得更加美观。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值