MFC上下文菜单与定时器学习笔记

本博文简单介绍了上下文菜单以及定时器的知识内容,作为笔记发表在csdn上面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

菜单资源的使用

  • 添加菜单资源
  • 加载菜单资源:
    • 注册窗口类时设置菜单
    • 创建窗口传参设置菜单
    • 在主窗口WM_CREATE消息中利用SetMenu函数设置
  • 加载菜单资源
HMENU LoadMenu{
	HINSTANCE hInstance;
	LPCTSTR lpMenuName;
}

WM_COMMAND

在这里插入图片描述

void OnCommand(HWND hWnd,WPARAM wParam){
	switch(LOWORD(wParam)){
		case ID_NEW:
		MessageBox(hWnd,"新建被点击","Infor",MB_OK);
		break;
		case ID_EXIT:
		MessageBox(hWnd,"推出被点击","Infor",MB_OK);
		break;
		
	}
}

上下文菜单

显示上下文菜单

BOOL TrackPopupMenu{
	HMENU hMenu,//菜单句柄
	UINT uFlags, //显示方式
	int x; //水平位置,屏幕坐标系
	int y,//垂直位置,屏幕坐标系
	int nReserved, //保留,必须0
	HWND hWnd,//处理菜单消息的窗口句柄
	CONST RECT* prcRect//NULL ,忽略
	
};TrackPopupMenu是阻塞函数

WM_RBUTTONUP

鼠标右键弹起消息为窗口坐标系坐标,要使用需将其转换成屏幕坐标系坐标ClientToScreen

WM_CONTEXTMENU

  • wParam:右键点击窗口句柄
  • lParam:LOWORD X坐标 ,屏幕坐标系 HIWORD Y坐标系,屏幕坐标系

WM_CONTEXTMENU消息是在WM_RBUTTONUP消息之后产生。

图标资源

  • 添加资源:注意图标的大小,一个图标文件中,可以有多个不同大小的图标
  • 加载:HICON LoadIcon(HINSTANCE hInstance,LPCSTR lpIconName);成功返回句柄
  • 设置:注册窗口类

光标资源

  • 添加光标的资源:光标的大小默认是32*32像素,每个光标有HotSpot,是当前鼠标的热点
  • 加载资源
HCURSOR LoadCursor(
	HINSTANCE hInstance,
	LPCTSTR lpCursorName
);
  • 设置资源

在注册窗口时,设置光标,使用SetCursor设置光标

HCURSR SetCursor(HCURSOR hCursor);
  • WM_SETCURSOR 消息参数
    • wPARAM 当前使用的光标句柄
    • lPARAM --LOWORD 当前区域的代码(hit-Test Code) HITCLIENT/HTCAPTION HIWORD-当前鼠标消息ID

开发项的讲解

#include"widget.h"
#include<QApplication>
int main(int argc,char * argv[]){
	QApplication a(argc,argv);//应用程序类(整个后台管理的命脉,处理应用程序的初始化和结束,事件处理调度,注意不管有多少个窗口,一个QApplication类就可)
	Widget w;//示例化对象,调用构造函数
	w.show();//显示图像界面
	return a.exec();//主事件循环,在exec函数中,qt函数并处理用户和系统的事件并将它们传递给适当的窗口部件
}

代码书写在哪里

.pro:用于生成可执行文件
main.cpp 主函数
widget.cpp 类的函数
一般情况,窗口的属性和添加控件的操作都会在类的构造函数中书写
优点:可以让主程序中多余的代码,程序阅读也方便

创建按钮

步骤1:包含头文件(.cpp)及模块(.pro)

#include<QPushButton>
QT += widgets

步骤2:调用类的构造函数创建按钮

QPushButton* btn = new QPushButton;

步骤3:显示按钮

btn->show();
btn->setParent(this);

按钮的属性设置

btn->setText("第一个按钮");
btn->move(100,100);
btn->setFixedSize(400,400);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/703652.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python学习笔记6:pychram相关知识及安装教程,后续需要学习的入门知识

上篇文章说了&#xff0c;今天去公司重新装一下IDE&#xff0c;最后也是把过程这边再记录一下&#xff0c;有需要的可以参考一下。 关于pychram pychram是什么&#xff1f; PyCharm是由JetBrains公司开发的一款流行的Python集成开发环境&#xff08;IDE&#xff09;。它专为…

RAM IP核配置

REVIEW 之前已经学习过&#xff1a; ROM:FPGA寄存器 Vivado IP核-CSDN博客 串口接收&#xff1a;Vivado 串口接收优化-CSDN博客 1. 今日摸鱼计划 RAM创建与测试 小梅哥视频&#xff1a; 21C_嵌入式块存储器RAM介绍_哔哩哔哩_bilibili 21D_嵌入式块存储器RAM实现和仿真_哔哩…

wordpress旅游网站模板

旅行社wordpress主题 简洁实用的旅行社wordpress主题&#xff0c;适用于旅行社建网站的wordpress主题模板。 https://www.jianzhanpress.com/?p4296 旅游WordPress主题 简洁实用的旅游WordPress主题&#xff0c;适合做旅游公司网站的WordPress主题模板。 https://www.jian…

网络故障排除:保持网络稳定与业务连续

目录 什么是网络故障&#xff1f; 网络故障排除的基本步骤 1. 问题识别 2. 确定故障范围 3. 检查物理连接 4. 检查设备配置 5. 测试与诊断 6. 实施解决方案 7. 验证与监控 了解更多 在现代企业中&#xff0c;网络的稳定性和性能直接影响业务的连续性和效率。作为一名…

上岸北科大计算机专业难度有多大?北京科技大学计算机考研考情分析!

北京科技大学计算机与通信工程学院源于1973年成立的计算机及应用专业&#xff0c;经过近40年的建设&#xff0c;学院在学科建设、科学研究水平和教育教学质量上实现了跨越式的发展与大力提升。学院目前设有计算机科学与技术系、软件工程系、通信工程系、物联网与电子工程系、信…

项目文件预览

在实际项目开发过程&#xff0c;项目使用数据存在多种形式&#xff0c;“文件”也是一种常见形式&#xff0c;因此&#xff0c;“文件预览”功能变成了常规需求。 kkFileView项目使用流行的spring boot搭建&#xff0c;易上手和部署。万能的文件预览开源项目&#xff0c;基本支…

知识图谱的应用---智慧外交

文章目录 智慧外交典型应用 智慧外交 智慧外交是指通过事件分析的手段&#xff0c;从历史、政治、经济、军事、文化等多个层面对各个国家的关系进行定量分析&#xff0c;提供智能化的外交关系研判和外交决策支撑。依托公开媒体、互联网及内部信息等海量资源数据&#xff0c;综合…

视频号小店常见问题全网最全的合集,赶紧收藏起来!

大家好&#xff0c;我是电商小V 新的电商项目视频号小店也是越来越火&#xff0c;想去操作的小伙伴也是越来越多&#xff0c;但是很多人对于这个项目本身不是很了解&#xff0c;咱们今天就来详细的说一下视频号小店&#xff0c;最关心的问题&#xff0c;一篇详解&#xff0c;建…

计算机组成原理(五)

一、链式查询方式 接口的优先级固定不变 在链式查询的情况下&#xff0c;设备的优先级通常与其在链中的位置有关。具体来说&#xff0c;越靠近查询链的起始位置的设备通常具有较高的优先级&#xff0c;而越靠近链的末尾位置的设备优先级较低。 优点&#xff1a; 简单实现&am…

12. ESP32-JSON(Arduino)

使用ESP32和Arduino框架处理JSON数据 在物联网&#xff08;IoT&#xff09;开发中&#xff0c;ESP32是一款功能强大的微控制器&#xff0c;它结合了Wi-Fi和蓝牙功能&#xff0c;适用于各种智能设备和传感器项目。JSON&#xff08;JavaScript Object Notation&#xff09;是一种…

StaticText文本类

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 创建完窗口以后&#xff0c;我们可以在窗口内添加一些控件&#xff0c;所谓的控件&#xff0c;就是经常使用的按钮、文本、输入框、单选框等。 于所…

AIOps实现的简单途径

AIOps需要大模型的支持&#xff0c;但是训练一个业务专用的大模型并不是一件理想的任务&#xff0c;所以利用开源的通用大模型才是王道。 我们可以利用AI大模型的理解能力来帮助分析和解释Kubernetes&#xff08;K8s&#xff09;的日志。通过提供日志中可能存在问题的部分&…

白酒:茅台镇白酒的消费趋势与未来发展

茅台镇&#xff0c;中国白酒的璀璨明珠&#xff0c;以出产品质的白酒而享誉全球。在这片神奇的土地上&#xff0c;云仓酒庄豪迈白酒以其别具一格的酿造工艺和风格特点&#xff0c;成为了市场的宠儿。随着消费市场的不断变化&#xff0c;云仓酒庄豪迈白酒的消费趋势也在悄然发生…

代码随想录算法训练营第四十三天 | 01背包问题理论基础、01背包问题滚动数组、416. 分割等和子集

背包问题其实有很多种&#xff0c;01背包是最基础也是最经典的&#xff0c;软工计科学生一定要掌握的。 01背包问题 代码随想录 视频讲解&#xff1a;带你学透0-1背包问题&#xff01;| 关于背包问题&#xff0c;你不清楚的地方&#xff0c;这里都讲了&#xff01;| 动态规划经…

基于学习模型的可学习小波变换方法(Pytorch)

首先以图像编码为例进行说明。 图像编码是一个复杂的系统&#xff0c;通常包含多个模块&#xff0c;其中变换模块具有重要作用。小波变换在图像编码领域得到了广泛的应用&#xff0c;例如著名的JPEG 2000就是一种小波图像编码方法。然而&#xff0c;现阶段的小波图像编码方法与…

java入门-文件与IO流

File类 提供一些方法(api)来操纵文件和获取文件的信息 File常用API 属性 获取系统分隔符 不同操作系统的分隔符 windows的目录分割符号是用向右的斜线&#xff0c;java中\ 表示转义字符&#xff0c;所以向右的斜线需要写两个 \; linux目录分割符号是向左的斜线: / private st…

C#开源项目推荐:Watt Toolkit跨平台游戏工具箱支持github网络加速

Watt Toolkit是一个开源跨平台的多功能游戏工具箱&#xff0c;主要专注于增强玩家在Steam平台上的游戏体验及国外网站平台加速。 主要功能 兼容性 用户数据 团队背景 github加速功能 使用方法&#xff1a;用户只需在Watt Toolkit中启用网络加速功能&#xff0c;并选择对Gi…

cleanmymacx最新破解版百度云免费下载 cleanmymac激活码分享

CleanMyMac X4.15.3 中文破解版是一款 mac 系统清理软件&#xff0c;是一款专业的 Mac 清理、优化和维护工具&#xff0c;可以帮助用户清理系统垃圾、卸载不需要的应用程序、优化系统性能、保护隐私和安全等&#xff0c;让用户的 Mac 始终保持高效、安全和稳定。 CleanMyMac X4…

再度牵手,制造升级 | 毅达科技IMS OS+通用产品集+行业套件项目正式启动!

在数字化与智能制造的浪潮中&#xff0c;制造业企业纷纷加快转型步伐&#xff0c;力求通过技术创新实现生产效率与质量的双重提升。近日&#xff0c;广东毅达医疗科技股份有限公司&#xff08;以下简称“毅达科技”&#xff09;再次携手盘古信息&#xff0c;正式启动了IMS 数字…

跃入AI新纪元:亚马逊云科技LLM全景培训,解锁AI构建者之路

亲爱的技术爱好者们&#xff0c;你是否也对大语言模型&#xff08;LLM&#xff09;的神奇魅力所吸引&#xff0c;渴望深入探索其背后的技术奥秘&#xff1f;今天&#xff0c;我要为大家推荐一份超级硬核的学习资源——亚马逊云科技 对话AI 构建者&#xff1a;从基础到应用的LLM…