
CRect
rect;
GetClientRect(&rect);
//获取窗体大小
srand(unsigned(time(NULL)));
//初始化随机数种子
int
x
=
rand()%rectright;
//随机产生X,范围0到窗体宽
int
y
=
rand()%rectbottom;
//随机产生Y,范围0到窗体高
void CTestDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CString str;
strFormat("X:%d Y:%d", pointx, pointy); //格式化鼠标坐标点信息并保存到CString型变量str中
SetWindowText(str); //更新程序窗口Edit控件文本
CDialog::OnMouseMove(nFlags, point);
}
//单击鼠标时,显示鼠标在客户区内的坐标
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CString str;
strFormat("x = %d, y = %d", pointx, pointy);
AfxMessageBox(str,MB_ICONQUESTION);
CDialog::OnLButtonDown(nFlags, point);
}
汗,这绝对是相对你对话框左上角的坐标,我没做实验怎么会发上来LZ你是怎么验证的,晕了HI我
用这种方法
CRect rect;
(GetDlgItem(IDR_EDIT1))->GetWindowRect(&rect);
ScreenToClient(&rect);
那个bmp这样看的话也是一个窗口
GetWindowRect 获取bmp窗口的矩形,其中左上就是你那个红点
ScreenToClient 把左上的坐标送进去,hwnd用你上面那个test dis demo窗口的句柄,获取相对坐标
另:在上点击一点是啥,响应WM_LBUTTONDOWN函数吗,在TestDisDemo里响应WM_LBUTTONDOWN的话拿到的坐标直接就是相对你上面那个红点相对左上红点的坐标了
你要做怎样的变换,获取空间对话框的坐标函数为:GetWindowRect(对话框标识符)!该函数获取的是相对于显示屏的,要转换为相对于当前客户区的坐标可使用screentoclient()函数!
以上就是关于MFC怎样在一个对话框中随机得到一个坐标全部的内容,包括:MFC怎样在一个对话框中随机得到一个坐标、MFC中如何得到对话框客户区中鼠标点下位置的坐标,具体代码。我的对话框中有一个图片,需要知道点下w、MFC中如何获取picture的左上角坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)