如何在 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 )
本文介绍如何在PB中实现无标题窗口的拖动功能。通过截获wm_nchittest消息并始终返回2来模拟鼠标位于标题栏的效果,或者在MouseDown事件中发送特定消息实现拖动。这些方法适用于PowerBuilder应用程序。
575

被折叠的 条评论
为什么被折叠?



