第五章总结

来源:互联网 发布:plc网络模块 编辑:程序博客网 时间:2024/05/21 02:36
5.1菜单
菜单是Windows应用程序窗口的一个非常重要的组成部分,窗口的菜单栏一般在标题栏下面。这个菜单通常称为“主菜单”。
5.1.1创建和编程菜单
菜单用于SDI(单文档界面)或MDI(多文档界面),以及基于对话框的应用程序,在基于对话框的应用程序中新建、设计并编辑菜单后,在该对话框的“属性”选项卡中,将Menu属性设置为该菜单的ID即可。
5.1.2菜单消息及其传递路径
Windows的所有消息都通过消息映射表映射到响应函数,用户只要在映射表中添加消息映射项,然后提供一个消息响应函数即可。
创建菜单消息后,需要为某菜单建立建立相应的菜单命令消息处理函数。其中WM_COMMAND是常用的菜单消息,它对应的消息映射宏是ON_COMMAND消息映射为:
ON_COMMAND(ID,dFun)
dFun是相应菜单命令的消息处理函数
5.1.3菜单项状态的更新
在MFC中实现菜单命令的响应一般需要以下3个部分的代码
1.       在需要响应这个菜单命令的类的声明中添加一个响应函数的声明
2.       在该类的实现文件中,为这个类的消息映射表添加这个菜单的映射宏
3.       在该类的实现中,为响应函数添加实际的响应代码
5.1.5添加键盘加速键和组合键
键盘加速键和组合键是和菜单配合使用的非常有用的资源,使用键盘加速键或组合键方便、快捷、高效,可以达到和单击菜单一样的效果。
菜单和加速建作为两种资源保存,二者用相同名称的IDR_MAINFRAMME联系起来。菜单以分层命令结构表示,加速建提供该结构的快捷方式,以提高用户的速度。
5.2工具栏
标准的Windows应用程序,工具栏的大部分按钮的功能与菜单命令相同。单击其中的某个按钮,会产生一个相应的消息,程序执行和菜单功能一样的命令。当鼠标在某个按钮上停留片刻后,显示一个标明其功能的黄色小窗口。
5.3状态栏
状态栏是一个包括多窗格的窗口,每个窗格显示不同的消息。状态栏可以随时为用户提供当前程序的状态消息,它既不接收用户输入,也不产生命令消息,它的作用只是在程序控制下在状态栏窗格中显示一些文本内容来表示程序的当前状态。
5.3.2如何在程序中加入状态栏
1.在CMainFrame类中声明一个CStatusBar对象:
Class CMainFrame : public CFrameWnd
{
       protected:
                CStatusBar    m_wndStartusBar;
}
2. 定义状态栏指示区字符串资源,即在MainFrm.cpp中定义状态栏指示区字符串资源ID数组
static   UNIT  indicators[] ={     ID_SEPARATOR,     ID_INDICATOR_NUM,     ID_INDICATOR_CAPS,}
3.  调用CStatusBar::OnCreate()创建状态栏窗口,调用CStatusBar::SetIndicators()函数分配窗格并将状态栏的每一个窗格与一个字符串ID关联
if(! m_wndStartusBar.Create(this) || ! m_wndStartusBar.SetIndicators(indicators,sizeof (indicators)/ sizeof (UINT))){    TRACEO("未能创建状态栏");   return    -1;}
4.  添加一个字符串“XX”状态栏窗格,其ID标识符为ID_INDICATOR_TEST,并在数组indicatirs中添加一项ID_INDICATOR_TEST:     
 static   UNIT  indicators[ ]={   ID_SEPARATOR,   ID_INDICATOR_CAPS,   ID_INDICATOR_NUM,   ID_INDICATOR_XX,}
5. 编译程序并运行程序,在状态栏中添加一个窗格,其中就显示“XX”。 
原创粉丝点击