----Исходное сообщение----- От: Yegor A. Blackheel Кому: kaev@yandex.ru Дата: 7 марта 2000 г. 13:31 Тема: MFCByStep Привет, Артем! Классный сайт! Альтернативный способ смены курсора вида: 1. В любом нужном месте вида вставляем строки /*наши курсоры*/ HCURSOR newcursor, oldcursor; ................................. /* */ newcursor = AfxGetApp()->LoadCursor(IDC_ВАШКУРСОР); /* если надо - сохраняем старый */ oldcursor = ::GetCursor(); /*функция SetClassLong - принадледит глобальному пространству имен - используем :: */ /*GCL_HCURSOR означает, что мы меняем именно курсор, принадлежащий окну вида */ ::SetClassLong(this->m_hWnd,GCL_HCURSOR,(long)newcursor); 2. Все! Конечно, чем именно пользоваться, дело вкуса :) Но мне кажется, что использование SetClassLong достаточно интересная тема для нового ШАГА. :) С уважением, Yegor A. BlackheelНу что, давайте попробуем и этот вариант. Делаем приложение на базе диалогового окна. На это окно помещаем кнопку и код к ней. В ресурсы добавляем наш курсор.
Нарисуйте что-нибудь на курсоре, например, фигу :-))) Давайте напишем код и посмотрим результат работы.
void CTestCursDlg::OnButton1() { HCURSOR cr; HCURSOR old; cr= AfxGetApp()->LoadCursor(IDC_CURSOR1); old = ::SetCursor(cr); ::SetClassLong(this->m_hWnd,GCL_HCURSOR,(long)cr); }
Итак, создаем указатели на курсоры. Один на новый, второй на старый. Из ресурсов зачитываем курсор (LoadCursor). Дальше получаем указатель на старый курсор и устанавливаем новый (SetCursor). А вот теперь эта функция SetClassLong, которая помогает нам установить курсор. Результаты тестирования меня немного удивили :-))). Курсор устанавливается при перемещении над кнопкой в обычный вид, уберешь с кнопки - нормальный, который установили.