您一定以为我在哗众取宠,这么简单的问题谁都会,然而,这个问题却有着极复杂的一面?打开控制面版里的“显示属性”,翻到“效果”页,可以看到有一项是“拖动时显示窗口内容”。当这一项没有被钩上时,拖动任何窗体时都只会显示一个线框,当结束拖动时窗口才移过去。当这项被钩上后,拖动窗体的同时,窗体便即时的移动到目标位置了。如果我们用程序来控制窗体的拖动,比如加入一个“用鼠标拖动窗体的客户区即拖动窗体位置”的功能时,一般的解决方法是在WM_MOUSEMOVE事件中SetWindowPos。但这样做的话,你的窗体即使在“拖动时显示窗口内容”没有钩上的时候,也是实时拖动的。我想问的是,怎样让程序自动判断“拖动时显示窗口内容”项,并应用不同的拖动方式?
SendMessage( WM_NCLBUTTONDOWN, HTCAPTION, 0 );
在MouseUp时调用:
ReleaseCapture();