Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подскажите по GUI. OnDraw / 14 сообщений из 14, страница 1 из 1
24.07.2007, 11:40:01
    #34679434
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
Сделал класс для кнопок(нужны были с такие что фон родительского окна принимали) и все вроде нормально но для радиобатона нужно вызывать перерисовку. OnDraw. Вопрос следующий как ее вызывать из родительского окна правильно.


вот начала моего OnDraw для кнопок

Код: plaintext
1.
2.
3.
void CExtButton::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
	CDC*	pDC = CDC::FromHandle(lpDIS->hDC);
...
Рейтинг: 0 / 0
24.07.2007, 11:43:24
    #34679449
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
ProfUIS?
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
24.07.2007, 11:47:19
    #34679472
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
да нет свою кнопку рисую
...
Рейтинг: 0 / 0
24.07.2007, 12:12:18
    #34679579
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
просто класс называется так же как в этой библотеке.

насколько я понял ты хочешь вызвать из диалогового окна где размещены контролы принудительно перерисовку радиобатона?

если так, то в принципе можно послать ему SendMessage (handle, WM_PAINT, ..);

--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
24.07.2007, 12:41:26
    #34679705
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
спасибо попробую
...
Рейтинг: 0 / 0
24.07.2007, 14:36:58
    #34680244
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
Andrey1306 пишет:
> перерисовку. OnDraw. Вопрос следующий как ее вызывать из родительского
> окна правильно.

Правильно - ее не вызывать. WM_PAINT не должен никогда слаться напрямую.
Windows сам шлет ее когда надо. Если тебе надо принудительно перерисовать
окно, вызывай InwalidateWindow или InvalidateRect.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
24.07.2007, 15:08:37
    #34680400
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
может я не правильно выразился мне нужно перерисовать саму кнопку. запустить ее DrawItem
по изменению ее статуса нажата или нет.


Это касается только радиобатона (обычные кнопки и чекиты перерисовываются по клику )так как в группе мне нужно снять состояние нажат со всех кроме нажатого батона.
...
Рейтинг: 0 / 0
24.07.2007, 15:31:18
    #34680512
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
Andrey1306может я не правильно выразился мне нужно перерисовать саму кнопку. запустить ее DrawItem
по изменению ее статуса нажата или нет.


Это касается только радиобатона (обычные кнопки и чекиты перерисовываются по клику )так как в группе мне нужно снять состояние нажат со всех кроме нажатого батона.
вообще в таком случае следует вызывать что-то типа SetCheck c параметром BST_UNCHECKED, что в свою очередь запустит внутренние механизмы отрисовки для каждого контрола, если только ты не сам пишешь его с нуля на чистом api, и даже если пишешь перерисовку лучше прикрутить к событиям меняющим внешний вид контрола, таким образом не придется париться как щас, достаточно вызвать функцию a-la УстановитьГалочку(bool bУстановить)
...
Рейтинг: 0 / 0
24.07.2007, 15:56:30
    #34680625
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
пробовал я вот это сразу не перерисовывает

Код: plaintext
1.
2.
myButton.SetState( FALSE);

...
Рейтинг: 0 / 0
24.07.2007, 16:22:50
    #34680745
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
а при чем здесь SetState? она не ставит и не снимает галочки или я чего то не догоняю?
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
24.07.2007, 16:25:18
    #34680759
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
Уважаемые всем спасибо !

Разобрался сам конечно немного протупил :-))) но и Ваши подсказки тоже помогли


Вопрос в догонку

А может нужно сделать тему о разработке GUI c использованием GDI

или может кто видел такую бросьте ссылочку
...
Рейтинг: 0 / 0
24.07.2007, 16:36:53
    #34680816
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
Andrey1306

А может нужно сделать тему о разработке GUI c использованием GDI

или может кто видел такую бросьте ссылочку
руками и ногами за, так как давно болею winapi и разработкой интерфейсов, поиск сайтов где общается сей контенгент успехов не дал. увы,

может плохо искал(с)
...
Рейтинг: 0 / 0
24.07.2007, 16:49:04
    #34680879
Andrey1306
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
тоже самое ни чего найти не могу найти о GDI

аможет кто в печатніх книгах что нибудь токовое видеl
...
Рейтинг: 0 / 0
24.07.2007, 16:52:34
    #34680902
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по GUI. OnDraw
Andrey1306тоже самое ни чего найти не могу найти о GDI

аможет кто в печатніх книгах что нибудь токовое видеl
есть только классика вроде Программирование графики для Windows от Фень Юаня
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подскажите по GUI. OnDraw / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]