|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.03.2013, 11:26 | #11 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
stabud
конечно, LOWORD(WPARAM). Я просто не туда нажал теперь по теме. я сделал, как вы написали. получилось следующее: Код:
Что не так? Последний раз редактировалось BLACK_RAIN; 30.03.2013 в 11:31. |
30.03.2013, 16:12 | #12 | |
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
Цитата:
Проверьте в отладчике ячейку массива в обоих сообщениях. |
|
30.03.2013, 16:32 | #13 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
Цитата:
но, во-первых, почему приходит именно два WM_DRAWITEM? Типа, первый раз при нажатии мыши, второй при отпускании еще до прихода WM_COMMAND? И во-вторых, если эти сообщения приходят именно в такой последовательности, то как заставить кнопку перерисоваться после нажатия на нее? Ловить щелчок по кнопке через BN_CLICKED? Последний раз редактировалось BLACK_RAIN; 30.03.2013 в 16:36. |
|
30.03.2013, 16:47 | #14 | ||||
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
Цитата:
Цитата:
Цитата:
Цитата:
добавлено позже: Еще можете попробовать делать прорисовку не в if lpdis.CtlType = odt_button then а в: If lpdis.itemState And ODS_SELECTED Then Хотя это не правильно, но кто знает... Последний раз редактировалось stabud; 30.03.2013 в 16:56. |
||||
30.03.2013, 17:21 | #15 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
выложил целиком. Это тестовый проект. Тут пустое окно и кнопка.
так не надо назначение программы предполагает, что в определенный момент одна из процедур сама должна менять состояние checked/unchecked. Но для начала, надо разобраться с ручным переключением. |
30.03.2013, 17:30 | #16 | |
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
Не вижу никаких проблем, программа работает как задумано. То есть такого не требуется:
Цитата:
|
|
30.03.2013, 17:41 | #17 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
stabud
сейчас перепроверил и заметил еще вот что: нажал кнопку - значение изменилось. Переключаюсь на другое окно (без перекрытия) и тогда кнопка перерисовывается. Может это винда тупит? Я на windows 7 sp1 x64. В ХР смогу проверить завтра. Какая у вас операционка? |
30.03.2013, 17:43 | #18 | |
Пользователь
Регистрация: 28.03.2013
Сообщений: 14
|
Цитата:
Кстати переключение флагов лучше сделать в сообщении WM_DRAWITEM в условии: If lpdis.itemState And ODS_SELECTED Then Потому что WM_COMMAND запаздывает в самом начале работы программы. То есть первые один, а то и два щелчка в пролете Последний раз редактировалось stabud; 30.03.2013 в 17:59. |
|
31.03.2013, 14:56 | #19 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
Цитата:
Если сделать с окном какое-то действие, требующее перерисовки (например, изменить размер), то кнопка перерисуется в соответствии со значением в массиве. |
|
31.03.2013, 16:38 | #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 |