在CFormView的对话框中,放上一些控件都是在OnSize中SetWindowPos或MoveWindows函数来放置,但是怎么样来计算放置坐标呢?

DataSpatial 2005-07-28 01:54:46
在CFormView的对话框中,放上一些控件都是在OnSize中SetWindowPos或MoveWindows函数来放置,但是怎么样来计算放置坐标呢?

其实使用方法我知道了
external YourCtrl yourCtrl;
RECT rect;
GetClientRect(&rect);
int cx = rect.left+10;
int cy = rect.top +20;
int width = rect.right- rect.left - 10 - 10;
int height = rect.bottom - rect.top - 20 -20;
yourCtrl.SetWindowPos(
NULL,
cx,
cy,
width,
height,
SWP_DRAWFRAME);
但是我放在上面的控件很多,我该怎么样来计算他们准确的放置坐标呢?!

难道是通过估计吗?!

谢谢前辈赐教!!!
...全文
219 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luchang 2005-07-28
  • 打赏
  • 举报
回复
MoveWindow用的坐标是像素,你可以把你的窗体抓个图,放到画图板里去排版好了,呵呵呵呵,我就是这么做的
DataSpatial 2005-07-28
  • 打赏
  • 举报
回复
谢谢前面的两位前辈,问题基本解决了,不过如果有一个比较复杂的例子,那就是再好不过了!呵呵!!!
goodboyws 2005-07-28
  • 打赏
  • 举报
回复
一般就是估计了,资源编辑器的坐标和MoveWindow用到的坐标大概3/5的关系,你可以试试
qrlvls 2005-07-28
  • 打赏
  • 举报
回复
响应 WM_SIZE 消息,你可以 GetClientRect 得到客户区大小,并根据这个大小对不同的控件用 SetWindowPos 或 MoveWindow 来调整位置和大小
下面的例子用的是基于 CDialog 的,但方法是 CFormView 的处理是一样的
http://www.codeproject.com/dialog/dlgresizearticle.asp
DataSpatial 2005-07-28
  • 打赏
  • 举报
回复
最好能够给一个示例,谢谢!!!

15,979

社区成员

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

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