2021-07-16 VS2019 定义窗口2.0

在1.0的基础上加入图标替换,拆开wnd类

#include <Windows.h> //做windows程序一定要包含的头文件
#include "Resource.h"

 
HINSTANCE  g_hInstance;
//这里的LRESULT就是指Long
//窗口处理函数声明
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg,WPARAM wParam,LPARAM lParam );

//main:C语言控制台黑窗口入口函数
//WinMain:C语言Windows窗口程序函数
//做窗口程序入口函数,所有代码都从这里开始运行


int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPreInstance,_In_ LPSTR lpCmdLine,_In_ int  nCmdShow)
{
	
	g_hInstance = hInstance;					//全局变量
	//做一个大的游戏界面窗口
	//1、设计窗口类
	TCHAR szAppClasssName[] = L"LOL";//窗口类型名

	WNDCLASS wc = {0};
	wc.hbrBackground = CreateSolidBrush(RGB(255, 255, 0));		//这是软件背景颜色,软件背景颜色画刷,调整RGB颜色即可
	wc.hCursor = LoadCursor(NULL, IDC_HAND);				    //这是手,鼠标箭头是IDC_ARROW
	wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));			//这是导入的图标,lol.icon    
	/*wc.hIcon = LoadIco(hInstance,IDI_ERROR);                   这是图标,错误图标*/
	wc.hInstance = hInstance;								    //应用程序实例句柄,表示exe
	wc.lpfnWndProc = WindowProc;							    //窗口处理函数
	wc.lpszClassName = szAppClasssName;                         //窗口的类型名
	wc.style = CS_HREDRAW | CS_VREDRAW;                         //窗口类的风格,水平和竖直方向发生重绘
	
	//2、注册窗口类
	RegisterClass(&wc);
	
	//3、创建窗口
	HWND hWnd = CreateWindow(
		szAppClasssName,					                    //窗口类型名
		L"英雄联盟",										    //窗口标题
		WS_BORDER | WS_CAPTION | WS_MINIMIZEBOX | WS_SYSMENU,	//窗口风格,从屏幕左上角开始,横轴为x轴,竖轴为y轴。
		                                                        //只需要四个值就确定了位置。这里是堆的假退出,不是真正的关闭
		200,50,												//窗口左上角坐标(单位:像素px)	
		1280,800,												//窗口的宽和高
		NULL,													//父窗口句柄
		NULL,													//菜单句柄  
		hInstance,											    //应用程序实例句柄
		NULL													//附加参数
	);

	//4、显示窗口
	ShowWindow(hWnd, SW_SHOW);  //改成这样也可以
	//5、更新窗口(不写的话,程序只会一闪而过)
	UpdateWindow(hWnd);

	//6、消息循环
	MSG  msg;
	while (GetMessage(&msg, NULL, 0, 0))
	{
		//将虚拟键消息转换为字符消息
		TranslateMessage(&msg);
		//将消息分发给窗口处理函数处理
		DispatchMessage(&msg);


	}

	return 0;
}

//窗口处理函数
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	HDC hDC;					//HDC是DC的句柄, API中的一个类似指针的数据类型
	PAINTSTRUCT ps;
	switch (uMsg)
	{
	  case WM_PAINT:                    //窗口绘图消息
	  {		
		  break;
	  }
	  case WM_CLOSE:                                //窗口关闭消息
		DestroyWindow(hWnd);					  //销毁窗口
		break;
	  case WM_DESTROY:								//窗口销毁消息
		PostQuitMessage(0);
		break;
	  
	}
	return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

备注:
1、图标导入

搜索*.ico会找到此电脑下所有ico后缀的图标,

放入解决方案文件夹里

 

然后导入资源文件

 

点击图片导入即可

不出意外会在resource.h里面找到对应图标文件,我这里是IDI_ICON2

 

用这个语句可以导入

wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));

2、运行结果

 没有什么用的亚子

图一乐就可QAQ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值