Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Замена стандартного курсора Windows |
Автор: Haster 22.10.2006, 15:38 |
Товарищи!!! Подскажите, как программно изменить курсор. Хочется создать прогу, которая бы не имела видимого окна и изменяла стандартный курсор винды. Была идея найти хэндл десктопа, по нему получить хэндл процесса, а далее поменять курсор при помощи SetCursor(). Но что-то не сраслось. Хотелось бы обойтись средствами самой винды, т.е. API (без использования MFC) Заранее спасибо. P.S. Похожие темы видел, но описывалось в них изменение курсора в приложении + с использованием библиотеки MFC, поэтому счел правильным создать новую тему. |
Автор: ЫукпШ 22.10.2006, 16:39 | ||||
Ф-ия ::SetCursor используется для изменения курсора окна в оконной процедуре в ответ на сообщение WM_SETCURSOR.
Значит, если найден хэндл десктопа, можно попытацца сделать ему сабклассинг и там обработать WM_SETCURSOR. При этом не надо передавать это сообщение оригинальному обработчику окна. ![]() |
Автор: Haster 22.10.2006, 17:47 |
Тогда возникает вопрос, как сделать сабклассинг ![]() (ну новичек я в проганьи) |
Автор: ЫукпШ 22.10.2006, 17:58 | ||
При помощи ::SetWindowLong/::GetWindowLong/::CallWindowProc. Сабклассинг позволяет "подсоединиться" к оконной процедуре любого окна и слегка "порулить" нужным окошком. Классом это оформлять не обязательно. Но вот такой класс-сабклассинг состряпал я (приаттачено): |
Автор: Haster 22.10.2006, 18:43 |
ЫукпШ, спасибо! Будем пробовать. |