已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
(五)给窗口添加菜单

给窗口添加菜单要用到资源文件,资源文件的扩展名为.rc,保存有各种可集成在程序内部的资源(如图标、光标、位图、菜单模板、对话框模板、快捷键、字符串表等),可以在程序中方便地加载。

一、新建资源文件

右击“解决方案资源管理器”中的“资源文件”,选择添加-》添加新项
在对话框中选择Visual C++-》资源-》资源文件(.rc),点击“添加”

主窗口3.png

再次转到“解决方案资源管理器”,可以发现多了两个文件:resource.h和resource.rc,其中前者为符号定义文件,后者为资源文件的主体

主窗口5.png

二,添加菜单资源

双击resource.rc,将转到“资源视图”,右击顶层项目“Win32Project1”,选择添加-》添加资源

主窗口4.png

在对话框中,选择Menu,双击或点击“新建”

主窗口6.png

在打开的菜单编辑器中编辑刚刚插入的菜单资源,这里菜单结构如下,其中字符&可以指定助记键:
通用(&G) - Popup菜单项
关于(&A) - 编号ID_ABOUT
退出(&X) - 编号ID_EXIT

主窗口7.png

三、修改代码加载菜单

转到“解决方案资源管理器”,双击打开myfirst.c源文件,添加一行导入资源符号
<code class="lang-cpp">#include "resource.h"</code>

加载菜单有若干种方法,其中最方便的是直接在窗口类中指定菜单的编号。
转到wWinMain函数,找到我们的窗口类,修改菜单字段为我们的编号,要注意需要转换为(wchar_t*):
<code class="lang-cpp">// 窗口类设定
// 样式、函数
// 类增、窗增            (高级参数)
// 模块、图标、光标     (光标=鼠标指针)
// 背景、菜单、类名
WNDCLASS wc = {
    CS_HREDRAW | CS_VREDRAW, // 样式:横向、纵向改变大小时重绘
    WndProc, // 窗口消息处理函数
    0, 0,
    hInst, // 模块句柄
    LoadIcon(NULL, IDI_APPLICATION), // 图标:默认图标
    LoadCursor(NULL, IDC_ARROW), // 光标:箭头
    GetStockObject(WHITE_BRUSH), // 背景画刷:白色
    (wchar_t*)IDR_MENU1, // 菜单:IDR_MENU1
    L"MyWindow", // 窗口类名称
};</code>

四、处理菜单消息

和按钮一样,菜单的项的消息也是WM_COMMAND,因此处理方法也是一样的,这里就不多讲了:
<code class="lang-cpp">case WM_COMMAND: // 接收到命令消息
    switch (LOWORD(wp)) // 判断来源编号(包含在参数wp的低16位中)
    {
    case ID_BUTTON: // 来自ID_BUTTON按钮
        MessageBox(hWnd, L"欢迎来到Win32编程世界", L"消息框", 0); // 弹出消息框
        return 0;
    case ID_ABOUT: // 来自ID_ABOUT菜单项
        MessageBox(hWnd, L"我的第一个Win32程序", L"关于", 0); // 弹出消息框
        return 0;
    case ID_EXIT: // 来自ID_EXIT菜单项
        SendMessage(hWnd, WM_CLOSE, 0, 0); // 关闭窗口
        return 0;
    }
    break; // 消息未处理</code>

五、运行

运行效果:

主窗口8.png
文号 / 783418

千古风流
名片发私信
学术分 4
总主题 466 帖总回复 2942 楼拥有证书:进士 学者 笔友
注册于 2009-05-30 21:22最后登录 2019-01-31 17:16
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步

个人简介

暂未填写
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}