2021-08-02 第一个win32程序和窗口应用

今天开始win32的学习,不出意外的话每天一更,整理自己的学习内容。

#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)
{
	//先说一下主函数的区别
//WinMain:窗口应用程序(GUI应用程序)的入口函数 ,不能缺少,不能改名字
//main:    控制台黑窗口应用程序(CUI应用程序)入口函数
	//函数的调用约定:
//WINAPI :  宏定义
//实际上就是:     __stdcall
//C语言函数默认调用约定是: __cdecl
//Windows API函数嘴遵守 __stdcall 调用约定,必须显示的加上。

//__cdecl 和 __stdcall
//1、定义了函数参数的入栈顺序
//2、由调用函数还是被调用函数来弹出栈(清理栈)
//__cdecl 和 __stdcall入栈方式:从右往左入栈
// CALLBACK 、APIENTRY  =》    __stdcall

//接下来看WinMain函数参数
//第一个参数:HINSTANCE:应用程序实例句柄类型
//DECLARE_HANDLE(HINSTANCE);  宏函数
//#define DECLARE_HANDLE(HINSTANCE) 
//struct HINSTANCE__
//{
//	int unused;
//}; 
//typedef struct HINSTANCE__*   HINSTANCE;
//HINSTANCE:结构体指针
//hInstance:当前应用程序实例句柄,(理解为:代表着当前这个应用程序,本质:程序的基地址)
//第二个参数:hPreInstance :当前应用程序前一个实例句柄,在32位应用程序以及往后,这个参数没有使用了,为NULL值,在16位机器应用程序上使用
//第三个参数:LPSTR:字符串类型
//typedef CHAR*   NPSTR, * LPSTR, * PSTR;
//CHAR* => LPSTR
//typedef char CHAR;
//char <=>  CHAR
//LPSTR <=> char*
//即命令行参数,传递一个字符串过来
//第四个参数:窗口的显示方式

//MessageBox函数弹出一个消息提示框
MessageBox(NULL, L"这是我的第一个Windows窗口", L"温馨提示", MB_OK);
/*函数原型
	int WINAPI MessageBox(
  _In_opt_  HWND hWnd,
  _In_opt_  LPCTSTR lpText,
  _In_opt_  LPCTSTR lpCaption,
  _In_      UINT uType
);
*/
	//第一个参数:父窗口句柄
	//HWND :窗口句柄类型(唯一的标记一个窗口,相当于窗口为ID)
	//HWND
	//DECLARE_HANDLE(HWND);
	/*
	struct HWND__
	{
		int unused;
	}; 
	typedef struct HWND__*   HWND;
	*/	
	//第二个参数:要显示的文本
	//LPCTSTR
	//typedef LPCWSTR PCTSTR, LPCTSTR;
	//typedef  CONST WCHAR *LPCWSTR, *PCWSTR;	
	//#define CONST               const
	//CONST <=> const
	//typedef wchar_t WCHAR;    // wc,   16-bit UNICODE character
	//wchar_t <=> WCHAR
	//wchar_t:宽字符,一个字符,占用两个字节
	//char:窄字符,一个字符占用一个字节
	//CONST WCHAR * <=> LPCWSTR <=> LPCTSTR <=> const wchar_t*
	//L:告诉编译器字符串是采用宽字符串编码,Unicode编码
	//第三个参数:消息框的标题
	//LPCTSTR  
	//第四个参数:按钮与图标的组合
	

}

图为MessageBox的第四个参数的几种常用形式
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值