hur.cn - 华软网

 热门搜索

奇怪的对话框构造函数的用法

  作者:未知    来源:网络    更新时间:2011/8/14
吸附,停靠功能的对话框,网上参考了别人的代码,作者是这样用的:




class CDockableForm : public CDialog
{
public:
CDockableForm(UINT nIDTemplate);

virtual BOOL Create(LPCTSTR lpszCaption, CWnd* pParentWnd, const RECT& rect, BOOL bHasGripper, UINT nID, DWORD dwStyle, DWORD dwTabbedStyle = AFX_CBRS_REGULAR_TABS, DWORD dwControlBarStyle = AFX_DEFAULT_DOCKING_PANE_STYLE, CCreateContext* pContext = NULL);

CDockablePane& GetDockablePane() { return m_wndPane; }

private:
CDockablePaneAsContainer m_wndPane;
};




我问的是,为什么对话框的构造函数会这样,CDockableForm(UINT nIDTemplate);

学vc的时候,用的 构造函数不是这种,,,,

还有会定义一个 enum{IDD=.....};


我知道 一个类,一般构造函数有很多种,重载,

一般创建基于mfc的对话框的构造函数不是这个, 为什么作者会用这个呢?、

有什么意图


---华软 网友回答---
CDockableForm(UINT nIDTemplate);


带参数的构造函数
---华软网友回复---
为什么要用这个??

CMyDialog(CWnd* pParent = NULL);   // standard constructor
不用这个,而且没有定义:IDD



引用 1 楼 xiaojunjun1202 的回复:
CDockableForm(UINT nIDTemplate);


带参数的构造函数

---华软网友回复---
顶一下,
引用 2 楼 caddor 的回复:
为什么要用这个??

CMyDialog(CWnd* pParent = NULL);   // standard constructor
不用这个,而且没有定义:IDD



引用 1 楼 xiaojunjun1202 的回复:

CDockableForm(UINT nIDTemplate);


带参数的构造函数

---华软网友回复---
偶就是楼主, 大家帮忙一下
---华软网友回复---
木有人啊
---华软网友回复---
囧,构造函数怎么写你可以自己定义,很随意,按照你自己的需要,怎么简单就怎么定义。没有固定的写法。如果不定义任何的构造函数,编译器会为你提供一个默认的构造函数
---华软网友回复---
这点吧基础,我会,

但是 你看过

CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/)
: CDialog(CMyDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CMyDialog)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}

代码吗? 它把一个id,指针传给CDialog类。。。。。

如果不写成这样, 请问,我如何把 id, 传给CDialog类?????


作者的代码里面, 里面构造函数都没有 ID  ,你不奇怪吗?

比如你想new一个对话框 ,你是这样用的pdlg->Create(IDDD_,NULL)


引用 6 楼 visualeleven 的回复:
囧,构造函数怎么写你可以自己定义,很随意,按照你自己的需要,怎么简单就怎么定义。没有固定的写法。如果不定义任何的构造函数,编译器会为你提供一个默认的构造函数
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。