MFC精华总结:消息映射与状态栏控制

需积分: 10 1 下载量 138 浏览量 更新于2024-09-12 收藏 390KB DOC 举报
"MFC详细摘要" MFC(Microsoft Foundation Classes)是微软提供的一个类库,用于简化Windows应用程序的开发。这个摘要主要关注MFC中的消息映射机制以及一些UI元素的控制方法,如状态栏、工具栏的隐藏与高度调整,以及菜单资源的编辑。 在MFC中,消息映射机制是核心部分,它允许程序员定义控件或窗口对特定消息的响应。通过在C++类中声明消息映射宏,可以将Windows消息与成员函数关联起来。例如,当用户点击按钮时,相应的消息会被发送,然后MFC会根据消息映射找到对应的处理函数来执行操作。 关于状态栏的高度调整,可以通过获取状态栏的控制对象引用,然后调用`SetMinHeight`方法来设定。在`CMainFrame::OnCreate`函数的末尾加入以下代码,状态栏的高度将被设置为40像素: ```cpp CStatusBarCtrl& StatusBarCtrl = m_wndStatusBar.GetStatusBarCtrl(); StatusBarCtrl.SetMinHeight(40); // 设置状态栏高度为40像素 ``` 若需隐藏状态栏和工具栏,同样在`CMainFrame::OnCreate`的最后添加如下代码: ```cpp m_wndStatusBar.ShowWindow(SW_HIDE); // 隐藏状态栏 m_wndToolBar.ShowWindow(SW_HIDE); // 隐藏工具栏 ``` 至于去除状态栏最右边的部分,通常这部分是用于显示额外信息的,如窗口ID。通过修改`CMainFrame::OnCreate`函数中的创建步骤,可以去掉这部分: ```cpp // 去掉WS_THICKFRAME风格,创建状态栏,然后再添加回该风格 ModifyStyle(WS_THICKFRAME, 0); m_wndStatusBar.Create(this); ModifyStyle(0, WS_THICKFRAME); ``` 在编辑菜单资源时,"View as Popup"命令可以改变菜单项的显示方式,使其以弹出子菜单的形式呈现。而"Check Menus Mnemonics"命令则用于检查菜单中是否存在重复的快捷键,以确保每个快捷键都是唯一的。 此外,提到了C++中指针类型的细微差别。`const int*` 和 `int const*` 都表示指针指向的内容不可变,即它们都是常量指针;而`int* const`表示指针本身是常量,但指向的内容可以改变。以下是一个简单的示例: ```cpp void main() { int x1, x2, x3; const int *p1 = &x1; // p1指向的内容不能改变,但p1可以改变 int const *p2 = &x1; // 等同于p1 int *const p3 = &x1; // p3不能指向其他地方,但x1的值可以改变 } ``` 总结来说,这个摘要涵盖了MFC中消息映射的基本使用,以及如何操纵UI元素如状态栏和工具栏的显示属性。同时,还涉及了菜单资源的编辑和C++指针类型的理解,这些都是开发MFC应用程序时经常会遇到的问题。