VC设置鼠标指针大小

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gneveek/article/details/54599595

      在使用LoadCursor或LoadCursorFromFile时,指针的大小总是默认的32x32,如果想让指针变大或变小,该怎么做呢?

其实很简单,只要使用LoadImage接口就好了。


先看下LoadImage的函数原型:

HANDLE WINAPI LoadImage(
  _In_opt_ HINSTANCE hinst,
  _In_     LPCTSTR   lpszName,
  _In_     UINT      uType,
  _In_     int       cxDesired,
  _In_     int       cyDesired,
  _In_     UINT      fuLoad
);

参数cxDesired, cyDesired可以指定尺寸,这样我们想让鼠标多大,填上相应的大小即可。


更详细的参数介绍,请参考MSDN,这里就不再多说了。

看示例代码:

// 从文件加载的,fuLoad要指定 LR_LOADFROMFILE, 如果是从exe资源里加载的,则不用
// cx,cy填0(且fuLoad没的LR_DEFAULTSIZE)表示使用资源的实际尺寸
HCURSOR hCursor = (HCURSOR)::LoadImage((HINSTANCE)NULL, lpFileName, IMAGE_CURSOR, 0, 0, LR_LOADFROMFILE);

if (hCursor == NULL)
{
      //GetLastError();
      return;
}

::SetCursor(hCursor);



下面是一个从exe资源内加载的示例:

::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDC_CURSOR_48X48_HAND), IMAGE_CURSOR, 0, 0, 0);


参考文档:

1. MSDN https://msdn.microsoft.com/en-us/library/windows/desktop/ms648045(v=vs.85).aspx

2. https://support.microsoft.com/en-us/kb/158898

3. http://www.debugease.com/vc/2038805.html

猜你喜欢

转载自blog.csdn.net/gneveek/article/details/54599595
今日推荐