本博文简单介绍了上下文菜单以及定时器的知识内容,作为笔记发表在csdn上面。
在这里插入图片描述
菜单资源的使用
- 添加菜单资源
- 加载菜单资源:
- 注册窗口类时设置菜单
- 创建窗口传参设置菜单
- 在主窗口WM_CREATE消息中利用SetMenu函数设置
- 加载菜单资源
cpp
HMENU LoadMenu{
HINSTANCE hInstance;
LPCTSTR lpMenuName;
}
WM_COMMAND
cpp
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;
}
}
上下文菜单
显示上下文菜单
cpp
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,是当前鼠标的热点
- 加载资源
cpp
HCURSOR LoadCursor(
HINSTANCE hInstance,
LPCTSTR lpCursorName
);
- 设置资源
在注册窗口时,设置光标,使用SetCursor设置光标
cpp
HCURSR SetCursor(HCURSOR hCursor);
- WM_SETCURSOR 消息参数
- wPARAM 当前使用的光标句柄
- lPARAM --LOWORD 当前区域的代码(hit-Test Code) HITCLIENT/HTCAPTION HIWORD-当前鼠标消息ID
开发项的讲解
cpp
#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)
cpp
#include<QPushButton>
QT += widgets
步骤2:调用类的构造函数创建按钮
cpp
QPushButton* btn = new QPushButton;
步骤3:显示按钮
cpp
btn->show();
btn->setParent(this);
按钮的属性设置
cpp
btn->setText("第一个按钮");
btn->move(100,100);
btn->setFixedSize(400,400);