2013-05-06 7 views
0

Я использую Visual Studio 2012 с стандартной библиотекой mfc.[MFC] как отключить элемент в combobox?

Я хочу, чтобы один элемент не был выбран, но Item может видеть в списке.

Как я могу это сделать? Я новичок в MFC. plz help me

Хотя это не точное решение, я могу это сделать. Когда элемент выбран, нет действий и оставить сообщение об элементе недействительным Итак, если я просто могу изменить цвет элемента, тогда он вот-вот завершит функцию, которую я хочу. но я даже не знаю, как изменить цвет только одного элемента.

плз Дайте мне помочь! T.T

ответ

0

Я не думаю, что есть поддержка для этого в MFC.

Но вы можете составить свой собственный список, который является производным от MFC. В этом вы можете перегрузить OnItemChange(NMHDR* pNMHDR, LRESULT* pResult) Я думаю, что это тот, который вызывается, когда пользователь выбирает другой элемент в списке. Затем вы можете проверить, какой элемент выбран, и дать пользователю предупреждение: «Вы не можете выбрать этот элемент». Я знаю, что это некрасиво, но я не знаю другого способа ...

1

Чтобы изменить цвет только одного элемента в списке, вам нужно полностью заменить рисунок списка. Вы устанавливаете стиль «рисовать владельца», а затем записываете обработчик сообщений для WM_DRAWITEM. Он будет вызываться для каждого элемента в списке. В codeproject есть несколько примеров: вот один из них:

http://www.codeproject.com/Articles/135855/Owner-Drawn-CListBox

Смежные вопросы