关于 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);