Re[2]: проблемы с IVideoWindow
От: demm45  
Дата: 10.06.08 09:20
Оценка:
Решется проще чем тут писали.

У меня IVideoWindow клент пнели которая лежит на главном окне. Естественно возникло желание таскать окно программы за любую точку.
В итоге в процедре главного окна:
case uMsg of
..........
WM_NCHITTEST: Result:=HTCAPTION;
..........
else
Result:=DefWindowProc(hwnd,uMsg,wParam,lParam);
end;

В процедуре панели на которой лужит IVideoWindow
case uMsg of
WM_NCHITTEST: Result:=HTTRANSPARENT;
..................
WM_MOUSEFIRST..WM_MOUSELAST:
begin
Cp:=Point($FFFF and LPARAM,LPARAM shr 16);
ClientToScreen(hFrameWnd,Cp);
with Cp do
PostMessage(hMainWnd,(uMsg and $F) or $A0,HTCAPTION,MakeLParam(X,Y)); ///hMainWnd — хэндл главного окна
Result:=0;
end;
.....................
else
Result:=DefWindowProc(hwnd,uMsg,wParam,lParam);
end;

Ну и само собой, при настройке вдеоокна:
FVideoWindow.put_Owner(hPanelWnd);
FVideoWindow.put_MessageDrain(hPanelWnd);

И все работает. Сообщения мышки насквозь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.