windows编程笔记【六】使用菜单和相应菜单事件

Windows程序编程(3):事件、菜单、控件 消息类型 windows程序中分为很多消息,不同消息可能属于不同的类型; 1、窗口消息:与窗口相关的消息,标准消息WM_ 2、命令消息:用于处理用户请求,以WM_COMMAND表示的消息; 3、控件通知消息:统一由WM_NOTIFY表示; 4、用户自定义消息,可以传递更复杂的消息,一个消息通常是一个数,windows给我们提供了一个临界值, 临界值以外的数都是我们可以自定义的。 阅读详情

本笔记源自windows游戏编程大师技巧第二版3.2章,记做学习随笔。

使用vs2017环境编译。

 首先接上一篇笔记创建资源的办法,来新建一个Menu文件。

 

再输入一个二级菜单。

 

打开resource.h后系统帮我们创建了两个宏定义,其中IDR_MEUN1也就是三位数的就是菜单编号,五位数的选项ID,之后会用到。

使用菜单

1.关联在window类里:

使用我们刚刚创建的菜单有三种方式:

他可以直接在创建的Windows类里,也就是WNDCLASSEX类里使用,方式如下:

WNDCLASSEX winclass;					//新建窗口类
.
.
winclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);			//用于加载和选用窗口
.
.

直接使用MAKEINTRESOURCE()填入宏定义即可。设置类的lpszMenuName属性,他就是用来加载菜单的。

效果如下:

 

2.关联在创建窗口函数里:

直接定义在菜单里有一个问题,对于这了类创建的所有窗口都会有这个菜单,所以我们也可以只设计某个窗口的菜单。

在创建窗口函数也是可以的,代码如下:

hwnd = CreateWindowEx(NULL,
		"WINCLASS1",	//winclass.lpszClassName设置的字符,是类的别名。
		"YouWindows",	//窗口的名称
		WS_OVERLAPPEDWINDOW | WS_VISIBLE,	//一些窗口属性
		0, 0,			//窗口位置
		400, 400,		//窗口宽高
		NULL,			//父窗口句柄
		LoadMenu(hinstance, MAKEINTRESOURCE(IDI_ICON1)),			//附属窗口句柄
		hinstance,		//WinMain第一个实参,程序句柄。
		NULL			//null就可以了
	)
LoadMenu(hinstance, MAKEINTRESOURCE(IDI_ICON1)), 

使用这个函数也可以做到。

 

3.使用SetMenu()函数关联

HMENU hunmu = LoadMenu(hinstance, MAKEINTRESOURCE(IDR_MENU1)); //定义meun的句柄。
SetMenu(hwnd, hunmu);//参数为窗口句柄和meun句柄。

这样也可以,写在创建窗口之后即可。

 

相应菜单事件

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);

对于菜单事件消息

msg——WM_COMMAND

lparam——发出消息的窗口句柄

wparam——选择中的菜单ID

case WM_COMMAND:
		{
			switch (LOWORD(wparam))
			{
			case ID_Menu:
			{
				MessageBox(NULL, "窗口", "窗口", MB_OK);
			}break;
			default:
				break;
			}
		}

即可。

OneNote Win10自带的宝藏笔记工具 我们知道,电脑上制作的文本文件都需要有自己的保存目录,当笔记种类繁多时,对不会条理整理文件的小伙伴是个不小的挑战,我们需要建立很多错综复杂的文件目录来存放各种各样的笔记。即便是对井井有条的小伙伴来说,当你学习的来源非常多时,用Word写出的文件类型不同就会分配到不同的文件夹,久而久之,越分越多,查阅起来就会比较麻烦(这是学长本人血的教训)。作为微软office家庭中的一员,OneNote带来的用户体验丝毫不他的兄弟Word,Excel等,无论是字体编辑,亦或排版文本,OneNote都做到了简约而不简单。 阅读详情

相关推荐

Windows 右键菜单扩展

  右键菜单,指用户在对Windows Shell Object右键单击时,弹出的上下文菜单(Context Menu)。 如上图所示的对右键菜单进行扩展,属于Windows Shell Extension编程的一部分。 注:一般扩展程序的信息会注册到注册表某个路径的ShellExt下。 本文将介绍利用COM接口对Windows右键菜单进行扩展,笔者将分四个步骤对整个项目建立过程进行引...

mapupcal的博客 8075

Windows电脑笔记软件多 推荐几款好用的笔记工具

从会议记录、任务清单,到创意发散、知识整理,笔记软件无疑提高了我们的工作效率和信息管理能力。然而,随着市场上各类笔记工具的不断涌现,如何选择一款适合自己的笔记软件,成了很多人面临的难题。它的灵活性和自定义功能使得用户可以根据自己的需求,创建不同的工作空间,兼顾个人和团队的需求。今天,我们将探讨几款Windows平台上好用的笔记软件——OneNote、Flomo、敬业签、Notion,并对比它们的功能、优缺点,帮助大家找到最适合自己的笔记工具。文件存储:支持添加图片、文档、表格、音/视频等等格式的文件。

xiaocao_1023的博客 6364

Windows Forms菜单设计全攻略(下)

在上面对事件响应方法Test()的定义中,有两个参数,一个分别表示引发事件的对象(object)sender,由于引发事件的对象不可预知的,因此我们把其声明成为object类型,所有的对象都适用;除了部分类(如集合类)以外,在Windows Forms中,大部分菜单相关的类都是由Menu类继承而来,在Menu中提供了一个MenuItems的菜单项目集合,通过其可以达到非常方便的管理一个菜单系列中的菜单项(如添加、删除等),还可以构建一个菜单项的下级子菜单等。在.Net中,菜单项对象模型其实是一个树状的。

biyusr的专栏 1187

有什么Windows电脑上好用地记笔记软件

当你每天的工作事项非常多时,就会有很多事情需要记住,面对繁琐复杂的各种事项,很多人的记忆力都是有限的,很容易就会忘记工作事项,这应该怎么办呢?并且在编辑笔记内容时,还可以打开笔记的大窗口编辑模式,能够提高我们记笔记的效率。还需要说明的是,工作中的一些待办事项,我们还可以记录到它的待办分类中,并且为每条待办设置定时提醒时间,到时间后能够通过铃声、弹窗准时提醒我们。作为一款功能强大的电脑桌面笔记软件,敬业签支持笔记记录、待办提醒、任务管理等多个功能,可以为我们的工作提供极大的便利,从而帮助我们提高办公效率!

c18069344077的博客 829

在Windows 10和11中打开事件查看器的11种方法,总有一种适合你

在Windows 10和11中打开事件查看器的11种方法,总有一种适合你。

wyxtx的博客 4822

如何在Windows 11中使用编程设置开始菜单为经典模式

通过调用Windows Shell API函数,我们可以定制和修改开始菜单的外观和行为。尽管Windows 11提供了新的用户界面和设计元素,但通过编程,我们可以根据个人偏好来调整和改变系统的外观。在本文中,我将向您展示如何使用编程来设置Windows 11的开始菜单为经典模式。在编译和运行应用程序之后,您将看到Windows 11的开始菜单不再包含最大化、最小化、还原和关闭按钮,从而实现了经典的开始菜单模式。要实现这一目标,我们将使用Windows Shell API来修改开始菜单的外观和行为。

CodeByte的博客 1122

windows学习笔记

windows系统快速查看电脑配置 参考:https://zhuanlan.zhihu.com/p/58653081 在运行中输入dxdiag 即可查看 切换到显卡,可以看到显卡型号

GXQ的博客 779

掌握Windows应用程序开发:列表框和菜单的使用

本文详细探讨了在Windows应用程序开发中如何使用列表框(ListBox)和菜单(Menu)控件。通过实例代码,展示了列表框的添加、更新以及如何设置其选项和属性,如添加选项、设置大小、选择模式和默认选中项等。此外,文章还介绍了如何通过菜单项触发事件,并对菜单进行组织和控制。通过具体的代码示例和分析,帮助读者理解并掌握这些控件的使用方法。

weixin_42509507的博客 334

Windows菜单的三种创建方法

菜单是窗体上的重要构件,是人机交互的重要工具。菜单由菜单条、子菜单、菜单项三个要素构成。 菜单条可以理解为"横式"菜单条,子菜单可以理解为"纵式"菜单条。因为"纵式"菜单条常挂入到其他菜单条中,这种情况称为子菜单;如果作为独立的快捷菜单使用,这种情况称为快捷菜单。 创建Windows菜单有三种方法,即资源编辑、内存菜单模板和动态创建。这三种方法可以独立使用,也可以结合使用。下面分别介绍。

hzj58477的博客 3508

使用SDK实现Windows右键菜单的完整示例

Windows Software Development Kit (SDK) 是为开发者提供的一个工具集合,包含了编写Windows应用程序所需的所有库、头文件、文档以及示例代码。SDK让开发者可以利用Windows提供的API(应用程序编程接口)来实现各种功能,从而创建性能卓越且符合Windows标准的应用程序。

weixin_42462474的博客 1008

使用Visual C++创建Windows 2000弹出窗口和菜单

本文介绍了在使用Visual C++开发Windows 2000程序时,如何通过编程方式创建弹出窗口和浮动菜单。内容涵盖了如何处理鼠标和键盘事件来控制弹出窗口的显示与隐藏,以及如何计算窗口大小并动态创建和管理浮动菜单。

weixin_34581040的博客 462

六.菜单

1.响应菜单命令顺序视类-文档类-框架类-应用程序类2.windows消息分类标准消息除WM_COMMAND之外,所有以WM_开头的消息都是标准消息。从Cwnd派生的类,都可以接收到这类消息。命令消息来自菜单、加速键或工具栏按钮的消息。这类消息都可以WM_COMMAND形式吃不呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam

subleo的专栏 1092

用Windows API创建简单的菜单和对话框。

非常简单的Windows程序,对于菜单和对话框的编写一目了然。适合初学者对于Windows编程的学习。

Windows通知栏图标高级编程概述

任务栏(Taskbar)是微软公司在Windows 95中引入的一种特殊的桌面工具条,它为用户快速访问计算机资源提供了极大的方便,而状态栏(以下称通知栏)无疑是任务栏上较为特殊的一个窗口。编程人员可以调用API函数Shell_NotifyIcon向通知栏发送消息来添加、删除或修改图标,当在图标上发生鼠标或键盘事件时,系统会向应用程序发送编程时预先定义的消息,通知栏处理回调函数就会被自动调用以做出相

eagleboost's blog 6777

推荐系统公平性之流行度偏差(fairness in recommender systems -- popularity bias)

主要参考论文:《The Unfairness of Popularity Bias in Recommendation》 RMSE@RecSys 2019 流行度偏差是什么 先定义流行物品和非流行物品。下图是(Movielens 1M)数据集中物品的评分情况。 图的横坐标表示不同物品,纵坐标表示物品的评分次数。可以看出只有少部分物品得到了很多的评分,大部分曲线尾部的物品都只有少量的评分,我们也把这部分物品称为长尾物品。在本文中,我们取曲线的前20%对应的物品为流行物品,剩余的为非流行物品(长尾物品)。 然

beilizhang的博客 5283

易灵思Trion FPGA实战:5分钟搞定MIPI硬核配置(附Interface Designer避坑指南)

本文详细介绍了易灵思Trion FPGA中MIPI硬核的快速配置方法,通过Interface Designer工具实现从时钟配置到数据收发的全流程实战。特别针对初次接触Trion系列的设计师,提供了六个关键配置陷阱及解决方案,帮助开发者高效完成嵌入式视觉和高速数据传输项目。

eee77的博客 793

C# Winfrom 右键菜单

拖入一张图片控件,其他的控件也行,再拖入一个 ContextMenuStrip 控件在 ContextMenuStrip 控件里添加两个菜单点击图片控件,在属性行为中找到 ContextMenuStrip 选项选择刚刚创建的菜单 ContextMenuStrip 控件,这里的控件名是自定义的在视图界面上,对菜单1,菜单2 选项双击,会自动生成点击事件。点击菜单2,在属性窗口也可以看到具体设置 ,比如,菜单2的点击事件在Form1中,就随意加点代码吧 将输出类型改为控制台输出 点击右键点击菜单1,就可以

熊思雨的博客 8362

时间序列:R语言ARMA-GARCH模型

ARMA: #读入数据,并绘制时序图 d<-read.table("C:/Users/haha/Desktop/R/zuoye/1.txt") x<-ts(log(d),start = 1) 1: x的时间序列图: x<-ts(log(d),start = 1) plot(x) 2: 从上图可以看出x.dif序列值在0的附近波动,没...

1万+

windows编程之菜单操作

分清几个概念 <1>“主菜单” 和 “顶层菜单” 是一个意思。 <2>主菜单中的项目叫做 “弹出菜单” 或者 “子菜单”。 <3>弹出菜单的项目能够是另外一个弹出菜单。 <4>菜单的状态:启用,禁用。无效化,无效化跟前两者的差别是灰色显示文字。 (1)菜单消息 <1>WM_INITMENU ...

aofan9566的博客 312

FI 应计对象的创建和摊销

创建/修改:ACACTREE01/ACACTREE02 应计对象的过账:ACACPOSTING

nancyln9711的博客 904

从零到一:FAST_LIO与FAST_LIO2算法环境搭建与实战评测

本文详细介绍了FAST_LIO与FAST_LIO2算法的环境搭建与实战评测,包括算法原理、环境配置避坑指南、源码编译技巧及性能对比。FAST_LIO2凭借ikd-tree数据结构在动态环境中表现优异,处理速度提升至15ms,内存占用降低40%。文章还提供了常见问题排查和进阶优化技巧,助力开发者高效实现SLAM应用。

weixin_29271053的博客 470

Windows Phone 菜单栏

一.Application Bar     Windows Phone中的菜单栏最多可以显示4个图标按钮。这些图标会自动地被从左向右添加到菜单栏中。如果还有额外的选项可以通过菜单项来添加,这些菜单项默认是不显示的。只有在点击菜单栏右侧的省略号(或省略号下方的区域)时才会显示出来,在电话屏幕的方向改变时,系统会自动处理菜单栏的方向(包括按钮和菜单项)。 按钮中的图标应该是48 x 48像素的,其

此站&彼岸 844

卫星遥感影像处理:地物分类与变化检测

卫星遥感影像处理:地物分类与变化检测​ ,人工智能,计算机视觉,大模型,AI,卫星遥感技术通过搭载在卫星上的传感器获取地球表面的电磁波信息,为地物分类与变化检测提供了宏观、动态的观测数据。随着高分辨率遥感卫星(如高分系列、哨兵系列)的发展,遥感影像的空间分辨率、光谱分辨率和时间分辨率不断提升,为精准地物识别和动态变化监测奠定了基础。地物分类旨在将遥感影像中的像元按地表覆盖类型(如植被、水体、建筑、农田等)进行分类,而变化检测则通过对比不同时期的影像,识别地表覆盖的变化区域(如城市扩张、森林砍伐、土地退化等)

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 17万+

菜单栏

菜单通常用来显示程序是各项功能,以方便用户选择执行。通过对菜单栏的访问,用户可以快速进入需要的界面,因此,在开发Windows应用程序时,菜单仍然是组织大量选项最常用的方法。 一、菜单栏的用途 菜单栏是可视化编程的重要组成部分,可以方便地给命令分组并访问这些命令。制作菜单栏所使用的控件为ContextMenuStrip和MenuStrip控件。菜单栏通常分为下拉式菜单和弹出式菜单两种。 1、

ルーキーの殇 2763

Python 爬虫进阶:爬取 APP 数据(Charles 抓包 + Requests)

本文详细介绍了APP数据爬取的完整技术方案。首先通过Charles抓包工具配置HTTPS代理和证书,解析APP通信协议;然后分析请求参数、反爬机制和动态签名生成规则;接着使用Python的Requests库实现模拟请求、分页爬取和数据存储;最后针对证书问题、Token失效等常见问题提供解决方案。文章强调抓包分析、参数逆向和请求模拟三大核心技术,同时提醒开发者需遵守法律法规,合理控制爬取频率。该方案适用于移动端数据采集场景,为无法直接获取网页数据的情况提供了有效解决方案。

2503_91057718的博客 2120

【Android调试】高通adb识别不到设备的完整排查指南:从驱动到端口一步到位

本文系统梳理高通(Qualcomm)平台Android设备adb无法识别的完整排查流程。从最基础的USB连接检查开始,到Windows设备管理器中驱动状态的判断、高通USB驱动的正确安装与更新方法,再到adb端口被占用、USB调试未开启、驱动签名校验失败等高频场景的解决方案。每一步均配截图和操作命令,文末附常见报错速查表,适合做系统开发、刷机调试或者Android Framework bringup时遇到adb不通的工程师快速定位。

weixin_44081096的博客 285
上一篇: windows编程笔记【五】vs2017资源文件(*rc)添加资源,修改图标
下一篇: windows编程笔记【七】处理重要消息
崔佳宇_
崔佳宇_ 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄10年 1万+粉丝 173原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值