CButton & EnableWIndow
От: misty  
Дата: 12.11.02 21:33
Оценка:
Вопрос — дурацкий до нельзя...
Есть некое окошко, на нем живет кнопочка. Мы берем эту кнопочку вот таким вот образом:

CButton *chaButton = (CButton *)m_wndDlgBar.GetDlgItem(IDC_ORD_CHA);


и потом делаем ей так:

chaButton->EnableWindow(false);


Что должно получиться по логике вещей? Правильно, кнопочка должна стать се-е-еренькой такой... А вот хрен! Причем, если вместо
EnableWindow
писать
ShowWindow
то все очень даже прелестно работает...

Люди, ЧТО ДЕЛАТЬ???
Re: CButton & EnableWIndow
От: agos Россия http://trtrmitya.wordpress.com
Дата: 12.11.02 22:36
Оценка: -1
Здравствуйте misty, Вы писали:

M>Люди, ЧТО ДЕЛАТЬ???


А если просто попробовать
m_wndDlgBar.GetDlgItem(IDC_ORD_CHA)->EnableWindow(false);

или
m_wndDlgBar.GetDlgItem(IDC_ORD_CHA)->SendMessage(WM_ENABLE);
... << RSDN@Home 1.0 alpha 12 >>
Не переходите улицу на тот свет..
Re: CButton & EnableWIndow
От: Demon Россия  
Дата: 13.11.02 08:25
Оценка: 3 (1)
Здравствуйте misty, Вы писали:

M>Вопрос — дурацкий до нельзя...

M>Есть некое окошко, на нем живет кнопочка. Мы берем эту кнопочку вот таким вот образом:

M>
CButton *chaButton = (CButton *)m_wndDlgBar.GetDlgItem(IDC_ORD_CHA);


M>и потом делаем ей так:


chaButton->>EnableWindow(false);


M>Что должно получиться по логике вещей? Правильно, кнопочка должна стать се-е-еренькой такой... А вот хрен! Причем, если вместо
EnableWindow
писать
ShowWindow
то все очень даже прелестно работает...


M>Люди, ЧТО ДЕЛАТЬ???


Уфф. Ты уже четвертый (вроде).

Проблема в том, что MFC автоматически энейблит пункты меню и кнопки на тулбарах, к которым привязаны обработчики.
Самое простое и универсальное решение — обрабатывать UPDATE_COMMAND_UI.

Для более полного понимания или если это решение не устраивает полазай на этом форуме, я уже постил сюда несколько вариантов решения.
Re: CButton & EnableWIndow
От: MORBiD Россия  
Дата: 13.11.02 08:36
Оценка:
Здравствуйте misty, Вы писали:

M>Вопрос — дурацкий до нельзя...

M>Есть некое окошко, на нем живет кнопочка. Мы берем эту кнопочку вот таким вот образом:

M>
CButton *chaButton = (CButton *)m_wndDlgBar.GetDlgItem(IDC_ORD_CHA);


M>и потом делаем ей так:


chaButton->>EnableWindow(false);


M>Что должно получиться по логике вещей? Правильно, кнопочка должна стать се-е-еренькой такой... А вот хрен! Причем, если вместо
EnableWindow
писать
ShowWindow
то все очень даже прелестно работает...


M>Люди, ЧТО ДЕЛАТЬ???


m_wndDlgBar это не toolbar случайно ?
Если да , то нужно использовать
CToolBarCtrl::EnableButton(..) // TB_ENABLEBUTTON
Re[2]: CButton & EnableWIndow
От: misty  
Дата: 14.11.02 21:22
Оценка:
Здравствуйте Demon, Вы писали:

D>Уфф. Ты уже четвертый (вроде).

Приятно это слышать

D>Проблема в том, что MFC автоматически энейблит пункты меню и кнопки на тулбарах, к которым привязаны обработчики.

D>Самое простое и универсальное решение — обрабатывать UPDATE_COMMAND_UI.

Спасибо, все заработало.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.