Windows编程函数框架

Windows编程函数框架

#include <Windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,  //当前应用程序的句柄
	HINSTANCE hPrevInstance,  //先前应用程序的句柄,总是为NULL
	PSTR szCmdLine, 
	int iCmdShow) {
	static TCHAR szAppName[] = TEXT("MyWindows");
	HWND hwnd;
	MSG msg;
	WNDCLASS wndclass;

	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	wndclass.lpfnWndProc = WndProc;  //窗口过程函数,必须是回调函数
	wndclass.cbClsExtra = 0;  //额外预留空间,总是为0
	wndclass.cbWndExtra = 0;  //额外预留空间,总是为0
	wndclass.hInstance = hInstance;  //当前应用程序实例句柄,由WinMain函数参数传递过来
	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);  //窗口图标
	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);    //鼠标指针
	wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);  //窗口背景
	wndclass.lpszMenuName = NULL;
	wndclass.lpszClassName = szAppName;  //窗口类名,必须与CreateWindow函数的第一个参数相同,否则出错

	if (!RegisterClass(&wndclass)) {  //注册窗口类
		MessageBox(NULL, TEXT("hello,world!"), szAppName, MB_ICONERROR);
		return 0;
	}

	hwnd = CreateWindow(szAppName,  //窗口类名称,必须与WNDCLASS类的lpszClassName成员一致,否则出错
		TEXT("hello"),  //窗口标题,显示在窗口标题栏
		WS_OVERLAPPEDWINDOW,  //窗口风格
		0,//CW_USEDEFAULT,  //x坐标值
		0,//CW_USEDEFAULT,  //y坐标值
		300,//CW_USEDEFAULT,  //窗口的宽度,x方向的长度
		300,//CW_USEDEFAULT,  //窗口的高度,y方向的长度
		NULL, //父窗口句柄
		NULL, //菜单句柄
		hInstance, //应用程序实例句柄
		NULL);
	  
	ShowWindow(hwnd, iCmdShow);  //显示窗口
	UpdateWindow(hwnd);  //更新窗口,非消息队列

	while (GetMessage(&msg, NULL, 0, 0)) {  //循环消息队列
		TranslateMessage(&msg);  
		DispatchMessage(&msg);
	}

	return msg.wParam;


}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {  //窗口过程函数,必须是CALLBACK回调函数,其实就是__stdcall

	HDC hdc;
	PAINTSTRUCT ps;
	RECT rect;

	switch (message) {
	case WM_PAINT:
		hdc = BeginPaint(hwnd, &ps);
		GetClientRect(hwnd, &rect);
		DrawTextW(hdc, TEXT("hello"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
		EndPaint(hwnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}

	return DefWindowProcW(hwnd,message,wParam,lParam);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值