Windows API程序入门学习(1)

Windows API程序入门学习(1)

学习目的

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

作业要求

动手写第一个基于windows API 的基于窗体、消息循环、事件驱动的 Windows C语言风格的Windows 程序。

实现步骤

  1. WinMain函数的定义
  2. 创建一个窗口
  3. 进行消息循环
  4. 编写窗口过程函数

参考书籍

《Windows程序设计》(charle petzold著)
《深入浅出MFC》(侯俊杰著)
《VC++深入讲解》(孙鑫编著)

实现代码

#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WinSunProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
);

//窗口类定义
int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)
{
//窗口属性设置
	WNDCLASS wndcls;
	wndcls.cbClsExtra=0;
	wndcls.cbWndExtra=0;
	wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
	wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
	wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
	wndcls.hInstance=hInstance;
	wndcls.lpfnWndProc=WinSunProc;
	wndcls.lpszClassName="App1";				//窗口标题
	wndcls.lpszMenuName=NULL;
	wndcls.style=CS_HREDRAW | CS_VREDRAW;
	RegisterClass(&wndcls);						//窗口注册
	HWND hwnd;
	hwnd=CreateWindow("App1","我的第一个程序框体",WS_OVERLAPPEDWINDOW,
		0,0,600,400,NULL,NULL,hInstance,NULL);	//窗口创建
	ShowWindow(hwnd,SW_SHOWNORMAL);				//窗口显示
	UpdateWindow(hwnd);
	MSG msg;
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);					//消息发送的窗口函数
	}
	return 0;
}
//消息处理窗口函数
LRESULT CALLBACK WinSunProc(
  HWND hwnd,      
  UINT uMsg,     
  WPARAM wParam,  
  LPARAM lParam   
)
{
	switch(uMsg)
	{
	case WM_CHAR:
		char szChar[20];
		sprintf(szChar,"char is %d",wParam);
		MessageBox(hwnd,szChar,"消息框",0);
		break;
	case WM_LBUTTONDOWN:						//鼠标左键点击
		MessageBox(hwnd,"鼠标点击了一次","消息框",0);
		HDC hdc;
		hdc=GetDC(hwnd);
		TextOut(hdc,0,50,"hellow world!",strlen("hellow world!"));
		ReleaseDC(hwnd,hdc);
		break;
	case WM_PAINT:
		HDC hDC;
		PAINTSTRUCT ps;
		hDC=BeginPaint(hwnd,&ps);
		{
			SetTextColor(ps.hdc, RGB(220, 15, 200));
			TextOut(hDC,0,0,"一个简单的win32程序",strlen("一个简单的win32程序"));
		}
		EndPaint(hwnd,&ps);						//释放环境变量句柄 
		break;
	case WM_CLOSE:								//关闭窗口时响应
		if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
		{
			DestroyWindow(hwnd);
		}
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hwnd,uMsg,wParam,lParam);
	}
	return 0;
}

运行结果

调试成功,开始运行
在这里插入图片描述
鼠标单击界面会有消息框弹出
在这里插入图片描述点击确定键,消息框关闭,并出现"hellow world!"
在这里插入图片描述点击关闭按键弹出提示框确认是否退出
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows程序设计入门是指学习如何使用Windows操作系统中的API和工具开发应用程序的过程。以下是一些入门的步骤: 1. 学习编程语言:Windows程序可以使用多种编程语言编写,例如C++、C#、Visual Basic等。因此,学习一种编程语言是必须的。推荐优秀的编程书籍,例如《C++ Primer》、《C#入门经典》等。 2. 熟悉Windows APIWindows APIWindows操作系统提供的一组函数调用,用于访问系统资源和执行操作。学习Windows API的使用是Windows程序设计的核心。Microsoft的官方文档提供了详细的API参考和示例代码,可以帮助开发者快速上手。 3. 使用集成开发环境(IDE):IDE是一种软件工具,可以帮助开发者编写、调试和测试程序Windows程序设计中常用的IDE有Visual Studio、Code::Blocks、Dev-C++等。 4. 编写简单的应用程序:通过编写简单的应用程序,例如控制台程序、窗口程序等,来熟悉Windows API的使用和程序开发流程。 5. 学习GUI编程:GUI(图形用户界面)是Windows程序的重要组成部分。学习如何使用Windows API或GUI库(例如MFC、WinForms、WPF等)来设计和开发GUI是Windows程序设计的重要步骤。 6. 学习调试和测试:调试和测试是程序开发不可避免的环节。学习如何使用IDE提供的调试工具和测试框架,以及如何编写测试用例和进行单元测试等,可以提高程序的质量和稳定性。 总之,Windows程序设计入门需要学习编程语言、Windows API、GUI编程以及调试和测试等方面的知识。通过不断练习和实践,可以逐渐掌握Windows程序设计的技巧和方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值