点击窗口标题栏拖动时变成半透明,松开鼠标恢复原状我通过WM_MOVE消息实现再拖动过程中子窗体变成半透明,但是如何实现在松开鼠标时恢复原状呢,我试图用WM_LBUTTONUP触发,但是似乎并没有截获到,是不是只有点击标题栏下面的窗体部分才触发啊?如果这样,我该怎么实现松开鼠标时,使窗体回复不透明呢?

解决方案 »

  1.   

    你的方法有误,正确的处理序列:
    WM_NCLBUTTONDOWN、WM_NCMOUSEMOVE、WM_NCLBUTTONUP
      

  2.   

    procedure TF_W.WMNCLBUTTONDOWN(var Msg: TMessage);
    begin
      M_Z:='D';
    end;procedure TF_W.WMNCMOUSEMOVE(var Msg: TMessage);
    begin
      if M_Z='D' then
        F_W.AlphaBlendValue:=110;
    end;procedure TF_W.WMNCLBUTTONUP(var Msg: TMessage);
    begin
      if F_W.AlphaBlendValue=110 then
      begin
        F_W.AlphaBlendValue:=255;
        M_Z:='U';
      end;
    end;
      

  3.   

    哈哈 找到更好的了:WM_EXITSIZEMOVE。
    不过还是想知道为什么上面那样窗口就拖不动了?procedure TF_W.WMMOVE(var Msg: TMessage);
    begin
      F_W.AlphaBlendValue:=110;
    end;procedure TF_W.WMEXITSIZEMOVE(var Msg: TMessage);
    begin
      F_W.AlphaBlendValue:=255;
    end;