Windows API程序设计

Windows API程序设计

写作目的

  1. 了解 windows操作系统应用程序开发的基本概念,win32 API函数、消息与事件驱动;
  2. 掌握WinMain函数的基本框架,窗口定义、窗口创建、消息循环及窗口过程函数;

操作步骤

1.定义 WInMain 函数;
2.设计窗口类 WNDCLASS ;
3.注册窗口类;
4.创建窗口;
5.显示并更新窗口;
6.编写消息循环;
7.编写窗口过程调用函数;

源代码

#include<Windows.h>
LRESULT CALLBACK WndProc(
	HWND hwnd, UINT message,
	WPARAM wParam,
	LPARAM lParam);
int APIENTRY  WinMain(HINSTANCE hInstance,
	HINSTANCE hPrevInstance,
	LPSTR lpCmdline,
	int nCmdShow)
{
	WNDCLASS wndclass;
	HWND hwnd;
	MSG msg;
	char lpszClassName[] = "window";


	//设计窗口类型
	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	wndclass.lpfnWndProc = WndProc;
	wndclass.cbWndExtra = 0;
	wndclass.cbClsExtra = 0;
	wndclass.hInstance = hInstance;
	wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
	wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wndclass.lpszMenuName = NULL;
	wndclass.lpszClassName = lpszClassName;

	//注册窗口类型
	if (!RegisterClass(&wndclass))
		return FALSE;
	//创建窗口
	hwnd = CreateWindow(lpszClassName,
		"window窗口创建",
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT,
		CW_USEDEFAULT, CW_USEDEFAULT,
		NULL,
		NULL,
		hInstance,
		NULL);
	//显示并刷新窗口
	ShowWindow(hwnd, nCmdShow);
	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) 
	{
		switch (message) {
			case WM_PAINT:
				 HDC hdc;
				 PAINTSTRUCT ps;
				 hdc = BeginPaint(hwnd, &ps);
				 TextOut(hdc,150,150,"MY FIRST WINDOW",15);
				 EndPaint(hwnd, &ps);
				 break;
			case WM_LBUTTONDOWN:
			{
				MessageBeep(0);
			}
			break;
			case WM_DESTROY:
		   		 PostQuitMessage(0);
			    	break;
			default:
				return DefWindowProc(hwnd, message, wParam, lParam);

		}
		return 0;
		
	}

在这里插入图片描述

小结

刚开始一直使用vs2019来完成作业但是一直报错,最后发现是开始的文件没有创建正确。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值