• 5)加载系统光标方法


    1)其实我们可以加载系统光标的,此时需要修改之前的代码了

    2)点着这个LoadCursor函数   按下F1,着他的帮助文档:

    3)

          

    4)然后  修改你的代码:

    1 wndclass.hCursor=::LoadCursor(NULL,IDC_HELP );//光标
    2 //看我的那个hinstance的位置是NULL

    5)结果展示:
          

     6)整体代码展示:

        

     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(NULL,IDC_HELP );//光标
    32             //因为上面的那个LoadCUrsor是需要字符串,但是那个IDC_CURSOR1是一个整型数字,所以  需要用那个宏给转定义一下
    33             wndclass.hIcon=::LoadIcon(hIstance,MAKEINTRESOURCE(IDI_ICON1));//窗口图标
    34             wndclass.hIconSm=NULL;//窗口左上的图标
    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 }

    7)文档目录结构:

      

  • 相关阅读:
    CKA易错题整理:五、配置⽹络策略 NetworkPolicy
    CKA易错题整理:第四题:备份还原 etcd
    2022 暑期复健训练(持续更新)
    【其他】STL 容器初始化后占用空间大小测试
    2步 从百度网盘好友分享文件中导出文件目录
    简单易懂的时序数据压缩算法分析
    判断字符串是否可以转成BigDecimal(可转用小数,负数)
    RocketMq
    【leetCode】三数之和
    【leetCode】盛最多水的容器
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/8303669.html
Copyright © 2020-2023  润新知