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日:
- 创建本文档