首页 > 编程语言 >窗口程序框架示例代码

窗口程序框架示例代码

时间:2024-05-04 15:23:12浏览次数:14  
标签:wc 框架 示例 句柄 消息 msg 窗口 NULL

#include <windows.h>
//创建窗口程序的步骤: 
//1.创建WinMain()主函数
//2.设计窗口 
//3.注册窗口 
//4.创建窗口
//5.显示窗口

//回调函数,消息处理函数 
LRESULT CALLBACK WndProc(HWND hwnd,//窗口句柄 
						UINT Message,//消息 
						WPARAM wParam,//消息参数 
						LPARAM lParam){//消息参数 
	switch(Message){
		case WM_DESTROY:{//当用户关闭窗口,窗口销毁,程序需结束,发退出消息 
			PostQuitMessage(0);
			break;
		}
		default:
			return DefWindowProc(hwnd, Message, wParam, lParam);
	}
	return 0;
}
//1.创建WinMain()主函数
//WINAPI 函数修饰符 被称为栈的数据结构 用来支持参数传递 
int WINAPI WinMain(HINSTANCE hInstance,//该程序当前运行 实例的句柄 
 					HINSTANCE hPrevInstance, //当前实例的前一个实例的句柄 
					LPSTR lpCmdLine,//是一个以空终止的字符串,指定传递给应用程序的命令行参数 
					int nCmdShow//指定程序的窗口应该如何显示 
					){
	//2.设计窗口 
	WNDCLASSEX wc; //窗口属性 知识点1 
	memset(&wc,0,sizeof(wc));//初始化结构体 
	wc.cbSize= sizeof(WNDCLASSEX);//赋值结构体大小 
	wc.lpfnWndProc= WndProc;//窗口处理函数的指针,用来发送信息,回调函数 
	wc.hInstance= hInstance;//实例句柄 
	wc.hCursor= LoadCursor(NULL, IDC_ARROW);//窗口类的鼠标样式,为鼠标样式资源的句柄 
	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);//窗口类的背景刷,为背景刷句柄 
	wc.lpszClassName = "WindowClass";//指向窗口类的指针
	//3.注册窗口 
	RegisterClassEx(&wc); 
	//4.创建窗口	 
	//创建成功后返回值为窗口句柄类型 
	HWND hwnd;//句柄,或指向窗口的指针 
	hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,//窗口的扩展风格 知识点2 
		"WindowClass",//指定窗口类的名称,设计窗口类中为lpszClassName成员指定的名称 
		"Caption",//指定窗口的名字。窗口样式指定了标题栏,窗口名字将显示在标题栏上 
		WS_VISIBLE|WS_OVERLAPPEDWINDOW,//窗口的基本风格 知识点2 
		CW_USEDEFAULT, //x 
		CW_USEDEFAULT, //y
		640,//宽 
		480,//高 
		NULL,//窗口的父窗口句柄 
		NULL,//窗口的菜单句柄 
		hInstance,//应用程序实例句柄 
		NULL);//窗口创建是附加参数 
	
	//5.显示窗口 
	MSG msg;//所有消息的临时位置 
	while(GetMessage(&msg, NULL, 0, 0) > 0) {//如果没有接受到错误信息,执行下面函数语句 
		TranslateMessage(&msg);//消息转化 
		DispatchMessage(&msg);//消息派遣。吧TranlateMessage转换的消息发送到窗口的消息处 
	} 
	return msg.wParam;//指定应用程序退出 
}

  

标签:wc,框架,示例,句柄,消息,msg,窗口,NULL
From: https://www.cnblogs.com/wangyueshuo/p/18172348

相关文章

  • 窗口程序框架
    #include<windows.h>//创建窗口程序的步骤://1.创建winMain()主函数//2.设计窗口//3.注册窗口//4.创建窗口//5.显示窗口LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,//消息WPARAMwParam,//消息参数LPARAMlParam){//消息参数switch(Message){......
  • AI猜数字(窗口版)
    #include<bits/stdc++.h>#include<windows.h>usingnamespacestd;intmain(){intmaxx=10,minn=0,i=0;stringt;cout<<"请想一个数字"<<endl;if(MessageBox(NULL,"想好了吗?","提示",MB_YESNO)==I......
  • 弹出窗口
    #include<bits/stdc++.h>#include<windows.h>usingnamespacestd;intmain(){ MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_OK); MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_ABORTRETRYIGNORE); MessageBox(NULL,&q......
  • 弹出窗口
    #include<bits/stdc++.h>#include<windows.h>usingnamespacestd;intmain(){ MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_OK); MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_ABORTRETRYIGNORE); MessageBox(NULL,&q......
  • 弹出窗口messagebox
    #include<bits/stdc++.h>#include<windows.h>usingnamespacestd;intmain(){ MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_OK); MessageBox(NULL,"你好,这是一个提示信息框","信息框",MB_ABORTRETRYIGNORE); MessageBox(NULL,&q......
  • 弹出窗口(MessageBox)
     #include<iostream>#include<Windows.h>usingnamespacestd;intmain(intargc,char**argv){MessageBox(NULL,"只有确认按钮","信息框",MB_OK);MessageBox(NULL,"中止重试忽略","信息框",MB_ABORTRETRYIGNORE);......
  • 大模型_2.2:Prompt示例
    1、行业洞察分析  行业洞察分析的方法论:使用麦肯锡工作法可以快速了解一个行业。Step1:通过搜索分析几十个与该行业相关的关键词,覆盖该行业的上下游,以获取全面的信息。Step2:阅读一些行业最新的研究分析报告,这些报告通常包含了行业趋势、市场规模、竞争格局等重要信息。Step......
  • C# 搭建一个 基于ISqlSugarClient 三层架构框架 涉及数据库仓储 然后中间又有业务逻辑
    要在C#中搭建基于ISqlSugarClient的三层架构框架,你需要定义数据访问层(DAL)、业务逻辑层(BLL)和表现层(UI)。下面是一个完整的例子,涉及数据库仓储、业务逻辑层,以及依赖注入。这个例子基于ASP.NETCoreMVC构建,使用ISqlSugarClient来处理数据访问。这个例子中,我们将使用User作为一个简单......
  • QT使用Http协议通信的实现示例
    转载自:https://www.jb51.net/program/3074287bh.htm 使用QT进行应用开发时,有时候需要进行客户端和服务端的网络通信,本文主要介绍了QT使用Http协议通信的实现示例,具有一定的参考价值,感兴趣的可以了解一下 −目录介绍1.多个独立参数GET请求2.参数数组GET请求3.上传......
  • 51单片机程序框架之按键单击
    /******************************************************************************此程序是依据吴坚鸿程序框架,在普中51A2单片机开发板上的程序练习程序目标:按键单击,Key1按下,LED灯亮,Key2按下LED灭************************************************************************......