码迷,mamicode.com
首页 > 其他好文 > 详细

5)加载系统光标方法

时间:2018-01-17 18:28:26      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:translate   hicon   chm   ide   rbac   lap   dcl   关闭   失败   

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)文档目录结构:

  技术分享图片

 

5)加载系统光标方法

标签:translate   hicon   chm   ide   rbac   lap   dcl   关闭   失败   

原文地址:https://www.cnblogs.com/xiaoyoucai/p/8303669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!