你的是个空Rect;
应加上pWnd->GetWindowRect();
应加上pWnd->GetWindowRect();
解决方案 »
- MFC中怎么画动态曲线?并且让刻度值根据数值的变化而变化?
- MFC怎样建立ACCESS的数据源 再在别人的电脑上运行不用在此建立数据源
- 即将失业-散分-散分-散分-散分-散分
- 一个怪问题,vc类视图中显示的函数定义和头文件中的定义不一样?
- VC++表格的问题(在线等)?
- 怎么使很多控件只读。
- 请问Assertion Failed提示框是何种错误触发的?还有file wincore.cpp,Line 3345
- 【问题总是接踵而至】【请教】
- 如何清除对话框内容。
- 请问vc新手上路动手做什么比较合适?
- 关于service的问题2,han012请进来
- 如何在VC下动态加在ACTIVEX控件,并对其进行初始化?(CLSID已知)
CWnd* pWnd=GetDlgItem(IDC_BtonOK );//按钮控件
pWnd->GetWindowRect(rc);
this->ScreenToClient(&rect);///this而不是pWnd
CRect buttonrect;
CWnd* pWndOk = (CWnd *)GetDlgItem(IDOK);
pWndOk->GetClientRect(&buttonrect);
就可以了.
但问题是我加了pWnd->GetWindowRect(&rect);,也没用
CRect r;CPoint p;
GetDlgItem(IDC_XX)->GetWindowRect(&r);
p.x=r.left;
p.y=r.top;//试一下用top还是bottom
ScreenToClient(&p);
r.SetRect(p.x,p.y,p.x+r.Width(),p.y-r.r.Height()/*不知用-还是+*/);
r.NormalizeRect();
而且可以不加"&"符号。关键是ScreenToClient函数的调用窗口指针,不是控件的,而是他的父窗口。