CWnd::CreateControl
使用此成员函数创建在MFC程序将由 CWnd 对象的ActiveX控件。
BOOL CreateControl(
LPCTSTR pszClass,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
BOOL CreateControl(
REFCLSID clsid,
LPCTSTR pszWindowName,
DWORD dwStyle,
const POINT* ppt,
const SIZE* psize,
CWnd* pParentWnd,
UINT nID,
CFile* pPersist = NULL,
BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL
);
参数
pszClass
此字符串可以包含OLE “简称” (progid)对于选件类,也就是说..,“CIRC3.Circ3Ctrl.1”。 该名称需要与控件注册的相同的名称。 另外,该字符串可以包含 CLSID的字符串形式,包含在大括号,也就是说..,9DBAFCCF-592F-101B-85CE-00608CEC297B “{}”。 在任何情况下,CreateControl 将字符串转换为相应的选件类ID.pszWindowName
对于控件将显示文本的指针。 将控件的声明或文本属性的值(如果有)。 如果未发生更改 NULL、控件的说明或文本属性。dwStyle
Windows样式。 可用样式列表的"备注"下。ppt
指向 POINT 包含控件的左上角的结构或 CPoint 对象。pSize
指向 范围 包含控件大小的结构或 CSize 对象pParentWnd
指定控件的父窗口。 不能为 NULL。nID
指定控件的ID.pPersist
对包含控件的 C文件 的指针持久状态。 默认值为 NULL,这表明该控件初始化自身,而无需还原其从任何持久性存储区的状态。 如果不是 NULL,则应是指向 CFile-以流或存储的形式,包含控件的持久性数据的派生对象。 此数据在客户端以前的启动可能已保存。 CFile 包含其他数据,但是,必须将其读/写指针设置为第一个字节持久性数据在调用时将 CreateControl。bStorage
指示是否应解释在 pPersist 的数据作为IStorage或IStream数据。 如果在 pPersist 的数据是存储,bStorage 应为 TRUE。 如果在 pPersist 的数据是流,bStorage 应为 FALSE。 默认值为 FALSE。bstrLicKey
选项许可证密钥数据。 此数据。创建需要运行时许可证密钥的控件仅需要。 如果控件支持授权,必须为控件创建提供许可证密钥成功。 默认值为 NULL。clsid
控件的唯一选件类ID。
返回值
非零,如果成功;否则为0。
备注
CreateControl 是一个直接模拟的 CWnd::Create 函数,创建 CWnd的窗口。 CreateControl 创建一个ActiveX控件而不是普通窗口。
Windows dwStyle 标志的一个子集。CreateControl支持:
WS_VISIBLE 创建初始可见的窗口。 必需,如果您希望立即控件可见,类似普通的窗口。
WS_DISABLED 创建初始禁用的窗口。 一禁用窗口无法接收来自用户的输入。 如果控件已启用的属性,可以设置。
WS_BORDER 用细线边框创建一个窗口。 如果控件都有一个BorderStyle属性,可以设置。
WS_GROUP 指定一组控件的第一个控件。 通过使用方向键,用户在组中从一个控件转换键盘焦点切换到下。 所有控件定义与 WS_GROUP 样式在第一个控件后属于同一组。 与 WS_GROUP 样式的下一个控件关闭并开始下一组。
WS_TABSTOP 指定可以接收键盘焦点的控件,当用户按tab键时。 按tab键转换键盘焦点切换到 WS_TABSTOP 样式的下一个控件。
示例
class CGenocx : public CWnd
{
protected:
DECLARE_DYNCREATE(CGenocx)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x20DD1B9E, 0x87C4, 0x11D1, { 0x8B, 0xE3, 0x0, 0x0, 0xF8, 0x75, 0x4D, 0xA1 } };
return clsid;
}
// This code is generated by the Control Wizard.
// It wraps the call to CreateControl in the call to Create.
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{
UNREFERENCED_PARAMETER(pContext);
UNREFERENCED_PARAMETER(lpszClassName);
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
}
// remainder of class declaration omitted...
要求
Header: afxwin.h