Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Вопрос по перерисовке


Автор: yngwie19 4.3.2009, 15:24
Здравствуйте. У меня в главном окне прилодения есть окно с классом STATIC (для вывода текста) и есть окно с классов (TRACKBAR_CLASS) для регулятора некоторых значений. Вопрос: 
Почему когда Я обрабатываю сообщение о перерисовке только STATIC  а именно WM_CTLCOLORSTATIC, то и TrackBar у меня тоже получает такой же фон. Ведь сообщение относится только к классу STATIC. 
Спасибо 

Автор: GremlinProg 4.3.2009, 17:39
Цитата(yngwie19 @  4.3.2009,  17:24 Найти цитируемый пост)
Ведь сообщение относится только к классу STATIC. 

нет, не обязательно
WM_CTLCOLORSTATIC - стандарт, в некотором смысле, доступный для поддержки в любых компонентах
чтобы точно идентифицировать, какой компонент отсылает WM_CTLCOLORSTATIC, нужно проверять lParam, он передает дескриптор дочернего окна, от которого это уведомление отправлено

по этому дескриптору и нужно фильтровать WM_CTLCOLORSTATIC

Автор: yngwie19 4.3.2009, 17:53
GremlinProg, Понял спасибо! а к другим сообщениям например WM_CTLCOLOREIDIT тоже относится этот стандарт

Автор: GremlinProg 4.3.2009, 19:47
как-бы стандарт )

смотри по документации к интересующему компоненту,
там для каждого существует отдельная ветвь Notifications со списком и описанием всех уведомлений, которые он посылает
конечно, основная масса этих уведомлений инкапулировано в WM_NOTIFY и WM_COMMAND, но вот такие исключения - тоже бывают

вот, например, для Edit:
http://msdn.microsoft.com/en-us/library/bb775458(VS.85).aspx
или для TrackBar:
http://msdn.microsoft.com/en-us/library/bb760145(VS.85).aspx

если для TrackBar WM_CTLCOLORSTATIC не указан, то можно сделать предположение, что он наследуется (субклассится) от STATIC:
http://msdn.microsoft.com/en-us/library/bb760769(VS.85).aspx
я не занимался такими исследованиями, чтобы утверждать,
выложи проект, на всякий случай, может дело и не в этом вовсе

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)