拖动窗体的标题栏移动窗体后,窗体上的视频监控画面偏移,需要刷新监控代码,问题是如何获得用户拖动标题栏移动窗体的事件呢?

解决方案 »

  1.   

    WM_MOVE
    WM_MOVING
    这两消息可以满足要求
      

  2.   

    标题栏消息以WM_NC开头,如:
    WM_NCLBUTTONDOWN,鼠标左键按下
    WM_NCLBUTTONUP,鼠标左键放开
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
      private
        { Private declarations }
        procedure WMEnterSizeMove(var Message: TMessage) ; message WM_ENTERSIZEMOVE;
        procedure WMMove(var Message: TMessage) ; message WM_MOVE;
        procedure WMExitSizeMove(var Message: TMessage) ; message WM_EXITSIZEMOVE;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMEnterSizeMove(var Message: TMessage) ;
    begin
      Caption:= '正在移动';
    end;procedure TForm1.WMMove(var Message: TMessage) ;
    begin
      Caption:= Format('移动到 x: %d, y:%d', [TWMMove(Message).XPos,TWMMove(Message).YPos]) ;
    end;procedure TForm1.WMExitSizeMove(var Message: TMessage) ;
    begin
      Caption:= Caption + '  移动结束'
    end;end.
      

  4.   


    如果窗体大小能变得话,应该还需要WM_SIZE和WM_SIZING方法见楼上