如何在 PB 中实现无标题可拖动的窗口

如何在 PB 中实现无标题可拖动的窗口

当鼠标拖动时Windows 首先会向鼠标下的窗口发送一个 wm_nchittest 消息,

窗口收到这个消息后再由窗口的消息处理函数进行处理,消息处理函数将

会返回一个整数表示鼠标正处于窗口的什么部位。大家只需要知道的是处理函数 返回2,

表示鼠标正处于窗口的标题栏上。根据这一点,我们只要截获这条消息,

然后直接返回2。这样不管鼠标真正位于窗口的什 么部位,

WINDOWS 一律认为鼠标位于标题栏上。因此,用户自然可以拖动窗口。

下面是具体的步骤:

1 为窗口定义用户自定义事件

Event Name: ue_nchittest

Event ID: pbm_nchittest

在事件 ue_nchittest 中编写代码

Return 2

可用这种方法为 Button 、Text 等可视控件也加上上述的事件与代码(关于WM-NCHITTEST可参考winuser.h)</p>

拖动无标题窗口还有一种方法,在窗口的 MouseDown 事件中编写如下脚本

Send ( Handle( this ), 274, 61458, 0 )

posted @ 2010-11-12 18:52  lenya  阅读(469)  评论(0编辑  收藏  举报