hur.cn - 华软网

 热门搜索

如何计算相对父窗口的CRect?

  作者:未知    来源:网络    更新时间:2011/4/15
C++">class CRuKuEdit : public CEdit
{
};

class CRuKuComboBox : public CComboBox
{
afx_msg int OnCreate(LPCREATESTRUCT lpCreateCreate);
};

class CGridList : public CListCtrl
{
virtual void PreSubclassWindow();
CRuKuComboBox combobox;
};

class CRuKu_RuKuCaoZuo : public CDialog
{
CGridList gridlist;
}
void CGridList::PreSubclassWindow ()
{
CRect r;
combobox.Create (WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT,
r,this,111);
}
int CRuKuComboBox::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
CComboBox::OnCreate (lpCreateStruct);
e.SubclassWindow ( ::FindWindowEx ( GetSafeHwnd(),0,L"EDIT",0) );
return 0;
}


上面代码描写的是控件的关系,现在想计算组合框在父窗口中的坐标,但 CWnd::GetWindowRect 获得的坐标是相对于屏幕的,怎么计算相对于父窗口的坐标?








---华软 网友回答---
m_combo.GetClientRect(&rc);
ClientToScreen(&rc);
---华软网友回复---
GetCientRect
---华软网友回复---
GetParent()函数不是能够取得父窗口的指针吗?
---华软网友回复---
CRect rect;
GetWindowRect(&rect);
ScreenToClient(&rect);
---华软网友回复---
回1楼
回4楼
   结果的左侧距怎么总是 0
---华软网友回复---
分别获得父窗体和子窗体的CRect,然后计算得出。
---华软网友回复---
CWnd::GetWindowRect获得组合框在屏幕上的坐标,然后调用父窗口的ScreenToClient就能够把组合框这个rect转换到相对父窗口的位置
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。