VC++ win32 API编程:如何改变鼠标光标
我试图更改鼠标光标并编写下面的代码,但不起作用。 看来 IDC_CURSOR_WHITE
应该放入 rc 文件中。我尝试过但失败了。最后我来到这里寻求您的指导。帮助!谢谢。
IDC_CURSOR_WHITE IDC_CURSOR_BLACK 不是
hWhiteCursor = ::LoadCursor(hInstance, (LPCTSTR)IDC_CURSOR_WHITE);
hBlackCursor = ::LoadCursor(hInstance, (LPCTSTR)IDC_CURSOR_BLACK);
case WM_LBUTTONDOWN:
if ((type = ++type % 2) == 0)
SetCursor(hWhiteCursor);
else
SetCursor(hBlackCursor);
break;
case WM_SETCURSOR
return 0;
PS:rc文件代码。错误是鼠标坐标未定义。
// Microsoft Visual C++ generated resource script.
//
#include "resource."
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.\0"
END
3 TEXTINCLUDE
BEGIN
"\r\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_CURSOR_WHITE CURSOR "cursor1.cur"
IDC_CURSOR_BLACK CURSOR "cursor2.cur"
#endif // resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
I am trying to change the mouse cursor and write the code below but doesn't work.
It seems IDC_CURSOR_WHITE
should be put into a rc file. I tried and failed. At last I came here seeking your guidance. Help! Thanks.
IDC_CURSOR_WHITE IDC_CURSOR_BLACK not
hWhiteCursor = ::LoadCursor(hInstance, (LPCTSTR)IDC_CURSOR_WHITE);
hBlackCursor = ::LoadCursor(hInstance, (LPCTSTR)IDC_CURSOR_BLACK);
case WM_LBUTTONDOWN:
if ((type = ++type % 2) == 0)
SetCursor(hWhiteCursor);
else
SetCursor(hBlackCursor);
break;
case WM_SETCURSOR
return 0;
PS: The rc file code. And the error is mouse cousor not defined.
// Microsoft Visual C++ generated resource script.
//
#include "resource."
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.\0"
END
3 TEXTINCLUDE
BEGIN
"\r\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_CURSOR_WHITE CURSOR "cursor1.cur"
IDC_CURSOR_BLACK CURSOR "cursor2.cur"
#endif // resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从您发布的代码片段中,您正在使用
IDC_CURSOR_WHITE
和IRC_CURSOR_BLACK
加载光标,但您将它们作为IDC_CURSOR1
包含在 .rc 文件中代码>和<代码>IDC_CURSOR2。From the snippets you posted, in the code you are loading the cursors using
IDC_CURSOR_WHITE
andIRC_CURSOR_BLACK
, but you are including them in the .rc file asIDC_CURSOR1
andIDC_CURSOR2
.当我需要使用资源时,我就是这样做的。首先,我创建一个resource.h 文件并使用唯一的整数定义资源名称。将resource.h 文件包含在您的.rc 文件中,然后定义实际的资源。因此,在您的情况下,文件应如下所示
现在要使用特定文件中的资源,我只需包含 resource.h 文件并使用特定的光标。因此,在您的情况下,如果您想在 test.cpp 文件中使用光标。
我希望这有帮助。如需了解更多信息,MSDN 永远是您的朋友。
http://msdn.microsoft.com/en-我们/库/ms648380%28VS.85%29.aspx
This is what I do when I need to use resources. First I create a resource.h file and define the Resource Name with a unique integer. Include resource.h file in your .rc file and then define the actual resource. So in your case the files should be as follows
Now to use the resource in a particular file, I just include the resource.h file and use the particular cursor. So again in your case, if you want to use the cursor in test.cpp file.
I hope this helps. For further information MSDN is always your friend.
http://msdn.microsoft.com/en-us/library/ms648380%28VS.85%29.aspx