WIN32 资源

首先解释一下句柄:

        win32中的句柄在数值上表示一个32位的数,用来标识应用程序/进程中不同对象以及同类对象中的不同实例,而所谓实例就是指被实例化的对象,实例化的过程就是通过类创建对象的过程。实例化对象的目地是为对象开辟内存空间。所以句柄是指向一片内存空间的。

        句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。也就是说句柄是指向指针的指针。

        资源加载过程简单来说,rc资源通过编译成为二进制res资源,通过链接加载到程序中,程序运行过程中通过句柄以及资源ID找到资源的内存空间,进而将资源加载展示。

1、菜单资源

1、添加资源文件

2、加载资源文件(三种方式)

        1、注册窗口类时加载菜单资源

        2、创建窗口时传参(菜单资源句柄)设置

        3、在主窗口产生WM_CREATE消息后,通过SetMenu函数设置

获取menu句柄函数:

HMENU LoadMenuA(
  [in, optional] HINSTANCE hInstance,
  [in]           LPCSTR    lpMenuName
);

2、图标资源

1、添加资源

2、加载资源

        注册窗口类时加载图标资源

获取图标句柄函数:

HICON LoadIconA(
  [in, optional] HINSTANCE hInstance,
  [in]           LPCSTR    lpIconName
);

3、光标资源

1、添加资源

2、加载资源

        1、注册窗口类时加载光标资源  (仅对客户区生效)

        2、通过SetCursor函数设置 (对客户区、标题栏区域均生效)

获取光标句柄函数:

HCURSOR LoadCursorA(
  [in, optional] HINSTANCE hInstance,
  [in]           LPCSTR    lpCursorName
);

SetCursor设置时机:

鼠标移动会产生WM_SETCURSOR消息:

        WPARAM   当前使用光标句柄

        LPARAM  

                LOWDRD   当前区域 (HTCLIENT / HTCAPTION)

                HIWORD    当前鼠标消息ID(左/右 up/down)

4、字符串资源

int LoadStringA(
  [in, optional] HINSTANCE hInstance,
  [in]           UINT      uID,
  [out]          LPSTR     lpBuffer,
  [in]           int       cchBufferMax
);

5、加速键资源

1、添加加速表资源,增加命令ID对应的加速键

2、使用

        1、加载加速键表

HACCEL LoadAccelerators(
    HINSTANCE hlnstance,  //模块的一个实例的句柄
    LPCTSTR lpTableName //指向即将调入的加速键表的名字字符串。
);   //返回 加速键表 句柄

        2、翻译加速键表       

int
WINAPI
TranslateAcceleratorW(
    _In_ HWND hWnd,//处理消息的窗口句柄
    _In_ HACCEL hAccTable,//快捷键表句柄。快捷键表由前面LoadAccelerators函数调用装入
    _In_ LPMSG lpMsg//消息结构指针
); //如果时加速键,返回非0

在WM_COMMAND中相应的消息参数:

WPARAM :HIWORD == 1 为加速键消息  0表示菜单消息

                     LOWARD 为命令ID

LPARAM : 为0  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值