1繼承關係
CMFCEditBrowseCtrl >>>CEdit >>>CWnd >>>CCmdTarget
官方說明文檔地址:點擊這裏
2.創建方法
控件的使用必先有其對象 對象可以爲其他成員變量 也可以爲堆中的變量,使用指針等關係
class XXX
{
/*省略無關配置*/
//定義一個成員
CMFCEditBrowseCtrl m_Edit;
int OnCreate(LPCREATESTRUCT lpCreateStruct);
}
int XXX::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
//創建一個窗口
RECT rect={10,10,200,20};//顯示的位置
m_Edit.Create(WS_CHILD | WS_VISIBLE, //DWORD設定顯示 風格子窗口|顯示
rect, // const RECT& 設定顯示位置
this, //CWnd*設置父窗口
ID_Search_Edit);//UINT自定義控件ID 消息處理的時候用到
//m_EditBrowse.SetOwner(this); // 功能描述:設置控件所有者,控件的消息將發送給所有者,具體細節請看源碼 afxeditbrowsectrl.cpp 如果不設置所有者,則消息默認發送給父窗口 無特殊需求可以省略此操作
//特殊情況: 此控件消息需要發送消息到父窗口的父窗口裏 或者其他窗口,則需要將接收消息的窗口指針傳入此處 功能上是可行的 但是一般不要將消息傳送到“偏遠”的窗口 以免找不到發送給了誰
}
也可以在堆中創建對象 操作方法類似
class XXX
{
/*省略無關配置*/
//定義一個成員
CMFCEditBrowseCtrl *m_Edit;
int OnCreate(LPCREATESTRUCT lpCreateStruct);
}
int XXX::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
//創建一個窗口
m_Edit=new CMFCEditBrowseCtrl;
RECT rect={10,10,200,20};//顯示的位置
m_Edit->Create(WS_CHILD | WS_VISIBLE, //DWORD設定顯示 風格子窗口|顯示
rect, // const RECT& 設定顯示位置
this, //CWnd*設置父窗口
ID_Search_Edit);//UINT自定義控件ID 消息處理的時候用到
//m_EditBrowse->SetOwner(this); // 功能描述:設置控件所有者,控件的消息將發送給所有者,具體細節請看源碼 afxeditbrowsectrl.cpp 如果不設置所有者,則消息默認發送給父窗口 無特殊需求可以省略此操作
//特殊情況: 此控件消息需要發送消息到父窗口的父窗口裏 或者其他窗口,則需要將接收消息的窗口指針傳入此處 功能上是可行的 但是一般不要將消息傳送到“偏遠”的窗口 以免找不到發送給了誰
}
對比優缺點: 在棧中創建對象方便 ,自動銷燬回收控件 方便調用 缺點是棧空間有限
在堆中創建對象,節省棧的空間,但是調用時略微複雜,而且如果需要銷燬 就需要手動銷燬咯 頻繁調用必須要銷燬。
變動日誌:
2019年9月3日:
- 創建本文檔