3)修改窗口左上角的小图标

时间:2022-09-08 08:18:10

1)结果展示:

      3)修改窗口左上角的小图标

 

 

2)之前我给的那个        wndclass.hIconSm  为NULL  现在  我改为是:

      

1 wndclass.hIconSm=::LoadIcon(hIstance,MAKEINTRESOURCE(IDI_ICON2));;//窗口左上的图标

并且,按照  弄光标或者图标的顺序 又画了一个  小的图标:

3)注意有关步骤:

    

    3)修改窗口左上角的小图标

4)整体代码展示:

    

 1 #include<Windows.h>
 2 #include"resource.h"
 3 //这个叫  窗口消息处理函数
 4 LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 5 {
 6     switch(uMsg)
 7     {
 8     case WM_CLOSE://点那个×,窗口关闭
 9         ::PostQuitMessage(0);//消息推出
10         break;
11     }
12     return ::DefWindowProc( hWnd, uMsg, wParam, lParam);
13 }
14 
15 
16 int CALLBACK WinMain(HINSTANCE hIstance,
17                      HINSTANCE hPreInstance,
18                      LPSTR pCmdLine,
19                      int nCmdShow)
20 {
21             
22     HBRUSH hBrush=::CreateSolidBrush(RGB(0,0,255));
23             
24     
25     //1.设计---->就是给WNDCLASSEX结构体初始化(结构体有12个)
26             WNDCLASSEX wndclass;
27             wndclass.cbClsExtra=0;
28             wndclass.cbWndExtra=0;//这两个是确定是否要分配额外的空间
29             wndclass.cbSize=sizeof(WNDCLASSEX);
30             wndclass.hbrBackground=hBrush;
31             wndclass.hCursor=::LoadCursor(hIstance,MAKEINTRESOURCE (IDC_CURSOR1));//光标
32             //因为上面的那个LoadCUrsor是需要字符串,但是那个IDC_CURSOR1是一个整型数字,所以  需要用那个宏给转定义一下
33             wndclass.hIcon=::LoadIcon(hIstance,MAKEINTRESOURCE(IDI_ICON1));//窗口图标
34             wndclass.hIconSm=::LoadIcon(hIstance,MAKEINTRESOURCE(IDI_ICON2));;//窗口左上的图标
35             wndclass.hInstance=hIstance;
36             wndclass.lpfnWndProc=WndProc;
37             wndclass.lpszClassName="wangchao";
38             wndclass.lpszMenuName=NULL;
39             wndclass.style=CS_HREDRAW|CS_VREDRAW;
40 
41     //2.注册(将上面的那个窗口给注册上)
42             if(::RegisterClassEx(&wndclass)==FALSE)
43             {
44                 ::MessageBox(NULL,"dhsakfljadsf","提示",MB_OK);
45                 
46                 return 0;
47             }
48     //3.创建
49                     
50             HWND hWnd=::CreateWindow("wangchao","xiao_hua",WS_OVERLAPPEDWINDOW,100,0,500,500,NULL,NULL,hIstance,NULL);
51             
52         if(hWnd==NULL)
53         {
54             ::MessageBox(NULL,"创建失败","提示",MB_OK);
55             return 0;
56         }
57     //4.显式
58             //这个SW_SHOW就是一个宏,它就是ShowWindow-->SW,SW_SHOW显式,SW_HIDE隐藏
59             //第一个变量是显式哪一个窗口,就是上面的我们创建的那个hWnd
60         ::ShowWindow(hWnd,SW_SHOW);
61     //5.消息循环
62         //定义一个消息句柄
63             MSG msg;
64             //函数的第一个变量是 取到的什么消息,第二个是这个消息是来自哪一个窗口(如果给0,说的是所有窗口的消息)
65             //最后那个是消息的范围,0,0是所有的范围,要是写10  20  就是取第10个到第20个消息
66             while(::GetMessage(&msg,0,0,0))
67         {
68             //第一步先翻译
69             ::TranslateMessage(&msg);
70             //第二部分发
71             ::DispatchMessageA(&msg);
72 
73         }
74 
75 
76     ::DeleteObject(hBrush);
77 }

 

 

5)文件框图展示:

    3)修改窗口左上角的小图标