Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.27;
Скачать: CL | DM;

Вниз

Не могу перехватить CM_CANCELMODE...   Найти похожие ветки 

 
NAlexey ©   (2003-08-22 15:34) [0]

Никак не могу перехватить CM_CANCELMODE. Задача такая:
Выкидывать под InplaceEditor в сетке свой контрол например ListBox, короче сделать из ячейки Combobox. Я не пишу новой компоненты а просто переопределяю WndProc InplaceEditor на свой и ловлю WM_KillFocus и CM_CANCELMODE как делается если пишется обычный ComboBox. Так вот CancelMode не ловится и открытый лист не закрывается:

FOldWnd: Pointer;
FNewWnd: Pointer;
procedure InplaceHook(var AMsg: TMessage);

дальше -

FOldWnd := Pointer(GetWindowLong(InplaceEditor.Handle, GWL_WNDPROC));
Pop.Show(100, 100); //Для примера.
FNewWnd := MakeObjectInstance(InplaceHook);
SetWindowLong(InplaceEditor.Handle, GWL_WNDPROC, Longint(FNewWnd));

дальше -


procedure TMyGrid.InplaceHook(var AMsg: TMessage);
begin
with AMsg do case Msg of
WM_CANCELMODE,
WM_KILLFOCUS:
begin
SetWindowLong(InplaceEditor.Handle, GWL_WNDPROC, Longint(FOldWnd));
FreeObjectInstance(FNewWndProc);
end else
Result := CallWindowProc(FOldWnd, InplaceEditor.Handle, Msg, WParam, LParam);
end;
end;

Не прячется всплывшее окно и все тут, wm_killfocus ловит а cancelmode нет...


 
Игорь Шевченко ©   (2003-08-22 15:43) [1]

http://delphi.vitpc.com/helloworld/nogrid.htm если о ComboBox"е речь


 
NAlexey ©   (2003-08-22 15:57) [2]

Вот я и говорю, интересно, как этот пример справиться вот с этим-1) Кладем на форму Grid делаем доступным для редактирования.
2) Кладем на форму Combobox делаем невидимым и добавляем айтемов.
3) В нужный момент показываем в нужном месте открывая лист комбобокса.
Вопрос - если щелкнуть по заголовку формы то фокус не уйтет из ячейки, тащим форму а ComboBox остается на месте.



Страницы: 1 вся ветка

Текущий архив: 2003.10.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
14-89548
J.C. code
2003-10-07 19:43
2003.10.27
Не компилится


1-89204
имя
2003-10-15 14:37
2003.10.27
Lam


14-89515
Кот Бегемот
2003-10-08 11:50
2003.10.27
Привет. Небольшой тест :)


1-89290
REA
2003-10-14 10:19
2003.10.27
Ole Document


3-89147
IGOR_k
2003-10-07 12:41
2003.10.27
dbf create