请问MoveWindow在这里为什么不起作用?????

modaoshi3002 2006-09-29 04:58:01
我写了个控件
想让它可以在程序里用鼠标拖动
然后我在网上抄了一段代码,问题是解决了
但我有一句话就看不懂了


void CAmodaoshiCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
m_IsMove=true;
SetCapture();//捕获鼠标
xx=point.x;//得到鼠标(相对于控件左上角)的坐标
yy=point.y;

GetClientRect(&rect);//保存拖动前的控件位置
::ClientToScreen(m_hWnd,&rect.TopLeft());
OldPoint=rect.TopLeft();


MoveWindow(0,0,100,120);//得到相对量////////这一句是什么意思??为什么控件不动?
GetClientRect(&rect);
::ClientToScreen(m_hWnd,&rect.TopLeft());

COleControl::OnLButtonDown(nFlags, point);

}

void CAmodaoshiCtrl::OnMouseMove(UINT nFlags, CPoint point)
{

CPoint MyPoint=point;
if(m_IsMove)
{
ClientToScreen(&MyPoint);
MoveWindow(MyPoint.x-xx-rect.left,MyPoint.y-yy-rect.top,50,22);
}
COleControl::OnMouseMove(nFlags, point);
}

void CAmodaoshiCtrl::OnLButtonUp(UINT nFlags, CPoint point)
{
if(m_IsMove)
{
ReleaseCapture();
m_IsMove=false;
}

ReleaseCapture();
COleControl::OnLButtonUp(nFlags, point);
}


大家请看,在OnLButtonDown里,有一句MoveWindow,但实际上好像没有移动控件的功能把
为什么啊??????
...全文
451 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
modaoshi3002 2006-09-30
  • 打赏
  • 举报
回复
不是啊,没有啊
在OnLButtonDown里就没用,而在OnMouseMove里就可以
日总是我哥 2006-09-29
  • 打赏
  • 举报
回复
是不是SetWindowPos(...,NO_MOVE....)了?
modaoshi3002 2006-09-29
  • 打赏
  • 举报
回复
呵呵,沙发也自己抢了
modaoshi3002 2006-09-29
  • 打赏
  • 举报
回复
对不起啊,各位,我也不知道怎么只能放10分啊

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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