MFC如何获取一个对话框中编辑框矩形的坐标 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CEdit m_edit; //编辑框m_edit.GetWindowRect(...);//获取坐标 晕,打快了,应该是GetWindowRect CRect rect;((CEdit*)GetDlgItem(编辑框ID))->GetClientRect(&rect);ClientToScreen(&rect);CString str;str.Format("%d - %d - %d - %d",rect.left,rect.top,rect.right,rect.bottom);MessageBox(str); 那得看你需要获取什么样的坐标了:(1)获取编辑框的屏幕坐标:CRect edtRect;GetDlgItem(IDC_EDIT1)->GetWindowRect(&edtRect);(2)获取编辑框的相对于对话框客户区的坐标:需要在上面的基础上加上:ClientToScreen(&edtRect) (2)获取编辑框的相对于对话框客户区的坐标:----------------------不好意思,更正一下:this->ScreenToClient(&edtRect); //this即编辑框父窗口对话框的指针对象 GetWindowRect配合ScreenToClient使用或者GetClientRect 其实我在程序里就是这样用的,就是没用,我的代码如下:代码是在OnPaint函数中调用的,为了在编辑框中显示一副位图 CWnd * pwnd=GetDlgItem(IDC_EDIT1); CDC *pdc=pwnd->GetDC(); CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP1); BITMAP bmp; bitmap.GetBitmap(&bmp); CDC pCompatableDC; pCompatableDC.CreateCompatibleDC(pdc); pCompatableDC.SelectObject(&bitmap); CRect rect; GetDlgItem(IDC_EDIT1)->GetWindowRect(rect); ScreenToClient(rect); pdc-> StretchBlt(0,0,rect.Width(),rect.Height(), &pCompatableDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);结果,要把对话框移动到某些区域,位图才会出来,而且还不是在整个编辑框中显示出来。还有一个问题就是如果把CBitmap bitmap;定义为成员变量的话就有错,是不是资源释放问题引起的,高人解答啊 其中GetWindowRect配合ScreenToClient使用和GetClientRect的效果还不一样 哎,还是自己把问题解决了,原来还要加上UpdateWindow() 我的程序关闭后,为什么在进程里还有? 子类赋值运算符的重载 使用多线程画gif图片,总是在视图窗口的最上面 freopen打开文件后,如何获取到文件长度。 怎样把一个API写的窗口用作一个MDI视图 请问监控目录改变通知的一个问题? 如果在视图里面加入框架窗口,应该怎么样做啊 紧急求助!(关于ADO) (只有30分了,全给你们!) 关于10进制到16进制转换的问题? mfc列表框数据保存的问题。。。求高手 上位机通过网口与记忆卡通信——困扰了一天的问题 basetsd.h文件问题
m_edit.GetWindowRect(...);//获取坐标
((CEdit*)GetDlgItem(编辑框ID))->GetClientRect(&rect);
ClientToScreen(&rect);
CString str;
str.Format("%d - %d - %d - %d",rect.left,rect.top,rect.right,rect.bottom);
MessageBox(str);
(1)获取编辑框的屏幕坐标:CRect edtRect;
GetDlgItem(IDC_EDIT1)->GetWindowRect(&edtRect);
(2)获取编辑框的相对于对话框客户区的坐标:
需要在上面的基础上加上:ClientToScreen(&edtRect)
----------------------
不好意思,更正一下:this->ScreenToClient(&edtRect); //this即编辑框父窗口对话框的指针对象
代码是在OnPaint函数中调用的,为了在编辑框中显示一副位图
CWnd * pwnd=GetDlgItem(IDC_EDIT1);
CDC *pdc=pwnd->GetDC();
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
BITMAP bmp;
bitmap.GetBitmap(&bmp);
CDC pCompatableDC;
pCompatableDC.CreateCompatibleDC(pdc);
pCompatableDC.SelectObject(&bitmap);
CRect rect;
GetDlgItem(IDC_EDIT1)->GetWindowRect(rect);
ScreenToClient(rect);
pdc-> StretchBlt(0,0,rect.Width(),rect.Height(),
&pCompatableDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
结果,要把对话框移动到某些区域,位图才会出来,而且还不是在整个编辑框中显示出来。
还有一个问题就是如果把CBitmap bitmap;定义为成员变量的话就有错,是不是资源释放问题引起的,高人解答啊