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