Здравствуйте, Кодт, Вы писали:
К><>
К>WndProc относится здесь к окну, на котором лежит комбобокс, а не к самому комбобоксу.
К>Он шлёт туда разные нотификации, включая WM_COMMAND.
S>>Подскажите плиз, как это сделать...
К>3 варианта:
К>- или сделать его OwnerDrawn, тогда он будет посылать нотификацию хозяину
К>- или сабклассить конкретный комбобокс (перехватить его оконную функцию)
К>- или суперклассить (создать оконный класс на основе "combobox" и написать для него оконную функцию)
И ещё хочу добавить:
комбобокс может быть, как известно SIMPLE, DROPDOWN и DROPDOWNLIST.
В первом случае внутри самого окошечка комбобокса лежат ещё и EDIT и LISTBOX. Если хочется перехватить их перерисовки — это надо делать отдельно, т.е. тут суперкласс не пойдёт, надо сабклассить. Нащупывать эти контрольчики проще всего через GetDlgItem, они имеют фиксированные id (сейчас точно не помню какие именно, но это несложно выяснить). Правда это насчёт id, afaik, нигде не документировано — если хочется по-честному, то это тоже не трудно, контролов там всего два

У DROPDOWN комбобокса тоже есть EDIT и LISTBOX. С EDIT`ом всё так же, как и в SIMPLE'e, а вот LISTBOX уже имеет своим parent'ом не самого combobox'a, а desktop — т.е. найти его значительно сложнее. Ещё у DROPDOWN'a есть кнопка — вот с ней никаких проблем, она нарисована прямо на combobox'e.
DROPDOWNLIST всё как DROPDOWN, но EDIT'a нету. Его эмуляция нарисована прямо поверх combobox'a, т.е. искать уже надо только LISTBOX.
Есть ещё ComboboxEx, но это совсем другая история