用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;}}
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;}}
解决方案 »
- 新装delphi,新建一个工程,运行出现CPU窗口,如何解决,谢谢。
- 欢迎大家加入delphi学习群13865809如果进来都不说话直是为了隐身的就不要进了。
- 如何清除adoconnection的事务 Cannot start more transaction on this session
- 请问delphi编的程序在windows下控制打印时怎样去掉延时,比如点击打印时停三秒和打印机出纸时要停三秒才出(epson的针式打印机)?
- 如何设置TIdHTTP控件的超时
- 菜鸟提问:
- 请问在edit7的什么事件里面写当焦点到edit7的时候自动计算结果
- inno变量调用,高手指教!
- 关于SQL SERVER与DELPHI的问题
- 结果是什么?
- 如何把数据写入到二进制文件中,写入后又如何读取出来
- delphi中一个百思不得其解的问题
这段代码应该放在程序的什么部分呢?是否是响应某个消息?
另外,这好像不是Delphi的代码。