继续MFC的应用学习记录;
这次是菜单,工具栏,状态栏这三个功能实现;
第一步还是创建基于单文档的应用程序;
创建好后,打开资源视图;
功能1:菜单
在资源视图中找到Menu,打开ID_MAINFRAME;
在左侧呢,自己尝试一下就知道怎么添加新选项了;
我这里添加了三个选项;运行后菜单里面就有一个选项,鼠标放在上面就会出现这三个人物选项;
但是我们如果想要让这三个选项有点击效果,怎么做呢;
比如这个赵云选项,我们右键,选择添加事件处理程序;
类列表选择后缀为View的选项,名字随意,点击确定,进入函数里面;
添加如下代码:
void CMenuView::On32771()
{
// TODO: 在此添加命令处理程序代码
MessageBox(TEXT("赵云,男,蜀国"));
}
这样我们运行的话,在选项里面点击赵云,就会出现这样的效果;
这就是菜单的基本使用,很简单吧,剩下的选项就不举例子了;
功能2:工具栏
工具栏呢,就是菜单下面的那一行,我们怎么做出来效果呢?
还是在资源视图中,找到Toolbar文件夹里面的IDR_MAINFRAME;双击;
然后看左边的主界面,还是自己试试,在最右侧的选项按钮里面,画点东西(画笔的选项在上方);
我给最右边的空白选项画成了这样,然后我们希望这个按钮有效果,为了方便我们就实现出刚才赵云的那个功能;
我们回到Menu找到赵云这个按钮的ID;
把这个ID复制下来;
然后复制到刚才你画出来的按钮的ID上;
这样运行之后,点击那个按钮就会出现以下效果;
这就是工具栏的使用方法,也很简单吧;
功能3:状态栏;
有时候我们希望鼠标的右键会出现一些效果,所以我们需要自己去写这个工能;
那要怎么实现呢;
首先,我们在Menu里面选择添加资源Menu;
然后对你新加的菜单进行编辑;
我的是这样;
同理给这个按钮添加消息处理函数;
我给蜀国这个按钮添加了这样的函数;
void CMenuView::On32775()
{
// TODO: 在此添加命令处理程序代码
MessageBox(TEXT("刘备,关羽,张飞"));
}
然后剩下的两个也添加上;
之后运行是不好使的;
我们要在类视图中,找到C+id+View中下面的消息选项,再找WM_CONTEXTMENU选择
ADD然后进入函数里面;
加入下面的代码;
可能会给你ID画红线,不用管,是因为VS没反应过来可以运行的;
void CMenuView::OnContextMenu(CWnd* /*pWnd*/, CPoint point)
{
// TODO: 在此处添加消息处理程序代码
CMenu menu;
menu.LoadMenu(IDR_MENU1);
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
}
然后运行,鼠标右键,就会出现三个选项了,并且有各自的功能了;
这个就是鼠标右键状态栏的实现;
稍稍有那么一丢丢麻烦不过也还好;
当然这些都是最最最基本的使用;
那就结束了;
恩!