请教高手一个问题:我在调用MoveWindow函数时,设定的CRect类对象的值为204,5,1019,627之后调用GetWindowRect函数,得到的CRect类对象的值为407,311,1272,933两次CRect的宽度和高度没变,但矩形起始坐标变了这是为什么?
解决方案 »
- 转动物体速度检测问题
- CFormView随着窗口的变化,Control及OLE控件自动调整位置的问题?
- 如何让列表框分组显示??
- 不知道什么问题,有可能是窗口之间的通信问题
- 用CDATABASE连接到windows2003 ODBC出现问题?
- CProgressCtrl进度条组件怎样显示百分比???谢谢!!!
- mfc中获取当前路径的api是什么?
- 我想知道我的程序在运行时的CPU占用率,有什么办法吗?
- 初学者的问题:什么是SDK,请推荐几本相关的好书。
- 各位大虾,请帮忙我这个初学者~~
- 做关于数据库的程序,怎样才能把界面做得比较好看呢?
- 程序中如何实现选中某文件后按回车键就打开该文件。也就是相当于鼠标双击的功能。
RECT r;
pWnd->GetWindowRect( &r );
ScreenToClient( &r );
看看r中的数值是否与MoveWindow时的一致
相对座标的问题,是从屏幕还是客户区为0座标,用上面的两个函数转换
void CAboutDlg::OnOK()
{
// TODO: Add extra validation here
RECT r;
CString str;GetClientRect( &r );
str.Format( "left = %d\n"
"top = %d\n"
"right = %d\n"
"bottom = %d", r.left, r.top, r.right, r.bottom );
MessageBox( str );ClientToScreen( &r );
str.Format( "left = %d\n"
"top = %d\n"
"right = %d\n"
"bottom = %d", r.left, r.top, r.right, r.bottom );
MessageBox( str );
CDialog::OnOK();
}
//前者(client)的坐标是0,0,327,83,后者(Screen)的坐标是349,352,676,435