WIN32程序创建热键

	//1..WNDCLASS结构()
	//WNDCLASS储存某一类窗口的信息,要得到某一窗口的WNDCLASS数据可以用GetClassLong()
	WNDCLASS wndcls;
	wndcls.cbSize			= sizeof(WNDCLASSEX);
	wndcls.style			= CS_HREDRAW | CS_VREDRAW;				//窗口类型
	wndcls.lpfnWndProc		= WinProc;								//窗口处理函数(回调函数) long CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
	wndcls.cbClsExtra		= 0;									//窗口扩展,缺省0,表示窗口类无扩展
	wndcls.cbWndExtra		= 0;									//窗口实例扩展,缺省0,表示窗口实例无扩展
	wndcls.hInstance		= hInstance;							//实例句柄 
	wndcls.hIcon			= LoadIcon(NULL ,IDI_WINLOGO);			//窗口的最小化图标,窗口的最小化图标为缺省图标
	wndcls.hCursor			= LoadCursor(NULL, IDC_ARROW);			//窗口鼠标光标,IDC_ARROW表示窗口采用箭头光标
	wndcls.hbrBackground	= (HBRUSH) GetStockObject(LTGRAY_BRUSH);//窗口背景色,灰色画刷,即定义窗口背景为灰色
	wndcls.lpszMenuName		= NULL;									//窗口菜单,NULL表示窗口无菜单
	wndcls.lpszClassName	= "FirstMain";							//窗口类名,每个程序都有类名称


	//2..注册窗口
	//就是在系统注册某一类型的窗体,也就是将你提供的WNDCLASS数据注册为一个窗口类,在WNDCLASS.lpszClassName中定义该WNDCLASS的标识.
	//无论CreateWindow或CreateWindowEx创建的窗口都必须对应一个WNDCLASS,但一个WNDCLASS可以有多个窗口对象.
	//有一些系统预定义的窗口类,如:"BUTTON","COMBOBOX","EDIT","LISTBOX","MDICLIENT","SCROLLBAR","STATIC.
	//要得到某一窗口的窗口的窗口类名称,可以用GetClassName()获取
	RegisterClass(&wndcls); 

	//3..创建窗体
	//将WNDCLASS定义的窗体变成实例
	HWND hwnd = CreateWindowEx(
							0,										//窗口的扩展风格
							"FirstMain",							//指向注册类名的指针
							"窗口标题",								//指向窗口名称的指针
							WS_TILEDWINDOW,							//窗口风格
							200,									//窗口的水平位置
							200,									//窗口的垂直位置
							268,									//窗口的宽度
							191,									//窗口的高度	
							NULL,									//父窗口的句柄,缺省NULL,表示此窗口无父窗口
							NULL,									//菜单句柄,缺省NULL,表示此窗口无子菜单
							hInstance,								//应用程序实例的句柄
							NULL);									//指向窗口的创建数据

	//4..显示窗口
	ShowWindow(hwnd,SW_SHOWNORMAL);

	//5..绘制用户区
	UpdateWindow(hwnd);

	//6..热键注册
	#define ID_H1 0x1201
	#define ID_H2 0x1202
	#define ID_H3 0x1203
	#define ID_H4 0x1204 
	RegisterHotKey(hwnd,ID_H1, MOD_ALT,'1');
	RegisterHotKey(hwnd,ID_H2, MOD_ALT,'2');
	RegisterHotKey(hwnd,ID_H3, MOD_ALT,'3');
	RegisterHotKey(hwnd,ID_H4, MOD_ALT,'4');

        //7..消息循环
	MSG msg;
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg); //键盘消息转换为字符
		DispatchMessage(&msg);	//返回msg给回调函数(过程)
	} 



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangqin115/article/details/78381292
个人分类: VC/MFC
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭