Share via


COleControlSite 类

提供自定义客户端控件接口支持。

语法

class COleControlSite : public CCmdTarget

成员

公共构造函数

名称 描述
COleControlSite::COleControlSite 构造 COleControlSite 对象。

公共方法

名称 描述
COleControlSite::BindDefaultProperty 将托管控件的默认属性绑定到数据源。
COleControlSite::BindProperty 将托管控件的属性绑定到数据源。
COleControlSite::CreateControl 创建托管 ActiveX 控件。
COleControlSite::DestroyControl 销毁托管控件。
COleControlSite::DoVerb 执行托管控件的特定谓词。
COleControlSite::EnableDSC 为控件站点启用数据溯源。
COleControlSite::EnableWindow 启用控件站点。
COleControlSite::FreezeEvents 指定控件站点是否正在接受事件。
COleControlSite::GetDefBtnCode 检索托管控件的默认按钮代码。
COleControlSite::GetDlgCtrlID 检索控件的标识符。
COleControlSite::GetEventIID 检索托管控件的事件接口的 ID。
COleControlSite::GetExStyle 检索控件站点的扩展样式。
COleControlSite::GetProperty 检索托管控件的特定属性。
COleControlSite::GetStyle 检索控件站点的样式。
COleControlSite::GetWindowText 检索托管控件的文本。
COleControlSite::InvokeHelper 调用托管控件的特定方法。
COleControlSite::InvokeHelperV 使用参数变量列表调用托管控件的特定方法。
COleControlSite::IsDefaultButton 确定控件是否为窗口中的默认按钮。
COleControlSite::IsWindowEnabled 检查控件站点的可见状态。
COleControlSite::ModifyStyle 修改控件站点的当前扩展样式。
COleControlSite::ModifyStyleEx 修改控件站点的当前样式。
COleControlSite::MoveWindow 更改控件站点的位置。
COleControlSite::QuickActivate 快速激活托管控件。
COleControlSite::SafeSetProperty 在不引发异常的情况下设置控件的属性或方法。
COleControlSite::SetDefaultButton 设置窗口中的默认按钮。
COleControlSite::SetDlgCtrlID 检索控件的标识符。
COleControlSite::SetFocus 将焦点设置到控件站点。
COleControlSite::SetProperty 设置托管控件的特定属性。
COleControlSite::SetPropertyV 使用参数变量列表设置托管控件的特定属性。
COleControlSite::SetWindowPos 设置控件站点的位置。
COleControlSite::SetWindowText 设置托管控件的文本。
COleControlSite::ShowWindow 显示或隐藏控件站点。

受保护方法

名称 描述
COleControlSite::GetControlInfo 检索托管控件的键盘信息和助记键。

公共数据成员

“属性” 描述
COleControlSite::m_bIsWindowless 确定托管控件是否为无窗口控件。
COleControlSite::m_ctlInfo 包含有关控件的键盘处理的信息。
COleControlSite::m_dwEventSink 控件连接点的 Cookie。
COleControlSite::m_dwMiscStatus 托管控件的其他状态。
COleControlSite::m_dwPropNotifySink 控件的 IPropertyNotifySink Cookie。
COleControlSite::m_dwStyle 托管控件的样式。
COleControlSite::m_hWnd 控件站点的句柄。
COleControlSite::m_iidEvents 托管控件的事件接口的 ID。
COleControlSite::m_nID 托管控件的 ID。
COleControlSite::m_pActiveObject 指向托管控件的 IOleInPlaceActiveObject 对象的指针。
COleControlSite::m_pCtrlCont 托管控件的容器。
COleControlSite::m_pInPlaceObject 指向托管控件的 IOleInPlaceObject 对象的指针。
COleControlSite::m_pObject 指向控件的 IOleObjectInterface 接口的指针。
COleControlSite::m_pWindowlessObject 指向控件的 IOleInPlaceObjectWindowless 接口的指针。
COleControlSite::m_pWndCtrl 指向托管控件的窗口对象的指针。
COleControlSite::m_rect 控件站点的大小。

备注

此项支持是嵌入式 ActiveX 控件获取有关其显示站点的位置和范围、其名字对象、其用户界面、其环境属性以及由其容器提供的其他资源的主要方式。 COleControlSite 完全实现 IOleControlSiteIOleInPlaceSiteIOleClientSiteIPropertyNotifySinkIBoundObjectSiteINotifyDBEventsIRowSetNotify 接口。 此外,还实现 IDispatch 接口(提供对环境属性和事件接收器的支持)。

若要使用 COleControlSite 创建 ActiveX 控件站点,请从 COleControlSite 派生一个类。 在容器(例如对话框)的 CWnd 派生类中重写 CWnd::CreateControlSite 函数。

继承层次结构

CObject

CCmdTarget

COleControlSite

要求

标头:afxocc.h

COleControlSite::BindDefaultProperty

将调用对象的默认简单绑定属性(在类型库中标记)绑定到由数据源控件的 DataSource、UserName、Password 和 SQL 属性定义的基础光标。

virtual void BindDefaultProperty(
    DISPID dwDispID,
    VARTYPE vtProp,
    LPCTSTR szFieldName,
    CWnd* pDSCWnd);

参数

dwDispID
指定要绑定到数据源控件的数据绑定控件上的属性的 DISPID。

vtProp
指定要绑定的属性的类型 — 例如 VT_BSTR、VT_VARIANT 等。

szFieldName
在数据源控件提供的光标中指定属性要绑定到的列的名称。

pDSCWnd
指向 CWnd 派生对象的指针,该对象托管属性要绑定到的数据源控件。

注解

要对其调用此函数的 CWnd 对象必须是数据绑定控件。

COleControlSite::BindProperty

将调用对象的简单绑定属性(在类型库中标记)绑定到由数据源控件的 DataSource、UserName、Password 和 SQL 属性定义的基础光标。

virtual void BindProperty(
    DISPID dwDispId,
    CWnd* pWndDSC);

参数

dwDispId
指定要绑定到数据源控件的数据绑定控件上的属性的 DISPID。

pWndDSC
指向 CWnd 派生对象的指针,该对象托管属性要绑定到的数据源控件。

注解

要对其调用此函数的 CWnd 对象必须是数据绑定控件。

COleControlSite::COleControlSite

构造新的 COleControlSite 对象。

explicit COleControlSite(COleControlContainer* pCtrlCont);

参数

pCtrlCont
指向控件容器(代表托管 AtiveX 控件的窗口)的指针。

注解

此函数由 COccManager::CreateContainer 函数调用。 有关对容器创建操作进行自定义的详细信息,请参阅 COccManager::CreateSite

COleControlSite::CreateControl

创建由 COleControlSite 对象托管的 ActiveX 控件。

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

virtual HRESULT CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    UINT nID,
    CFile* pPersist = NULL,
    BOOL bStorage = FALSE,
    BSTR bstrLicKey = NULL);

参数

pWndCtrl
指向表示控件的窗口对象的指针。

clsid
控件的唯一类 ID。

lpszWindowName
指向要在控件中显示的文本的指针。 设置窗口的标题或文本属性(如有)的值。

dwStyle
窗口样式。 可用样式列在“注解”部分下

rect
指定控件的大小和位置。 它可以是 CRect 对象或 RECT 结构。

nID
指定控件的子窗口 ID。

pPersist
指向包含控件的持久状态的 CFile 的指针。 默认值为 NULL,表示控件会初始化自身,而不从任何持久存储中恢复其状态。 如果不为 NULL,它应是指向 CFile 派生对象的指针,该对象包含采用流或存储形式的控件的持久数据。 此数据可能已保存在客户端先前的激活中。 CFile 可以包含其他数据,但必须在调用 CreateControl 时将其读写指针设置为持久数据的第一个字节。

bStorage
指示是否应将 pPersist 中的数据解释为 IStorageIStream 数据。 如果 pPersist 中的数据为存储,则 bStorage 应为 TRUE。 如果 pPersist 中的数据为流,则 bStorage 应为 FALSE。 默认值是 FALSE。

bstrLicKey
可选的许可证密钥数据。 仅在创建需要运行时许可证密钥的控件时才需要此数据。 如果控件支持许可,则必须提供许可证密钥才能成功创建控件。 默认值为 NULL。

ppt
指向包含控件左上角的 POINT 结构的指针。 控件的大小由 psize 的值决定。 ppt 和 psize 值是指定控件大小和位置的可选方法

psize
指向包含控件大小的 SIZE 结构的指针。 左上角由 ppt 的值决定。 ppt 和 psize 值是指定控件大小和位置的可选方法

返回值

标准 HRESULT 值。

备注

CreateControl 仅支持 Windows dwStyle 标志的子集

  • WS_VISIBLE 创建初始可见的窗口。 如果希望控件像普通窗口一样立即可见,则需要它。

  • WS_DISABLED 创建初始禁用的窗口。 禁用的窗口无法接收用户的输入。 如果控件具有 Enabled 属性,则可以设置。

  • WS_BORDER 创建带细线边框的窗口。 如果控件具有 BorderStyle 属性,则可以设置。

  • WS_GROUP 指定一组控件中的第一个控件。 用户可以使用方向键将键盘焦点从组中的一个控件更改为下一个控件。 在第一个控件之后使用 WS_GROUP 样式定义的所有控件属于同一组。 具有 WS_GROUP 样式的下一个控件结束该组并开始下一组。

  • WS_TABSTOP 指定当用户按下 TAB 键时可以接收键盘焦点的控件。 按 TAB 键会将键盘焦点更改为 WS_TABSTOP 样式的下一个控件。

使用第二个重载来创建默认大小的控件。

COleControlSite::DestroyControl

销毁 COleControlSite 对象。

virtual BOOL DestroyControl();

返回值

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

注解

完成后,对象将从内存中释放,任何指向该对象的指针不再有效。

COleControlSite::DoVerb

执行指定的谓词。

virtual HRESULT DoVerb(
    LONG nVerb,
    LPMSG lpMsg = NULL);

参数

nVerb
指定要执行的谓词。 它可以包含下列其中一项:

含义 符号
0 主谓词 OLEIVERB_PRIMARY
-1 辅助谓词 (无)
1 显示要编辑的对象。 OLEIVERB_SHOW
-2 在单独的窗口中编辑项。 OLEIVERB_OPEN
-3 隐藏对象。 OLEIVERB_HIDE
-4 就地激活控件。 OLEIVERB_UIACTIVATE
-5 就地激活控件,无需额外的用户界面元素。 OLEIVERB_INPLACEACTIVATE
7 - 显示控件的属性。 OLEIVERB_PROPERTIES

lpMsg
指向导致项被激活的消息的指针。

返回值

标准 HRESULT 值。

注解

此函数通过控件的 IOleObject 接口直接调用以执行指定的谓词。 如果此函数调用引发异常,则会返回 HRESULT 错误代码。

有关详细信息,请参阅 Windows SDK 中的 IOleObject::DoVerb

COleControlSite::EnableDSC

为控件站点启用数据溯源。

virtual void EnableDSC();

备注

由框架调用,以便为控件站点启用并初始化数据溯源。 重写此函数以提供自定义行为。

COleControlSite::EnableWindow

启用或禁用控件站点的鼠标和键盘输入。

virtual BOOL EnableWindow(BOOL bEnable);

参数

bEnable
指定是启用还是禁用窗口:如果要启用窗口输入,则为 TRUE,否则为 FALSE。

返回值

如果先前已禁用窗口,则返回非零值,否则返回 0。

COleControlSite::FreezeEvents

指定控件站点是要处理还是忽略从控件触发的事件。

void FreezeEvents(BOOL bFreeze);

参数

bFreeze
指定控件所在位置是否希望停止接受事件。 如果控件不接受事件,则返回非零值;否则返回零。

备注

如果 bFreeze 为 TRUE,则控件站点将请求控件停止触发事件。 如果 bFreeze 为 FALSE,则控件站点将请求控件继续触发事件

注意

控件不需要停止触发事件(如果控件站点已请求)。 它可以继续触发,但控件站点将忽略所有后续事件。

COleControlSite::GetControlInfo

检索有关控件的键盘助记键和键盘行为的信息。

void GetControlInfo();

备注

该信息存储在 COleControlSite::m_ctlInfo 中。

COleControlSite::GetDefBtnCode

确定控件是否为默认按钮。

DWORD GetDefBtnCode();

返回值

可以是以下其中一个值:

  • DLGC_DEFPUSHBUTTON 控件是对话框中的默认按钮。

  • DLGC_UNDEFPUSHBUTTON 控件不是对话框中的默认按钮。

  • 0 控件不是按钮

COleControlSite::GetDlgCtrlID

检索控件的标识符。

virtual int GetDlgCtrlID() const;

返回值

控件的对话框项标识符。

COleControlSite::GetEventIID

检索指向控件的默认事件接口的指针。

BOOL GetEventIID(IID* piid);

参数

piid
指向接口 ID 的指针。

返回值

如果成功,则返回非零值;否则返回 0。 如果成功,则 piid 包含控件默认事件接口的接口 ID

COleControlSite::GetExStyle

检索窗口的扩展样式。

virtual DWORD GetExStyle() const;

返回值

控制窗口的扩展样式。

注解

若要检索常规样式,请调用 COleControlSite::GetStyle

COleControlSite::GetProperty

获取 dwDispID 指定的控件属性

virtual void GetProperty(
    DISPID dwDispID,
    VARTYPE vtProp,
    void* pvProp) const;

参数

dwDispID
标识在控件的默认 IDispatch 接口中找到的、要检索的属性的调度 ID。

vtProp
指定要检索的属性的类型。 有关可能的值,请参阅备注部分 COleDispatchDriver::InvokeHelper

pvProp
将接收属性值的变量的地址。 它必须与 vtProp 指定的类型匹配。

备注

此值是通过 pvProp 返回的

COleControlSite::GetStyle

检索控件站点的样式。

virtual DWORD GetStyle() const;

返回值

窗口的样式。

注解

有关可能值的列表,请参阅 Windows 样式。 若要检索控件站点的扩展样式,请调用 COleControlSite::GetExStyle

COleControlSite::GetWindowText

检索控件的当前文本。

virtual void GetWindowText(CString& str) const;

参数

str
对包含控件当前文本的 CString 对象的引用。

注解

如果控件支持 Caption 常用属性,则返回此值。 如果不支持 Caption 常用属性,则返回 Text 属性的值。

COleControlSite::InvokeHelper

在 wFlags 指定的上下文中调用 dwDispID 指定的方法或属性

virtual void AFX_CDECL InvokeHelper(
    DISPID dwDispID,
    WORD wFlags,
    VARTYPE vtRet,
    void* pvRet,
    const BYTE* pbParamInfo, ...);

参数

dwDispID
标识在控件的 IDispatch 接口中找到的、要调用的属性或方法的调度 ID。

wFlags
描述 IDispatch::Invoke调用的上下文的标志。 有关可能的 wFlags 值,请参阅 Windows SDK 中的 IDispatch::Invoke

vtRet
指定返回值的类型。 有关可能的值,请参阅备注部分 COleDispatchDriver::InvokeHelper

pvRet
将接收属性值或返回值的变量的地址。 它必须与 vtRet 指定的类型匹配。

pbParamInfo
指向以 null 结尾的字节字符串的指针,可指定 pbParamInfo 后面的参数的类型。 有关可能的值,请参阅备注部分 COleDispatchDriver::InvokeHelper

...
具有 pbParamInfo 中指定的类型的参数的变量列表。

备注

pbParamInfo 参数指定传递到方法或属性的参数的类型。 参数的变量列表在语法声明中通过 ... 进行表示。

此函数将参数转换为 VARIANTARG 值,然后对控件调用 IDispatch::Invoke 方法。 如果 IDispatch::Invoke 调用失败,则此函数会引发异常。 如果 IDispatch::Invoke 返回的状态码为 DISP_E_EXCEPTION,则此函数将引发 COleDispatchException 对象,否则引发 COleException

COleControlSite::InvokeHelperV

在 wFlags 指定的上下文中调用 dwDispID 指定的方法或属性

virtual void InvokeHelperV(
    DISPID dwDispID,
    WORD wFlags,
    VARTYPE vtRet,
    void* pvRet,
    const BYTE* pbParamInfo,
    va_list argList);

参数

dwDispID
标识在控件的 IDispatch 接口中找到的、要调用的属性或方法的调度 ID。

wFlags
描述 IDispatch::Invoke调用的上下文的标志。

vtRet
指定返回值的类型。 有关可能的值,请参阅备注部分 COleDispatchDriver::InvokeHelper

pvRet
将接收属性值或返回值的变量的地址。 它必须与 vtRet 指定的类型匹配。

pbParamInfo
指向以 null 结尾的字节字符串的指针,可指定 pbParamInfo 后面的参数的类型。 有关可能的值,请参阅备注部分 COleDispatchDriver::InvokeHelper

argList
指向变量参数列表的指针。

备注

pbParamInfo 参数指定传递到方法或属性的参数的类型。 可以使用 va_list 参数传递所要调用的方法或属性的其他参数

通常,此函数由 COleControlSite::InvokeHelper 调用。

COleControlSite::IsDefaultButton

确定控件是否为默认按钮。

BOOL IsDefaultButton();

返回值

如果控件是窗口中的默认按钮,则返回非零值,否则返回零。

COleControlSite::IsWindowEnabled

确定是否已启用控件站点。

virtual BOOL IsWindowEnabled() const;

返回值

如果已启用控件,则返回非零值,否则返回零。

备注

该值是从控件的 Enabled 常用属性中检索的。

COleControlSite::m_bIsWindowless

确定对象是否为无窗口控件。

BOOL m_bIsWindowless;

备注

如果控件没有窗口,则返回非零值,否则返回零。

COleControlSite::m_ctlInfo

有关控件如何处理键盘输入的信息。

CONTROLINFO m_ctlInfo;

注解

此信息存储在 CONTROLINFO 结构中。

COleControlSite::m_dwEventSink

包含来自控件事件接收器的连接点 Cookie。

DWORD m_dwEventSink;

COleControlSite::m_dwMiscStatus

包含有关控件的其他信息。

DWORD m_dwMiscStatus;

注解

有关详细信息,请参阅 Windows SDK 中的 OLEMISC

COleControlSite::m_dwPropNotifySink

包含 IPropertyNotifySink Cookie。

DWORD m_dwPropNotifySink;

COleControlSite::m_dwStyle

包含控件的窗口样式。

DWORD m_dwStyle;

COleControlSite::m_hWnd

包含控件的 HWND;如果控件无窗口,则为 NULL。

HWND m_hWnd;

COleControlSite::m_iidEvents

包含控件的默认事件接收器接口的接口 ID。

IID m_iidEvents;

COleControlSite::m_nID

包含控件的对话框项 ID。

UINT m_nID;

COleControlSite::m_pActiveObject

包含控件的 IOleInPlaceActiveObject 接口。

LPOLEINPLACEACTIVEOBJECT m_pActiveObject;

COleControlSite::m_pCtrlCont

包含控件的容器(代表窗体)。

COleControlContainer* m_pCtrlCont;

COleControlSite::m_pInPlaceObject

包含控件的 IOleInPlaceObjectIOleInPlaceObject 接口。

LPOLEINPLACEOBJECT m_pInPlaceObject;

COleControlSite::m_pObject

包含控件的 IOleObjectInterface 接口。

LPOLEOBJECT m_pObject;

COleControlSite::m_pWindowlessObject

包含控件的 IOleInPlaceObjectWindowlessIOleInPlaceObjectWindowless 接口。

IOleInPlaceObjectWindowless* m_pWindowlessObject;

COleControlSite::m_pWndCtrl

包含指向代表控件本身的 CWnd 对象的指针。

CWnd* m_pWndCtrl;

COleControlSite::m_rect

包含控件的边界,相对于容器的窗口。

CRect m_rect;

COleControlSite::ModifyStyle

修改控件的样式。

virtual BOOL ModifyStyle(
    DWORD dwRemove,
    DWORD dwAdd,
    UINT nFlags);

参数

dwRemove
要从当前窗口样式中删除的样式。

dwAdd
要从当前窗口样式添加的样式。

nFlags
窗口定位标志。 有关可能值的列表,请参阅 Windows SDK 中的 SetWindowPos 函数。

返回值

如果样式已更改,则返回非零值,否则返回零。

备注

将修改控件的 Enabled 常用属性以匹配 WS_DISABLED 的设置。 将修改控件的 Border Style 常用属性以匹配 WS_BORDER 的设置。 所有其他样式将直接应用于控件的窗口句柄(如果有)。

修改控件的窗口样式。 可以使用按位“或”(|) 运算符组合要添加或删除的样式。 有关可用窗口样式的信息,请参阅 Windows SDK 中的 CreateWindow 函数。

如果 nFlags 为非零值,则 ModifyStyle 将调用 Win32 函数 SetWindowPos,并通过将 nFlags 与以下四个标志组合来重绘窗口

  • SWP_NOSIZE 保留当前大小。

  • SWP_NOMOVE 保留当前位置。

  • SWP_NOZORDER 保留当前 Z 顺序。

  • SWP_NOACTIVATE 不激活窗口。

若要修改窗口的扩展样式,请调用 ModifyStyleEx

COleControlSite::ModifyStyleEx

修改控件的扩展样式。

virtual BOOL ModifyStyleEx(
    DWORD dwRemove,
    DWORD dwAdd,
    UINT nFlags);

参数

dwRemove
要从当前窗口样式中删除的扩展样式。

dwAdd
要从当前窗口样式添加的扩展样式。

nFlags
窗口定位标志。 有关可能值的列表,请参阅 Windows SDK 中的 SetWindowPos 函数。

返回值

如果样式已更改,则返回非零值,否则返回零。

备注

将修改控件的 Appearance 常用属性以匹配 WS_EX_CLIENTEDGE 的设置。 所有其他扩展窗口样式将直接应用于控件的窗口句柄(如果有)。

修改控件站点对象的窗口扩展样式。 可以使用按位“或”(|) 运算符组合要添加或删除的样式。 有关可用窗口样式的信息,请参阅 Windows SDK 中的 CreateWindowEx 函数。

如果 nFlags 为非零值,则 ModifyStyleEx 将调用 Win32 函数 SetWindowPos,并通过将 nFlags 与以下四个标志组合来重绘窗口

  • SWP_NOSIZE 保留当前大小。

  • SWP_NOMOVE 保留当前位置。

  • SWP_NOZORDER 保留当前 Z 顺序。

  • SWP_NOACTIVATE 不激活窗口。

若要修改窗口的扩展样式,请调用 ModifyStyle

COleControlSite::MoveWindow

更改控件的位置。

virtual void MoveWindow(
    int x,
    int y,
    int nWidth,
    int nHeight);

参数

x
窗口左侧的新位置。

y
窗口顶部的新位置。

nWidth
窗口的新宽度

nHeight
窗口的新高度。

COleControlSite::QuickActivate

快速激活包含的控件。

virtual BOOL QuickActivate();

返回值

如果控件站点已激活,则返回非零值,否则返回零。

注解

仅当用户重写控件的创建过程时才应调用此函数。

应在快速激活发生后调用 IPersist*::LoadIPersist*::InitNew 方法。 控件应在快速激活期间与容器的接收器建立连接。 但是,在调用 IPersist*::LoadIPersist*::InitNew 之前这些连接不会生效。

COleControlSite::SafeSetProperty

设置 dwDispID 指定的控件属性

virtual BOOL AFX_CDECL SafeSetProperty(
    DISPID dwDispID,
    VARTYPE vtProp, ...);

参数

dwDispID
标识在控件的 IDispatch 接口中找到的、要设置的属性或方法的调度 ID。

vtProp
指定要设置的属性的类型。 有关可能的值,请参阅备注部分 COleDispatchDriver::InvokeHelper

...
由 vtProp 指定的类型的单个参数

返回值

如果成功,则不为零,否则为零。

注解

注意

SetPropertySetPropertyV 不同,如果遇到错误(例如尝试设置不存在的属性),则不会引发异常。

COleControlSite::SetDefaultButton

将控件设置为默认按钮。

void SetDefaultButton(BOOL bDefault);

参数

bDefault
如果控件应成为默认按钮,则为非零值;否则为零。

备注

注意

必须为控件设置 OLEMISC_ACTSLIKEBUTTON 状态位。

COleControlSite::SetDlgCtrlID

更改控件的对话框项标识符的值。

virtual int SetDlgCtrlID(int nID);

参数

nID
新的标识符值。

返回值

如果成功,则返回窗口的前一个对话框项标识符;否则返回 0。

注解

COleControlSite::SetFocus

将焦点设置到控件。

virtual CWnd* SetFocus();
virtual CWnd* SetFocus(LPMSG lpmsg);

参数

lpmsg
指向 MSG 结构的指针。 此结构包含 Windows 消息,该消息触发对当前控件站点中包含的控件的 SetFocus 请求。

返回值

指向先前具有焦点的窗口的指针。

COleControlSite::SetProperty

设置 dwDispID 指定的控件属性

virtual void AFX_CDECL SetProperty(
    DISPID dwDispID,
    VARTYPE vtProp, ...);

参数

dwDispID
标识在控件的 IDispatch 接口中找到的、要设置的属性或方法的调度 ID。

vtProp
指定要设置的属性的类型。 有关可能的值,请参阅备注部分 COleDispatchDriver::InvokeHelper

...
由 vtProp 指定的类型的单个参数

注解

如果 SetProperty 遇到错误,则引发异常。

异常的类型由尝试设置属性或方法的返回值确定。 如果返回值为 DISP_E_EXCEPTION,则引发 COleDispatchExcpetion;否则引发 COleException

COleControlSite::SetPropertyV

设置 dwDispID 指定的控件属性

virtual void SetPropertyV(
    DISPID dwDispID,
    VARTYPE vtProp,
    va_list argList);

参数

dwDispID
标识在控件的 IDispatch 接口中找到的、要设置的属性或方法的调度 ID。

vtProp
指定要设置的属性的类型。 有关可能的值,请参阅备注部分 COleDispatchDriver::InvokeHelper

argList
指向参数列表的指针。

注解

可以使用 arg_list 参数传递所要调用的方法或属性的其他参数。 如果 SetProperty 遇到错误,则引发异常。

异常的类型由尝试设置属性或方法的返回值确定。 如果返回值为 DISP_E_EXCEPTION,则引发 COleDispatchExcpetion;否则引发 COleException

COleControlSite::SetWindowPos

设置控件站点的大小、位置和 Z 顺序。

virtual BOOL SetWindowPos(
    const CWnd* pWndInsertAfter,
    int x,
    int y,
    int cx,
    int cy,
    UINT nFlags);

参数

pWndInsertAfter
指向窗口的指针。

x
窗口左侧的新位置。

y
窗口顶部的新位置。

cx
窗口的新宽度

cy
窗口的新高度。

nFlags
指定窗口大小和定位标志。 有关可能的值,请参阅 Windows SDK 中 SetWindowPos 的“注解”部分。

返回值

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

COleControlSite::SetWindowText

设置控件站点的文本。

virtual void SetWindowText(LPCTSTR lpszString);

参数

lpszString
指向要用作新标题或控件文本的 null 结尾字符串的指针。

注解

此函数首先尝试设置 Caption 常用属性。 如果不支持 Caption 常用属性,则改为设置 Text 属性。

COleControlSite::ShowWindow

设置窗口的显示状态。

virtual BOOL ShowWindow(int nCmdShow);

参数

nCmdShow
指定控件站点的显示方式。 它必须是以下值之一:

  • SW_HIDE 隐藏此窗口并将激活传递给另一个窗口。

  • SW_MINIMIZE 最小化窗口并激活系统列表中的顶级窗口。

  • SW_RESTORE 激活并显示窗口。 如果窗口已最小化或最大化,则 Windows 会将其还原为原始大小和位置。

  • SW_SHOW 激活窗口并以当前大小和位置显示窗口。

  • SW_SHOWMAXIMIZED 激活窗口并显示最大化的窗口。

  • SW_SHOWMINIMIZED 激活窗口并将其显示为图标。

  • SW_SHOWMINNOACTIVE 将窗口显示为图标。 当前处于活动状态的窗口仍保持活动状态。

  • SW_SHOWNA 以当前状态显示窗口。 当前处于活动状态的窗口仍保持活动状态。

  • SW_SHOWNOACTIVATE 以最近的大小和位置显示窗口。 当前处于活动状态的窗口仍保持活动状态。

  • SW_SHOWNORMAL 激活并显示窗口。 如果窗口已最小化或最大化,则 Windows 会将其还原为原始大小和位置。

返回值

如果窗口先前可见,则返回非零值;如果窗口先前已隐藏,则返回 0。

另请参阅

CCmdTarget 类
层次结构图
COleControlContainer 类