win32窗口程序 -----1、加载资源图标
程序员文章站
2024-03-01 12:16:28
...
概要:
一、窗口的创建过程主要包含5个步骤
1、设计窗口
2、注册窗口
3、创建窗口
4、显示窗口
5、消息循环
二、加载图标资源的语句如下:
ex.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2));
ex.hIconSm = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
ex.hCursor = LoadCursor(hInstance,MAKEINTRESOURCE(IDC_CURSOR1));
//如果 ex.hIcon; ex.hIconSm; ex.hCursor;赋值为NULL则选择默认的图标
三、添加资源的步骤
资源文件————右键属性_———-添加——-资源文件。。。。。。
完整代码如下
#include <Windows.h>
#include "resource.h"
int i=0;
/*LRESULT 就是longresult,L表明为long,
result表明这个函数返回值是某个结果
CALLBACK表明为回调函数
*/
LRESULT CALLBACK MyWNDPROC(HWND, UINT, WPARAM, LPARAM); //消息处理函数的声明
int CALLBACK WinMain( HINSTANCE hInstance, //当前应用程序实例的句柄
HINSTANCE hPrevInstance, //应用程序前一个实例的句柄
LPSTR lpCmdLine, //命令行参数
int nCmdShow) //决定这个窗口显示方式的参数
{ HWND hWnd;
MSG msg;
// HDC hdc;
WNDCLASSEX ex; // WNDCLASSEX是结构体 该语句定义了一个为ex的 结构体
ex.style = CS_HREDRAW | CS_VREDRAW; // 窗口水平刷新、垂直刷新
ex.cbSize = sizeof(ex); //ex的大小
ex.cbClsExtra = 0; //存放次结构体的一些附加信息,通常为0
ex.cbWndExtra = 0; //这段空间用来存放此窗口特有的数据 ,通常为0
ex.hInstance = hInstance; //应用程序句柄,由主函数传递进来
ex.hIcon= LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2));
ex.hIconSm = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON1));
ex.hCursor =LoadCursor(hInstance,MAKEINTRESOURCE(IDC_CURSOR1));
ex.lpszMenuName = NULL;
ex.hbrBackground= CreateSolidBrush(RGB(171,171,226));
// 指定背景画刷句柄
ex.lpszClassName= "123"; //指定窗口的名字,用于CreateWindow()函数
ex.lpfnWndProc =MyWNDPROC;//lpfnWndProc是指向函数(MYWNDPROC())的指针,
//2.注册
RegisterClassEx(&ex);
//3.创建
hWnd=CreateWindow(ex.lpszClassName,"Hello world!!!",WS_OVERLAPPEDWINDOW,100,100,
600,600,NULL,NULL,hInstance,NULL);
//4.显示
ShowWindow(hWnd,nCmdShow) ;
//5.消息循环
while(GetMessage(&msg,NULL,0,0))
{ //翻译消息
TranslateMessage(&msg) ;
//分发消息
DispatchMessage(&msg) ;
}
}
LRESULT CALLBACK MyWNDPROC(HWND hWnd,UINT Msg, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch (Msg)
{
case WM_CLOSE: //点击窗口右上角关闭键的消息
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,Msg,wParam,lParam);
}
运行结果如下:
上一篇: 使用Django Form解决表单数据无法动态刷新的两种方法
下一篇: CSS经典实用技巧18招