2009-10-08 3 views
2

Я пытаюсь изменить курсор мыши и написать код ниже, но не работает. Кажется, IDC_CURSOR_WHITE следует поместить в файл rc. Я пробовал и терпел неудачу. Наконец я пришел сюда, чтобы узнать ваше руководство. Помогите! Благодарю.VC++ win32 API-программирование: как изменить курсор мыши

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: гс файл кода. И ошибка указателя мыши не определена.

// 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 
+1

Что ошибка вы получаете при отдаче ресурса в файле гс? – Naveen

+0

Как и какая ошибка вы получаете, как вы помещаете ее в файл rc? – Vicky

+0

Какова ценность hWhiteCursor и hBlackCursor? – Blake7

ответ

1

Из фрагментов вы вывешенные в коде загрузке курсоры с помощью IDC_CURSOR_WHITE и IRC_CURSOR_BLACK, но вы включаете их в файле .rc как IDC_CURSOR1 и IDC_CURSOR2.

1

Это то, что я делаю, когда мне нужно использовать ресурсы. Сначала я создаю файл resource.h и определяю имя ресурса с уникальным целым числом. Включите файл resource.h в ваш .rc-файл, а затем определите фактический ресурс. Так что в вашем случае файлы должны быть следующими

resource.h 
#define IDC_BLACK_CURSOR 1001 

resource.rc 
#include "resource.h" 
...... 
IDC_BLACK_CURSOR CURSOR "cursor1.cur" 

Теперь использовать ресурс в конкретном файле, я просто включить файл Resource.h и использовать конкретный курсор. Так что снова в вашем случае, если вы хотите использовать курсор в файле test.cpp.

test.cpp 
#include "resource.h" 
.... 
hBlackCursor = LoadCursor(hInst, MAKEINTRESOURCE(IDC_BLACK_CURSOR)); 
..... 

Надеюсь, это поможет. Для получения дополнительной информации MSDN всегда является вашим другом.

http://msdn.microsoft.com/en-us/library/ms648380%28VS.85%29.aspx