Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > WM_UNDO для ComboBox


Автор: ActioN 30.4.2006, 23:27
Стандартные TEdit и TComboBox имеют системные PopupMenu, в которых есть пункты: Отменить, Вырезать, Копировать...
Для Edit'a есть такие команды как CanUndo, Undo, для ComboBox'a - нету. Также есть EM_CANUNDO и EM_UNDO (WM_UNDO) сообщения, которые тоже, как написано в справке только для Edit'a. Должно же быть сообщение или команда для ComboBox'a. SendMessage(ComboBox->Handle,WM_UDNO,0,0) - не работает. Подскажите, кто знает или куда надо копать? 

Автор: _hunter 3.5.2006, 10:37
во-первых копать в MSDN' е по сообщениям комбо-коробки.
во-вторых: а почему-бы самому не реализовать? 

Автор: ActioN 3.5.2006, 23:59
Разобрался сам! Оказывается, ComboBox - это смесь Edit'a и ComboBox'a. Edit в нем как бы дочерный компонент и ищется он так:
Код

HWND hwndChild = FindWindowEx(ComboBox->Handle,0,"Edit",0);
if (hwndChild)
SendMessage(hwndChild,WM_UNDO,0,0);
else
ShowMessage("NONE");



_hunter, MSDN не помог - искал сначала в нем. А потом посмотрел с помощью Spy++ на ComboBox, и все стало понятно. 

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