C语言基本的窗口开发

欢迎来到
魔术之家!!‍‍

  • visual studio 2022编译器

打开项目流程:C语言基本的窗口开发_第1张图片C语言基本的窗口开发_第2张图片C语言基本的窗口开发_第3张图片

  • 创建主函数

C语言基本的窗口开发_第4张图片

‍♂️重点重点!!!

‍♂️必须要设置,不然在设置类配置回调函数中不允许其命名为常字符,就会报错!!C语言基本的窗口开发_第5张图片

  • 创建文件,放入代码

#include"windows.h"
#define PageSizex 500 //窗口宽
#define PageSizey 600 //窗口长
LRESULT CALLBACK dEf(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam);//声明回调函数
void OnPaint(HDC hDC);

//WINAPI: 调用约定,转到定义查看)
//句柄:一个数,作用:窗口的唯一标志
 
int WINAPI WinMain(
	HINSTANCE hInstance, //当前实例句柄
	HINSTANCE hPreinstance, //前一个句柄
	LPTSTR ipcmdline,  //传递给系统胡命令行参数
	int ncmdshow  //默认为1,显示窗口
)
{
	//初始化窗口类
	WNDCLASSEX  wc; // window class extra与 wndclass 的扩展
	HWND hWnd; //窗口句柄
	MSG mSg; //信息接受
 	
 	//配置窗口类
	wc.cbClsExtra = 0;  //对窗口类的额外空间
	wc.cbSize = sizeof(WNDCLASSEX); //类的结构体大小
	wc.hInstance = hInstance; //当前窗口实例句柄
	wc.hCursor = NULL;// 可自行加载系统光标 LoadCursor(NULL,IDC_HAND);
	wc.cbWndExtra = 0; //对窗口的额外空间
	wc.hIcon = NULL;//与光标一样LoadIcon(NULL,IDI_ERROR); 
	wc.hbrBackground = (HBRUSH)COLOR_WINDOW;    //背景更换颜色
	wc.hIconSm = NULL; //小图标 同光标LoadIcon(NULL, IDI_ERROR); 
	wc.lpfnWndProc = dEf; //回调函数地址
	wc.lpszClassName = "Def"; //名字不能重复!给操做系统看的
	wc.lpszMenuName = NULL;  //菜单
	wc.style = CS_HREDRAW | CS_VREDRAW; //h v垂直刷新和水平刷新redraw

	//12个成员少一个不可以!!!

	//注册窗口对象
	//返回数据类型ATOM unsigned short
	if (0 == RegisterClassEx(&wc))
	{	
		
		int a = GetLastError(); //函数生成一个错误码,用工具查询
		//errno也是对应码值
			 	return 0;
	};

	//创建窗口      lp 是一个指针的意思
	hWnd = CreateWindowEx(WS_EX_TOPMOST, "Def", "窗口", WS_OVERLAPPEDWINDOW | WS_POPUPWINDOW, 100, 100, PageSizex, PageSizey, NULL, NULL, hInstance, NULL);
	if (NULL == hWnd) //窗口句柄  窗口唯一标识
	{
		return 0;
	}

	//显示窗口
	ShowWindow(hWnd, ncmdshow); //ncmdshow 都是1  标准显示
	// 隐藏返回0, 可视返回非0	

//得到消息
	while (GetMessage(&mSg, NULL, 0, 0))// NULL/非NULL的区别,全部句柄接受
	{
		
		TranslateMessage(&mSg); //翻译消息	
		
		DispatchMessage(&mSg); //分发消息 标准消息 命令消息 通知消息 自定义消息

	}
	
	return 0;
}

// 不能嵌套定义函数!!!在主函数外
 // 返回Long					//UIMT unsigned int 
LRESULT CALLBACK PElouSi(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam) //定义一个函数要声明类型
{
	PAINTSTRUCT pst;
	HDC hDC;
	switch(nMsg)
	{
	case WM_CREATE://从窗口创建初期只执行一次
		  //优化
		//初始化数据
		break;


	case WM_DESTROY:
		PostQuitMessage(0);		//经过WM_CLOSE->WM_DESTORY->WM_QUIT处理消息 
		break; 
	}
	return DefWindowProc(hWnd, nMsg, wParam, lParam);//默认系统处理其他消息

}

  • ctrl + F5 运行!

效果如下
C语言基本的窗口开发_第6张图片

创建成功!!!✌

			   到这里,你如果对增删改查还有什么疑问
		‍欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!‍
			如果对你有帮助,你的赞是对博主最大的支持!!

你可能感兴趣的:(C语言windows程序设计,c++,p2p,linq)