Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CTreeCtrl - SetCheck


Автор: Витька 29.3.2006, 09:16
Доброго времени суток, форумчане.
Давненько не прогал под MFC и WinAPI.

Есть вопрос. Мне нужно, чтобы при инициализации диалога и TreeCntrl, находящегося в нём некоторые определённые итемы были чекнутыми.

Руками это делать можно по-разному - по-всякому. Через SetCheck, SetItemState или на совсем худой конец - SetItem.

Только если это делать в OnInitDialog, то галочки не ставятся. А если в любом другом событии (по клику, например) - то всё в порядке.

По-рекомендуйте пожалуйста в каком обработчике это делать или наоборот - какой нужно заглушить.

Спасибо.

Во, и кстати - можно ли сделать так, чтобы некоторые итемы были с чекбоксами, а некоторые без.

Автор: Earnest 29.3.2006, 16:35
А ты делаешь перерисовку после изменения состояния?

Цитата(Витька @ 29.3.2006, 09:16 Найти цитируемый пост)
Во, и кстати - можно ли сделать так, чтобы некоторые итемы были с чекбоксами, а некоторые без.

Насколько я понимаю все, что делает этот стиль - это устанавливает специальный StateImageList...
Поэтому можно заменить StateImageList на свой, в котором будет дополнительное состояние (пустая картинка). Естественно, тогда SetCheck-GetCheck воспользоваться не сможешь (они только да-нет понимают), но сможешь устанавливать состояние через SetItemState. Или просто все сделать руками - без стиля checkbox - разница невелика.


Автор: Витька 30.3.2006, 10:00
Я их даже инсертить пробовал с таким состоянием. Invalidate тоже делал. SetCheck возвращает true
но галочка не ставится

Автор: Витька 30.3.2006, 14:09
С небольшим извратом но вопрос решился

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