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

Вниз

запрет перетаскивания окна   Найти похожие ветки 

 
BFG9k ©   (2007-09-03 18:44) [0]

Есть компонент стороннего разработчика (нет возможности изменить исходники). Одно окно в нем некорректно перерисовывается при перетаскивании. Можно ли как-то запретить перетаскивание окна, имею его handle ?


 
Dib@zol ©   (2007-09-03 18:54) [1]

Повесь на него собственную оконную процедуру и обрабатывай WM_NCHITTEST. Сперва - bydefault"ным обработчиком (сиречь CallWindowProc), а потом лови возвращённый результат, и если он HTCAPTION, то меняй его на HTCLIENT.


 
DVM ©   (2007-09-03 19:08) [2]


> Dib@zol ©   (03.09.07 18:54) [1]

совсем необязательно, что перетаскивание реализовано путем обработки WM_NCHITTEST.


 
Dib@zol ©   (2007-09-03 19:18) [3]

Удалено модератором


 
BFG9k ©   (2007-09-03 19:37) [4]

Dib@zol ©   (03.09.07 18:54) [1]
Повесь на него собственную оконную процедуру ...

Простите за нескромный вопрос. А как это сделать ?

P.S.: Пробовал обрабатывать WM_NCHITTEST с помощью компонента ApplicationEvents.OnMessage. Не получилось. Проблема в том, что видимо окно не связано с Application. Это не форма и даже не VCL компонент. Хотелось бы поподробнее насчет оконной процедуры.


 
Dib@zol ©   (2007-09-03 19:47) [5]

Ок.

var
 WPH : Pointer;
 
...

function NewWndProc(hWnd: HWND; Msg: LongInt; wParam, lParam: Longint): longInt; stdcall;
begin
 Result:=CallWindowProc(WPH, hWnd, Msg, wParam, lParam);
 if (Msg = WM_NCHITTEST)and(Result = HTCAPTION) then Result:=HTCLIENT;
end;

...

LongInt(WPH):=SetWindowLong(Компонент.Handle, GWL_WNDPROC, LongInt(@NewWndProc));



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1188802439
RomanH
2007-09-03 10:53
2007.09.30
Отличие self и application


1-1182945577
IntruderLab
2007-06-27 15:59
2007.09.30
Назначить горячую клавишу


6-1170324249
Andriy Tysh
2007-02-01 13:04
2007.09.30
Error: 5 - Отказано в доступе. (Dameware)


15-1188845968
DVM
2007-09-03 22:59
2007.09.30
из C++ в Delphi непонятная мне строка. Помогите перевести.


15-1188819885
Андрей_К
2007-09-03 15:44
2007.09.30
Монография