CWnd::CreateControl

BOOL CWnd::CreateControl(
           LPCTSTR lpszClass,
           LPCTSTR lpszWindowName,
           DWORD dwStyle,
           const RECT& rect,
           CWnd* pParentWnd,
           UINT nID,
           CFile* pPersist = NULL,
           BOOL bStorage = FALSE,
           BSTR bstrLicKey = NULL
           );

BOOL CWnd::CreateControl(
           REFCLSID clsid,
           LPCTSTR lpszWindowName,
           DWORD dwStyle,
           const RECT& rect,
           CWnd* pParentWnd,
           UINT nID,
           CFile* pPersist = NULL,
           BOOL bStorage = FALSE,
           BSTR bstrLicKey = NULL
           );

返回值:如果成功,则返回非零值;否则返回0。

参数:
lpszClass这个字符串可能包含了该类的OLE的“短名”(ProgID),例如,“CIRC3.Circ3Ctrl.1”。这个名字应该与控件注册的名字相匹配。或者,这个字符串可能包含了CLSID的字符串形式,包括在大括号内,例如,“{9DBAFCCF-592F-101B-85CE-00608CEC297B}”。在其它情况下,CreateControl将该字符串转换为对应的类ID。
lpszWindowName指向要显示在控件中的文本的指针。设置了控件的标题或文本属性(如果有)的值。如果该指针为NULL,则不改变控件的标题或文本属性。
dwStyleWindows风格。可能的取值在说明部分列出。
rect指定了控件的大小和位置。它可以是一个CRect对象,也可以是一个RECT结构。
pParentWnd指定了控件的父窗口。它不能为NULL。
nID指定了控件的ID。
pPersist指向一个CFile对象的指针,其中包含了控件的永久状态。缺省值为NULL,表明控件在初始化自己的时候并不读任何永久性的存储。如果该参数不是NULL,它必须是一个CFile派生类对象的指针,其中包含了控件的永久数据,可以是流的形式,也可以是存储的形式。这些数据必须是在客户以前的活动中保存的。CFile对象中还可以包含其它数据,但是当调用CreateControl的时候,它的读写指针必须定位在永久数据的第一个字节。
bStorage指明pPersist中的数据是被解释为IStorage数据还是IStream数据。如果pPersist中的数据是一种存储,则bStorage应该为TRUE。如果pPersist中的数据是一个流,则bStorage应该是FALSE。缺省值为FALSE。
bstrLicKey可选的许可键数据。这个数据仅在创建需要运行时许可的控件时才需要。如果该控件支持许可,要成功地创建控件,你必须提供许可键。缺省的值为NULL。
clsid控件的唯一的类ID。

说明:
使用这个成员函数来创建一个OLE控件,在MFC程序中,它用一个CWnd对象来代表。CreateControl与CWnd::Create函数类似,CWnd::Create为CWnd创建一个窗口。CreateControl创建一个OLE控件,而不是其它的普通窗口。
CreateControl仅支持Windows的dwStyle风格的一个子集:
·WS_VISIBLE创建一个最初可见的窗口。如果你希望该控件立即可见,向普通窗口一样,则需要这个风格。
·WS_DISABLED创建一个最初被禁止的窗口。被禁止的窗口不能接收用户的输入。如果控件具有Enable属性,则可以设置这个风格。
·WS_BORDER创建一个带有细边框的窗口。如果控件具有BorderStyle属性,则可以设置这个风格。
·WS_GROUP指定了一组控件中的第一个控件。用户可以在组中使用方向键来把键盘焦点从一个控件转移到另一个控件。在第一个控件之后所有用WS_GROUP风格定义的控件都属于同一组。下一个具有WS_GROUP风格的控件将结束这个组并开始一个新组。
·WS_TABSTOP指明当用户按下TAB键时,控件可以接收键盘焦点。按下TAB键时键盘焦点转移到具有WS_TABSTOP风格的下一个控件。