MFC项目怎么添加工具栏?
在创建MFC项目的时候,我选择的是经典菜单,后续添加工具栏该怎么办呢?
-
添加工具栏资源
-
在 Visual Studio 的资源视图中,右键单击任意资源文件夹,选择 “添加” -> “资源”,在弹出的对话框中选择 “Toolbar”,点击 “新建”,即可创建新的工具栏资源,也可在原有工具栏资源上修改。创建或选中后,可在右侧属性窗口中,为工具栏按钮的 “Prompt” 属性设置悬停提示信息,格式为 “\n + 内容” 。
-
-
创建工具栏对象
-
在框架类(如
CMainFrame
)中,声明一个CToolBar
类型的成员变量,比如m_ToolBar
。
-
-
初始化工具栏
-
在框架类的
OnCreate
函数中(该函数在窗口创建时调用)初始化工具栏:int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; // 创建工具栏 if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY) || !m_ToolBar.LoadToolBar(IDR_MAIN_TOOLBAR)) // IDR_MAIN_TOOLBAR为工具栏资源ID,需根据实际设置 { TRACE0("Failed to create toolbar\n"); return -1; // 未能创建工具栏 } // 设置工具栏停靠 EnableDocking(CBRS_ALIGN_ANY); m_ToolBar.EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_ToolBar); return 0; }//上述代码先调用CreateEx方法创建工具栏,设置其风格等属性,再通过LoadToolBar加载之前创建的工具栏资源。然后通过EnableDocking和DockControlBar等函数设置工具栏可停靠并进行停靠操作 。
-
-
添加按钮消息响应
- 如果对应ID已经有处理函数了,就不用操作了
- 手动添加:在框架类或相关类中,手动添加
WM_COMMAND
消息处理函数,在函数内通过switch
语句,针对不同工具栏按钮的命令 ID 编写相应处理逻辑 。 - 使用类向导:打开类向导,在 “消息映射” 选项卡中,选择对应的类,在 “对象 ID” 列表中找到工具栏按钮的 ID,在 “消息” 列表中选择
COMMAND
消息,点击 “添加处理程序”,即可自动生成消息处理函数框架,在函数内编写功能实现代码 。