vc++如何写dialog的拖动事件 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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); } }...... 获取鼠标移动的事件,得到一个x,y坐标,然后调用MoveWindow函数或者SetWindowPos函数来进行设置当然,你还要获取一下你本身的对话框的一个大小,免得大小发生改变 获取Dialog句柄hDlg;OnLButtonDown(...){ ... SendMessage(hDlg,WM_SYSTEMCOMMAND,61458,0); ...} 由于楼主题目有歧义,故写上两种: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 } WM_MOVING/WM_WINDOWPOSCHANGING ?? 我的电脑是vista系统,是不是不能开发完成端口的网络程序 64位进程调用32位dll的解决方法 关于button移动的问题 GetSafeHwnd怎么可以用?另外在ActiveX(DLL)中如何获取当前窗口最大化,最小化事件? ShellExecute()的问题 这是什么? APPWIZ中加入CListView视的问题 给你一段程序代码,如何自动找出他要包含的头文件??? 问题1: 16 位bitmap 的bmicolors怎么设定?! 如何在短时间内获得大量不同的随机数? 急求!!关于虚函数的重定义的问题:我的两个类都继承了同一个类:都重写了虚函数,竟然报虚函数重新定义(错误见下面
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);
}
}
......
当然,你还要获取一下你本身的对话框的一个大小,免得大小发生改变
OnLButtonDown(...)
{
...
SendMessage(hDlg,WM_SYSTEMCOMMAND,61458,0);
...
}
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
}