vc++如何写dialog的拖动事件

guicaizhou 2011-04-01 03:15:09
如题
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 guicaizhou 的回复:]
是拖动dialog
[/Quote]
WM_MOVING/WM_WINDOWPOSCHANGING ??
yanganglove 2011-04-06
  • 打赏
  • 举报
回复
由于楼主题目有歧义,故写上两种:
1,无标题对话框的拖动:

OnLButtonDown中PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x, point.y));
2,WM_DROPFILE消息:

int nFileCount=DragQueryFile(hDropInfo,0xFFFFFFFF,NULL,0);
int nIndex=0;
while(nFileCount--)
{
TCHAR szFilePath[MAX_PATH];
memset(szFilePath,0,MAX_PATH*sizeof(TCHAR));
DragQueryFile(hDropInfo,nIndex++,szFilePath,MAX_PATH);
........
//处理szFilePath

}
向立天 2011-04-02
  • 打赏
  • 举报
回复
什么叫dialog拖动事件
菜鸟二号 2011-04-02
  • 打赏
  • 举报
回复
获取Dialog句柄hDlg;
OnLButtonDown(...)
{
...
SendMessage(hDlg,WM_SYSTEMCOMMAND,61458,0);
...
}
凌枫 2011-04-02
  • 打赏
  • 举报
回复
获取鼠标移动的事件,得到一个x,y坐标,然后调用MoveWindow函数或者SetWindowPos函数来进行设置
当然,你还要获取一下你本身的对话框的一个大小,免得大小发生改变
a220315410 2011-04-01
  • 打赏
  • 举报
回复
dialog和window有区别嘛?


POINT oldPoint;
......
case WM_LBUTTONDOWN:
{
if(wParam == MK_LBUTTON)
{
oldPoint_Can.x = LOWORD(lParam);
oldPoint_Can.y = HIWORD(lParam);
}
}
break;
case WM_LBUTTONUP:
{
if(wParam == MK_LBUTTON)
{
oldPoint_Can.x = 0;
oldPoint_Can.y = 0;
}
}
break;
case WM_MOUSEMOVE:
{
if(wParam == MK_LBUTTON)
{
RECT rc;
GetWindowRect(hWnd,&rc);
SetWindowPos(hWnd,NULL,
rc.left + LOWORD(lParam) - oldPoint_Can.x,
rc.top + HIWORD(lParam) - oldPoint_Can.y,
NULL,NULL,SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE);
}
}
......
guicaizhou 2011-04-01
  • 打赏
  • 举报
回复
是拖动dialog
zyrr159487 2011-04-01
  • 打赏
  • 举报
回复
movewindow?

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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