• 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
    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
    QT += widgets
    

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

    QPushButton* btn = new QPushButton;
    

    步骤3:显示按钮

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

    按钮的属性设置

    btn->setText("第一个按钮");
    btn->move(100,100);
    btn->setFixedSize(400,400);
    
  • 相关阅读:
    Java实现---动态修改定时任务的执行时间
    从零开始搭建React+TypeScript+webpack开发环境-基于lerna的webpack项目工程化改造
    vlan笔记
    Elasticsearch 7.X版本常用语法语句
    解决 webpack 配置 sass-loader后报错,无法正常build
    Linux 中常用的基础命令
    【网络篇】如何查看ip 是否冲突
    这份数据安全自查checklist请拿好,帮你补齐安全短板的妙招全在里面!
    辛苦复习两个月,线上三面阿里Java高开岗,终如愿拿到offer
    【Mysql】EXPLAIN
  • 原文地址:https://blog.csdn.net/m0_37149062/article/details/137031935