如何制作“拖动窗口时显示其内容”的窗口

PoolD 2000-08-08 04:44:00
在Windows的显示属性中“效果”一页上有“拖动窗口时显示其内容”这一选项,作用不必多说。但是类似WinAMP的窗口却不受这个选择的制约,怎样制作这样的窗口?
最好有示例。
...全文
224 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2000-08-09
  • 打赏
  • 举报
回复
这是C代码,不是delphi代码,原理就是在拖动某个地方的时候进行捕获鼠标,然后移动窗口,当鼠标按扭释放的时候,释放鼠标。:)
PoolD 2000-08-09
  • 打赏
  • 举报
回复
to Dinker:
这段代码应该放在程序的什么部分呢?是否是响应某个消息?
另外,这好像不是Delphi的代码。
「已注销」 2000-08-08
  • 打赏
  • 举报
回复
用SetCapture捕捉鼠标,GetCursorPos取鼠标位置,SetWindowPos设置窗口位置啊
POINT piXY;
GetCursorPos((LPPOINT)&piXY);
piXY.x-=rWindRect.left;
piXY.y-=rWindRect.top;
SetCursor(LoadCursor(NULL,IDC_SIZEALL));
SetCapture(hWnd);
while(GetCapture()==hWnd){
if(!GetMessage(&msg,NULL,0,0)){
PostQuitMessage(msg.wParam);
break;}
switch(msg.message){
case WM_LBUTTONUP:
ReleaseCapture();
SetCursor(LoadCursor(NULL,IDC_ARROW));
break;
case WM_MOUSEMOVE:
GetCursorPos((LPPOINT)&point);
uiWindowPosX=point.x-piXY.x;
uiWindowPosY=point.y-piXY.y;
SetWindowPos(hWnd,NULL,point.x-piXY.x,point.y-piXY.y,228,22,SWP_SHOWWINDOW);
break;
default:
DispatchMessage(&msg);
break;}}

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧