\t\t孙鑫 第九课之二 工具栏编程笔记
来源:互联网 发布:淘宝 齐峰堂的灰甲清 编辑:程序博客网 时间:2024/06/06 14:09
1 创建工具栏方法一
①创建一个工具栏按钮
②构造一个CToolBar对象
③调用 Create 或 CreateEx函数来和工具栏资源绑定到CToolBar对象
④调用LoadToolBar 函数来加载工具栏资源
eg. 可以按照下面的方式创建工具栏
CToolBar newToolBar;
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (!newToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!newToolBar.LoadToolBar(IDR_XXX))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
newToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY); //CFrameWnd类成员函数: 允许工具栏停靠在它的任何位置
DockControlBar(&m_wndToolBar);//停靠工具栏
2 创建工具栏方法二
①构造一个CToolBar对象
②调用 Create 或 CreateEx函数来和工具栏资源绑定到CToolBar对象
③调用LoadBitmap加载一副包含工具栏按钮的位图
④调用SetButtons来设置位图中每个按钮的类型
eg.略
3 隐藏/显示工具栏
菜单按钮IDM_SHOW()用来显示/隐藏按钮
①
void CMainFrame::OnSHOW()
{
if(newToolBar.IsWindowVisible())
{
newToolBar.ShowWindow(SW_HIDE);
}
else
{
newToolBar.ShowWindow(SW_SHOW);
}
RecalcLayout(); //重新布局页面
DockControlBar(&newToolBar); //停靠newToolBar工具栏,当把工具栏拉到客户区中间位置时(悬浮状态),如果没有这句并且在隐藏又显示的时候就会出现bug:工具按钮隐藏了但是工具按钮的载体却没有隐藏。
}
②
ShowControlBar() 这个函数比①用起来简单
void ShowC?ontrolBar(
CControlBar *pBar, //工具栏指针
BOOL bShow,// bShow为TURE时显示工具栏,FALSE时隐藏工具栏
BOOL bDelay //bDelay为TRUE时延迟显示工具栏,FALSE时立即显示
);
void CMainFrame::OnSHOW()
{
ShowControlBar( &newToolBar, !newToolBar.IsWindowVisible(), FALSE);
}
③在该菜单上用是否打勾来表示当前是显示/隐藏工具栏
要写在ON_COMMAND_UI函数里,这个函数用来更新菜的可用状态/是否大功等的状态显示 ,而不能用来响应实际命令
CCmdUI::SetCheck
virtual void SetCheck(int nCheck=1);
参数:nCheck
0:不打勾 1:打勾 2:一般不用 只在比如复选框有三种状态的时候用
Specifies the check state to set. If 0, unchecks; if 1, checks; and if 2, sets indeterminate.
void CMainFrame::OnUpdateSHOW(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(newToolBar.IsVisible()); //根据当前工具栏是否可见设置菜单是否打勾
}
?
- \t\t孙鑫 第九课之二 工具栏编程笔记
- \t\t孙鑫 第九课之三 状态栏编程笔记
- 孙鑫 第九课之二 工具栏编程笔记
- \t\t孙鑫 第九课之四 进度栏编程笔记
- \t\t孙鑫 第十课之二 字体选择对话框编程(笔记+转载)
- \t\t孙鑫 第九课之一 窗口外观改变笔记
- 孙鑫VC视频教程笔记之第九课“程序外观修改及工具栏状态栏编程”
- \t\t孙鑫 第五课 文本编程笔记
- \t\t孙鑫 第六课 菜单编程笔记
- \t\t孙鑫 第七课 对话框编程笔记
- \t\t孙鑫 第十课之一 颜色选择对话框编程(笔记+转载)
- \t\t孙鑫 第十一课之二 CMetaFileDC 重绘/保存图形
- \t\t孙鑫 第十二课之二 CFile类/CreateFile 文件操作
- T-SQL编程(二)
- \t\t孙鑫 第十二课之四 WriteProfileString / GetProfileString用法
- \t\t孙鑫 第十二课之五 注册表编辑
- 孙鑫 第九课之三 状态栏编程笔记
- 孙鑫 第九课之四 进度栏编程笔记
- \t\t关于MAKEINTRESOURCE宏
- swt 控制 输入框只能输入数字
- MFC 单文档模版SDI中 取得当前应用程序实例句柄
- \t\tMFC 单文档模版SDI中 取得当前应用程序实例句柄
- 孙鑫 第九课之二 工具栏编程笔记
- \t\t孙鑫 第九课之二 工具栏编程笔记
- 孙鑫 第九课之三 状态栏编程笔记
- \t\t孙鑫 第九课之三 状态栏编程笔记
- 孙鑫 第九课之四 进度栏编程笔记
- \t\t孙鑫 第九课之四 进度栏编程笔记
- VC 模拟QQ闪屏功能
- java jdom解析和创建xml
- \t\tVC 模拟QQ闪屏功能
- 堆和栈的区别--转载