急问一个简单的CWnd的MoveWindow问题

hxuanyu 2006-05-12 12:15:14
对话框上有两个控件 IDC_EDIT1,IDC_EDIT2,

点击一个按钮执行如下代码

RECT rec;
((CEdit*)GetDlgItem(IDC_EDIT1))->GetWindowRect(&rec);
((CEdit*)GetDlgItem(IDC_EDIT2))->MoveWindow(&rec);

为什么第二个移不到第一个的位置呢?
...全文
146 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CUG122032 2006-05-13
  • 打赏
  • 举报
回复
GetWindowRect(&rec);得到的是它自己的坐标系中的坐标(左上角永远是(0,0)),所以有两种办法:

1.如Snow_Ice11111(雪上加冰--求职ing在厦门)所说:加一句ScreenToClient(&rec);
把它自己的坐标系换到客户区坐标系上.

2.如syy64(太平洋)所说:直接用:GetClientRect(&rec);
得到它在客户区的位置;
hk_c 2006-05-12
  • 打赏
  • 举报
回复
z-order问题吧, SetWindowPos(....)一下
aa3000 2006-05-12
  • 打赏
  • 举报
回复
应该不会呀,
lzf8977 2006-05-12
  • 打赏
  • 举报
回复
Snow_Ice11111(雪上加冰--求职ing在厦门)

同意,
syy64 2006-05-12
  • 打赏
  • 举报
回复
((CEdit*)GetDlgItem(IDC_EDIT1))->GetClientRect(&rec);
((CEdit*)GetDlgItem(IDC_EDIT2))->MoveWindow(&rec);
Snow_Ice11111 2006-05-12
  • 打赏
  • 举报
回复
RECT rec;
((CEdit*)GetDlgItem(IDC_EDIT1))->GetWindowRect(&rec);
ScreenToClient(&rec); //坐标转换一下
((CEdit*)GetDlgItem(IDC_EDIT2))->MoveWindow(&rec);

15,978

社区成员

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

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