CreateControl就是一個程式語言中的函式名,採用了駱駝式命名法。具體使用方法與解釋請參考當前語言的官方文檔。
CWnd,函式原型,參數說明,返回值,說明,CAxWindow,函式原型,返回值,參數說明,附註,
CWnd
函式原型
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 );
參數說明
lpszClass 這個字元串可能包含了該類的OLE的“短名”(ProgID),例如,“CIRC3.Circ3Ctrl.1”。這個名字應該與控制項註冊的名字相匹配。或者,這個字元串可能包含了CLSID的字元串形式,包括在大括弧內,例如,“{9DBAFCCF-592F-101B-85CE-00608CEC297B}”。在其它情況下,CreateControl將該字元串轉換為對應的類ID。
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。
返回值
如果成功,則返回非零值;否則返回0。
說明
使用這個成員函式來創建一個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風格的下一個控制項。
CAxWindow
函式原型
HRESULT CreateControl( LPCOLESTR lpszName, IStream* pStream= NULL, IUnknown** ppUnkContainer= NULL );
HRESULT CreateControl( DWORD dwResID, IStream* pStream= NULL, IUnknown** ppUnkContainer= NULL );
返回值
一個標準的HRESULT的值
參數說明
lpszName
一個指向一個字元串來創建控制。必須被格式化的以下幾個方面:
- A ProgID such as "MSCAL.Calendar.7"
- A CLSID such as "{8E27C92B-1264-101C-8A2F-040224009C02}"
- A URL such as http://www.microsoft.com
- A reference to an Active document such as file://\DocumentsMyDoc.doc
- A fragment of HTML such as "MSHTML:<HTML><BODY>This is a line of text</BODY></HTML>"
Note "MSHTML:" must precede the HTML fragment so that it is designated as being an MSHTML stream.
pStream
[在]一個指向一個流,用於初始化的屬性控制。可以為空。
ppUnkContainer
[出]的地址指針,將得到IUnknown容器。可以為空。
dwResID
一個HTML資源資源ID。WebBrowser控制項將被創建和載入指定的資源。
附註
創建一個ActiveX控制項並初始化它,和解析到指定的Windows視窗。如果第二個版本的這個函式使用,一個HTML控制項被創建和綁定到通過dwResID標識資源。
這個方法和調用CreateControlEx(lpszName,pStream,NULL,NULL,NULL,NULL)具有相同的結果;
這個方法和調用CreateControlEx(lpszName,pStream,NULL,NULL,NULL,NULL)具有相同的結果;