![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
stabud
конечно, LOWORD(WPARAM). Я просто не туда нажал ![]() теперь по теме. я сделал, как вы написали. получилось следующее: Код:
Что не так? Последний раз редактировалось BLACK_RAIN; 30.03.2013 в 11:31. |
![]() |
![]() |
![]() |
#12 | |
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
![]() Цитата:
Проверьте в отладчике ячейку массива в обоих сообщениях. |
|
![]() |
![]() |
![]() |
#13 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() Цитата:
но, во-первых, почему приходит именно два WM_DRAWITEM? Типа, первый раз при нажатии мыши, второй при отпускании еще до прихода WM_COMMAND? И во-вторых, если эти сообщения приходят именно в такой последовательности, то как заставить кнопку перерисоваться после нажатия на нее? Ловить щелчок по кнопке через BN_CLICKED? Последний раз редактировалось BLACK_RAIN; 30.03.2013 в 16:36. |
|
![]() |
![]() |
![]() |
#14 | ||||
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
добавлено позже: Еще можете попробовать делать прорисовку не в if lpdis.CtlType = odt_button then а в: If lpdis.itemState And ODS_SELECTED Then Хотя это не правильно, но кто знает... Последний раз редактировалось stabud; 30.03.2013 в 16:56. |
||||
![]() |
![]() |
![]() |
#15 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
выложил целиком. Это тестовый проект. Тут пустое окно и кнопка.
Цитата:
![]() |
|
![]() |
![]() |
![]() |
#16 | |
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
![]()
Не вижу никаких проблем, программа работает как задумано. То есть такого не требуется:
Цитата:
|
|
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]()
stabud
сейчас перепроверил и заметил еще вот что: нажал кнопку - значение изменилось. Переключаюсь на другое окно (без перекрытия) и тогда кнопка перерисовывается. Может это винда тупит? Я на windows 7 sp1 x64. В ХР смогу проверить завтра. Какая у вас операционка? |
![]() |
![]() |
![]() |
#18 | |
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
![]() Цитата:
Кстати переключение флагов лучше сделать в сообщении WM_DRAWITEM в условии: If lpdis.itemState And ODS_SELECTED Then Потому что WM_COMMAND запаздывает в самом начале работы программы. То есть первые один, а то и два щелчка в пролете Последний раз редактировалось stabud; 30.03.2013 в 17:59. |
|
![]() |
![]() |
![]() |
#19 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() Цитата:
Если сделать с окном какое-то действие, требующее перерисовки (например, изменить размер), то кнопка перерисуется в соответствии со значением в массиве. |
|
![]() |
![]() |
![]() |
#20 |
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
![]()
У меня на winXP (32х битная) и win7 (32х битная) - работает корректно.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с отрисовкой на экране | Stilet | Компьютерное железо | 9 | 28.11.2010 17:11 |
Проблемы с отрисовкой в Direct3D | Trapper | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 3 | 28.07.2009 18:49 |
Проблема с отрисовкой в PaintBox Делфи | VSemV | Помощь студентам | 7 | 26.05.2009 13:32 |
Проблема с отрисовкой дочрних областей. | DJ_Rain | Win Api | 0 | 30.04.2009 18:31 |
HELP!!! Проблема с отрисовкой | frai | Общие вопросы Delphi | 1 | 11.05.2007 21:17 |