Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 214
от 19.03.2003, 19:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 635
Отправлено ответов: 1416
Активность: 222.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

vitya
Статус: Профессиональный
Общий рейтинг: 107.99
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.04
URL: Страничка обо мне и моих друзьях
Телефон: +7 902 168 02 65
[Подробней >>]
D1g174LM4n14c
Статус: Начальный
Общий рейтинг: 128.57
[Подробней >>]
 
akul
Статус: Доверительный
Общий рейтинг: 117.93
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 626. Здравствуйте, эксперты ! Спасибо за ответы по поводу ссылки на сайт в About-диалоге.Теперь другой во... (ответов: 4)

Вопросов: 1, ответов: 4


 Вопрос № 626

Здравствуйте, эксперты !
Спасибо за ответы по поводу ссылки на
сайт в About-диалоге.Теперь другой вопрос:
как менять курсор,когда он над статическим эле-
ментом ? Пробовал подменять в диалоге OnSetCursor
че-то не выходит. Если делать свой класс , производный
от CStatic , то как его связать с контролом ?



Вопрос отправлен: 16.03.2003, 16:08
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Приветствую Вас, IceWINteR!
Связываешь обычным образом - чтобы появилась переменная, а потом меняешь ее тип на свой класс.
было:
CWnd m_myURL;
превращаешь:
CMyStatic m_myURL;

Ответ отправлен: 17.03.2003, 14:34
Отправитель: vitya


Отвечает Gibbel

Приветствую Вас, IceWINteR!
OnSetCursor надо перехватывать в статическом элементе, а не в самом диалоге...
А вообще, есть более простой и действенный вариант:
глобальные переменные:
HCURSOR hCursor;
LONG prevCursor;
при создании диалога:
hCursor=LoadCursor (
NULL, // Здесь hInstance, если подгружаешь свой курсор
IDC_WAIT // Соответственно, выбираешь курсор (для примера - часики)
);
prevCursor=::SetClassLong (
::GetDlgItem(
m_hWnd, // Хэндл окна джиалога.
IDC_STATIC // Идентификатор элемента управления
),
GCL_HCURSOR,
(LONG)hCursor // Хэндл курсора, полученный функцией LoadCursor()
);
при закрытии:
::SetClassLong (
::GetDlgItem(
m_hWnd, // Хэндл окна джиалога.
IDC_STATIC // Идентификатор элемента управления
),
GCL_HCURSOR,
prevCursor // Восстанавливаем старый курсор
);


Ответ отправлен: 17.03.2003, 10:22
Отправитель: Gibbel


Отвечает D1g174LM4n14c

Доброе время суток, IceWINteR!
Когда курсор находится над твоим элементом управления, используй функции SetCursor() и LoadCursor() таким образом:
SetCursor(LoadCursor(0, IDC_HAND));
Когда курсор "уходит" от элемента управления, меняй его обратно:
SetCursor(LoadCursor(0, IDC_ARROW));
Вот и все! ;)

Ответ отправлен: 16.03.2003, 17:23
Отправитель: D1g174LM4n14c


Отвечает akul

Добрый день, IceWINteR!
Очень просто. Предположим, что ты описал класс CLink от CStatic. В описание CAboutDlg добавляешь
CLink m_Link;
потом в CAboutDlg::OnInitDlg
пишешь
m_Link.SubclassDlgItem(IDC_LINK, this);
где IDC_LINK - идентификатор твоего Static контрола в диалоге. Ну а дальше у тебя, как я уже писал, должно быть перекрыто
WM_MOUSEMOVE в CLink и уже в нем используешь
SetCursor
для смены курсора...

Ответ отправлен: 17.03.2003, 06:08
Отправитель: akul



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (35)
C / C++ (30)
Perl (6)
Delphi (16)
Pascal (19)
Basic / VBA (11)
Java / JavaScript (10)
PHP (7)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (32)
Windows NT/2000/XP (25)
"Железо" (29)
Поиск информации (14)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (13)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное