读书人

关于 getclientrect的有关问题

发布时间: 2012-02-10 21:27:41 作者: rapoo

关于 getclientrect的问题?
在对话框上建立了一个静态文本框,ID是ID_STATIC,为它也关联了变量m_static,类型为CStatic,现在,想获取静态文本框的大小,将一个窗口CMyDlg m_mydlg贴在里面,是这样写的:

CRect rect;
m_static.GetClientRect(rect);
m_mydlg.MoveWindow(rect);

运行之后,出现异常。
这样写问题出在哪里呢?请高手指点。

我的具体功能是想实现:在选择组合框的某一项时,在它下面的静态文本框区域里显示对应的窗口,在组合框的CBN_SELCHANGE 消息响应函数OnSelchange()里,先判断是选择了那一项,在case项里添加上面的代码。请问这么做有问题么?

[解决办法]
不要用IDC_STATIC
要改成其它的,如IDC_STATICFRAME
[解决办法]
CRect rect;
GetDlgItem(IDC_STATICFRAME)-> GetWindowRect(rect);
ScreenToClient(rect);

得到IDC_STATICFRAME所在的区域


[解决办法]
RECT rect;
m_static.GetClientRect(&rect);
m_mydlg.MoveWindow(rect);

读书人网 >VC/MFC

热点推荐