MFC CCmdTarget 类 公共方法:CCmdTarget::GetTypeInfoOfGuid
在 MFC(Microsoft Foundation Classes)中,CCmdTarget::GetTypeInfoOfGuid 是一个公共方法,用于实现 IDispatch 接口中的 GetTypeInfo 方法。这个方法用于获取对象的指定 GUID 对应的类型信息。以下是该方法的一般说明:void CCmdTarget::GetTypeInfoOfGuid(const IID& iid, void** ppTypeInfo);参数说明: iid:要获取类型信息的 GUID。 ppTypeInfo:用于接收类型信息指针的指针。这个方法用于在对象支持类型信息时,根据提供的 GUID 获取相应的类型信息接口指针。如果对象不支持类型信息或者指定的 GUID 对应的类型信息不存在,ppTypeInfo 将被设置为 NULL。这个方法是 IDispatch 接口的一部分,用于支持 Automation。在实现 Automation 对象时,你需要提供类型信息,以便客户端程序(如脚本语言)能够了解对象的接口和成员。使用示例:// 在派生类中实现 GetTypeInfoOfGuid 方...
MFC CCmdTarget 类 公共方法:CCmdTarget::GetTypeInfoCount
在 MFC(Microsoft Foundation Classes)中,CCmdTarget::GetTypeInfoCount 是一个公共方法,用于实现 IDispatch 接口中的 GetTypeInfoCount 方法。这个方法用于获取对象的类型信息(Type Information)的数量。以下是该方法的一般说明:UINT CCmdTarget::GetTypeInfoCount();GetTypeInfoCount 方法返回一个 UINT 类型的值,表示对象实现的类型信息的数量。如果对象支持类型信息,返回值通常为 1;如果对象不支持类型信息,返回值为 0。这个方法是 IDispatch 接口的一部分,用于支持 Automation。在实现 Automation 对象时,你需要提供类型信息,以便客户端程序(如脚本语言)能够了解对象的接口和成员。使用示例:// 在派生类中实现 GetTypeInfoCount 方法UINT CMyAutomationObject::GetTypeInfoCount(){ // 支持一个类型信息 return 1;}请注意,在实现 G...
MFC CCmdTarget 类 公共方法:CCmdTarget::GetIDispatch
CCmdTarget::GetIDispatch 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于获取对象的 IDispatch 接口指针。以下是该方法的一般说明:LPDISPATCH CCmdTarget::GetIDispatch();这个方法返回一个指向对象 IDispatch 接口的指针。IDispatch 接口是 COM(Component Object Model)中用于支持 Automation 的接口,它允许通过名称调用对象的方法,访问对象的属性等。通常,你可以使用 GetIDispatch 方法将 CCmdTarget 对象或其派生类转换为 IDispatch 接口,以便在 COM 上下文中使用。这在处理 COM 事件、实现 Automation 对象等场景中很有用。使用示例:// 假设 pCmdTarget 是一个 CCmdTarget 派生类的指针CCmdTarget* pCmdTarget = GetSomeCCmdTargetObject();// 获取 IDispatch 接口LPDISPATCH pDispatc...
MFC CCmdTarget 类 公共方法:CCmdTarget::FromIDispatch
在 MFC(Microsoft Foundation Classes)中,CCmdTarget::FromIDispatch 是一个公共的静态方法,用于将 IDispatch 接口的指针转换为 CCmdTarget 派生类的指针。以下是该方法的一般说明:CCmdTarget* CCmdTarget::FromIDispatch(LPDISPATCH lpDispatch);参数说明: lpDispatch:指向 IDispatch 接口的指针,表示要进行转换的对象。方法返回一个指向 CCmdTarget 对象或其派生类的指针。如果转换成功,则返回非空指针;否则返回 NULL。这个方法通常在处理 COM(Component Object Model)接口时使用,特别是在使用 Automation 对象时。例如,在处理事件或回调时,你可能会得到一个 IDispatch 接口的指针,而需要将其转换为相应的 CCmdTarget 派生类以进行进一步的操作。使用示例:// 假设 pDispatch 是一个 IDispatch 接口的指针LPDISPATCH pDispatch = GetSome...
MFC CCmdTarget 类 公共方法:CCmdTarget::EnumOleVerbs
CCmdTarget::EnumOleVerbs 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于枚举与对象相关联的 OLE(Object Linking and Embedding)动作(verbs)。这个方法通常在实现了 OLE 容器的应用程序中用于提供对 OLE 对象的操作菜单。以下是该方法的一般说明:void CCmdTarget::EnumOleVerbs(COleVerbList& oleVerbList);参数说明: oleVerbList:一个引用,表示一个 COleVerbList 对象,用于存储与对象关联的 OLE 动作。方法用于填充 oleVerbList 对象,其中包含了与对象关联的 OLE 动作的信息。这些动作通常代表用户可以在 OLE 容器应用程序中对对象执行的操作,例如打开、编辑、播放等。使用示例:// 在派生类中覆盖 EnumOleVerbs 方法void CMyOleObject::EnumOleVerbs(COleVerbList& oleVerbList){ // 添加 OLE 动作...
MFC CCmdTarget 类 公共方法:CCmdTarget::EndWaitCursor
CCmdTarget::EndWaitCursor 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于结束使用 CCmdTarget::BeginWaitCursor 方法开始的等待光标状态。这个方法通常在长时间运行的操作结束后调用,以还原鼠标光标为正常状态。以下是该方法的一般说明:void CCmdTarget::EndWaitCursor();调用这个方法将取消之前通过 BeginWaitCursor 方法设置的等待光标状态,将光标还原为正常状态。这样可以提供给用户一个反馈,表示之前的操作已经完成。使用示例:// 在某个成员函数中结束等待光标状态void CMyClass::SomeLongRunningOperation(){ BeginWaitCursor(); // 执行需要较长时间完成的任务 EndWaitCursor();}请注意,EndWaitCursor 方法不会返回任何值。调用它将还原光标状态,使其回到正常状态。
MFC CCmdTarget 类 公共方法:CCmdTarget::EnableAutomation
在 MFC(Microsoft Foundation Classes)中,CCmdTarget::EnableAutomation 方法是用于启用或禁用对象的自动化支持的。下面是该方法的一般说明:void CCmdTarget::EnableAutomation();这个方法通常在派生自 CCmdTarget 的类中使用,以指示该类支持自动化。自动化是一种技术,允许应用程序通过编程方式与对象进行交互。通过调用 EnableAutomation 方法,你可以为类添加与自动化相关的功能,使其可以被外部程序(如脚本语言、其他应用程序等)访问和控制。在启用自动化后,你可能还需要在类中实现一些其他方法,如 GetTypeInfoCount、GetTypeInfo、GetIDsOfNames 和 Invoke,以便提供关于类的类型信息和实现方法调用的支持。以下是一个简单的示例:class CMyAutomationClass : public CCmdTarget{ DECLARE_DYNCREATE(CMyAutomationClass)public: CMyAutomationCl...
MFC CCmdTarget 类 公共方法:CCmdTarget::DoOleVerb
在 MFC(Microsoft Foundation Classes)中,CCmdTarget::DoOleVerb 方法用于处理 OLE(Object Linking and Embedding)对象的动作(Verb)。下面是该方法的一般说明:BOOL CCmdTarget::DoOleVerb(LONG nVerb, CView* pView, LPMSG pMsg);这个方法允许你执行指定的 OLE 动作(verb),并且通常在用户执行诸如双击 OLE 对象或选择 OLE 对象上下文菜单中的项时调用。参数说明如下: nVerb:指定要执行的 OLE 动作的标识符。 pView:指向 CView 对象的指针,表示与动作关联的视图。这是一个可选参数。 pMsg:指向 MSG 结构的指针,其中包含有关消息的信息。这也是一个可选参数。方法返回一个 BOOL 类型的值,表示是否成功执行了指定的 OLE 动作。如果返回 TRUE,表示成功;如果返回 FALSE,表示执行失败。这个方法的具体实现可能依赖于你的应用程序的特定要求和 OLE 对象的类型。通常,你需要根据 nVerb 的值执行相应的...
MFC CCmdTarget 类 公共方法:CCmdTarget::BeginWaitCursor
CCmdTarget::BeginWaitCursor 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在长时间运行的操作开始时设置鼠标光标为等待状态。这个方法通常用于改变光标形状,以提醒用户当前操作正在进行中,可能需要一些时间。以下是该方法的一般说明:void CCmdTarget::BeginWaitCursor();调用这个方法将使鼠标光标变为等待光标,通常是一个旋转的小圆圈或其他与等待操作相关的图标。这可以在执行某些需要较长时间完成的任务时使用,以提供用户一个视觉指示。使用示例:// 在某个成员函数中开始等待光标void CMyClass::SomeLongRunningOperation(){ BeginWaitCursor(); // 执行需要较长时间完成的任务 EndWaitCursor();}请注意,在长时间运行的操作结束后,应该调用 CCmdTarget::EndWaitCursor 方法来还原鼠标光标为正常状态。这样可以确保在等待操作期间,用户可以看到光标状态的变化,而在操作完成后光标状态会还原为正常状态...
MFC CCmdTarget 类 公共方法:CCmdTarget::OnFinalRelease
CCmdTarget::OnFinalRelease 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在对象的最后一个引用被释放时进行处理。以下是该方法的一般说明:void CCmdTarget::OnFinalRelease();该方法通常用于释放对象的资源或执行其他在对象被销毁时需要完成的清理工作。MFC 中的对象通常是通过引用计数来管理的,当对象的引用计数降为零时,就会调用 OnFinalRelease 方法。在派生类中,你可以覆盖这个方法,以便在对象被销毁时执行自定义的清理操作。这可以包括释放分配的内存、关闭文件或其他资源,或者执行其他与对象生命周期相关的任务。以下是一个简单的示例:class CMyObject : public CCmdTarget{ // ...protected: // 重写 OnFinalRelease 方法 virtual void OnFinalRelease() { // 在这里执行对象销毁时的清理工作 // 例如释放资源等 // 调用基...
MFC CCmdTarget 类 公共方法:CCmdTarget::OnCmdMsg
CCmdTarget::OnCmdMsg 是 MFC(Microsoft Foundation Classes)中的一个重要的成员函数,用于命令消息的处理。以下是该方法的一般说明:BOOL CCmdTarget::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo);该方法的主要目的是处理命令消息,并将其分派给对象的成员函数进行处理。它通常被用于实现命令消息的处理逻辑,比如菜单项、工具栏按钮等的响应。参数说明: nID:命令标识符,表示要处理的命令。 nCode:命令代码,表示命令的类型,如 CN_COMMAND、CN_UPDATE_COMMAND_UI 等。 pExtra:指向额外参数的指针,根据命令的不同可能有不同的类型和值。 pHandlerInfo:指向 AFX_CMDHANDLERINFO 结构的指针,用于提供关于命令处理者的信息。该方法返回一个布尔值 (BOOL),通常用于指示是否成功处理了命令消息。如果返回 TRUE,表示成功处理;如果返回 FALSE,表示未能处理。在派...
MFC CCmdTarget 类 公共方法:CCmdTarget::IsInvokeAllowed
CCmdTarget::IsInvokeAllowed 是 MFC(Microsoft Foundation Classes)中 CCmdTarget 类的一个公共方法。这个方法通常用于确定是否可以调用对象的成员函数。以下是该方法的一般说明:BOOL CCmdTarget::IsInvokeAllowed() const;这个方法的目的是检查是否允许调用对象的成员函数。通常,MFC 中的对象可能会实现消息处理、命令处理等,而 IsInvokeAllowed 可以用来检查当前是否可以调用对象的命令或消息处理函数。该方法返回一个布尔值 (BOOL),如果返回 TRUE,则表示允许调用;如果返回 FALSE,则表示不允许调用。这样的检查通常用于确保在特定的上下文或状态下才能执行某个操作,以增强程序的稳定性和可维护性。具体来说,你可以在调用对象的成员函数之前使用 IsInvokeAllowed 进行检查,以确保在适当的条件下执行相应的操作。
MFC CCmdTarget 类 公共方法:CCmdTarget::GetTypeInfoCount
在 MFC(Microsoft Foundation Classes)中,CCmdTarget 类确实提供了名为 GetTypeInfoCount 的公共方法,用于实现 IDispatch 接口。这个方法用于获取支持的类型信息的数量。以下是 CCmdTarget::GetTypeInfoCount 方法的定义:HRESULT CCmdTarget::GetTypeInfoCount(UINT& nCount)在 CCmdTarget 类中,GetTypeInfoCount 方法返回 E_NOTIMPL,表示该对象不支持类型信息。如果你的类派生自 CCmdTarget 并且需要支持类型信息,你可以在派生类中覆盖这个方法并返回实际的类型信息数量。以下是一个示例,演示如何在派生自 CCmdTarget 的类中实现 GetTypeInfoCount 方法:class CMyCmdTarget : public CCmdTarget{public: // 构造函数、析构函数等成员函数 // 实现获取类型信息数量的方法 virtual HRESULT GetTypeInf...
MFC CCmdTarget 类 公共方法:CCmdTarget::EndWaitCursor
在 MFC(Microsoft Foundation Classes)中,CCmdTarget 类确实有一个名为 EndWaitCursor 的公共方法。这个方法用于结束显示等待光标,即将等待光标切换回正常状态。以下是 CCmdTarget::EndWaitCursor 方法的定义:void CCmdTarget::EndWaitCursor();EndWaitCursor 方法通常与 BeginWaitCursor 方法一起使用,用于在执行一些可能需要一些时间的操作后,将等待光标切换回正常状态。这样可以向用户指示之前的操作已经完成。以下是一个简单的示例,演示如何在 MFC 中使用 BeginWaitCursor 和 EndWaitCursor:void CMyView::OnSomeLongRunningOperation(){ // 显示等待光标 BeginWaitCursor(); // 执行需要一些时间的操作 // ... // 隐藏等待光标 EndWaitCursor();}在这个示例中,OnSomeLongRunningOperation...
MFC CCmdTarget 类 公共方法:CCmdTarget::EnableAutomation
在 MFC(Microsoft Foundation Classes)中,CCmdTarget 类确实有一个名为 EnableAutomation 的公共方法,它用于启用 COM 自动化(Automation)。EnableAutomation 方法通常用于将 MFC 类导出为可以通过自动化接口访问的 COM 对象。以下是 CCmdTarget::EnableAutomation 方法的定义:void CCmdTarget::EnableAutomation();调用 EnableAutomation 方法将为类创建一个自动化代理,从而允许通过 COM 接口调用该类的成员函数。这对于将 MFC 类用作 COM 服务器非常有用。以下是一个简单的示例,演示如何在 MFC 类中使用 EnableAutomation 方法:class CMyAutomationClass : public CCmdTarget{ DECLARE_DYNCREATE(CMyAutomationClass)public: // 构造函数、析构函数等成员函数 // MFC 自动化宏 afx_...
MFC CCmdTarget 类 公共方法:CCmdTarget::BeginWaitCursor
在 MFC(Microsoft Foundation Classes)中,CCmdTarget 类的 BeginWaitCursor 是一个公共方法,用于显示等待光标。这个方法的目的是在执行一些可能需要一些时间的操作时,向用户指示正在进行处理。以下是 CCmdTarget::BeginWaitCursor 方法的定义:void CCmdTarget::BeginWaitCursor();调用这个方法将在应用程序的主窗口上显示一个等待光标,以表示当前操作可能需要一些时间。通常,在执行一些计算密集型的任务或者与外部资源通信时,你可以在任务开始时调用 BeginWaitCursor,然后在任务结束时调用 EndWaitCursor 来隐藏等待光标。以下是一个简单的示例,演示如何使用 BeginWaitCursor 和 EndWaitCursor:void CMyView::OnSomeLongRunningOperation(){ // 显示等待光标 BeginWaitCursor(); // 执行需要一些时间的操作 // ... // 隐藏等待光标 En...
MFC CCmdTarget 类 公共构造函数:CCmdTarget::CCmdTarget
在 MFC(Microsoft Foundation Classes)中,CCmdTarget 类是一个基类,用于处理命令和消息。关于 CCmdTarget 类的构造函数,通常构造函数的形式如下:CCmdTarget::CCmdTarget();CCmdTarget 的构造函数是一个默认构造函数,没有参数。这个基类的主要目的是作为其他类的基类,以便它们可以处理命令和消息。CCmdTarget 本身通常是被派生类使用的,以实现特定的功能。派生自 CCmdTarget 的类可以通过重写虚拟函数来处理特定的命令和消息。一个常见的虚拟函数是 OnCmdMsg,它允许派生类处理命令消息。以下是一个简单的示例,演示如何派生一个类并使用 CCmdTarget 的功能:class MyCmdTarget : public CCmdTarget{public: MyCmdTarget() {} virtual ~MyCmdTarget() {} // 重写 OnCmdMsg 函数以处理命令消息 virtual BOOL OnCmdMsg(UINT nID, int nCode, ...
MFC CClientDC 类 公共构造函数:CClientDC::CClientDC
在 MFC(Microsoft Foundation Classes)中,CClientDC 是用于设备上下文(Device Context)管理的类之一。它用于在窗口客户区域(client area)进行绘图操作。关于 CClientDC 类的构造函数,通常构造函数的形式如下:CClientDC::CClientDC(CWnd* pWnd);其中,pWnd 是指向窗口对象的指针。这个构造函数创建一个设备上下文对象,该对象用于在指定窗口的客户区域进行绘图。通过调用该构造函数,你可以获取用于在窗口客户区域进行绘图的设备上下文。以下是一个简单的例子,演示如何使用 CClientDC 构造函数:// 假设 pMyWnd 是指向窗口对象的指针CClientDC dc(pMyWnd);// 在窗口客户区域进行绘图操作dc.Rectangle(10, 10, 50, 50);上述代码创建了一个 CClientDC 对象 dc,该对象用于在窗口客户区域进行绘图。在这个例子中,使用 Rectangle 方法在客户区域内绘制了一个矩形。请注意,对 CClientDC 对象的使用应该在作用域结束时释放,以...
MFC CCheckListBox 类 公共方法:CCheckListBox::SetCheckStyle
在 MFC 中,CCheckListBox 类确实有一个名为 SetCheckStyle 的公共方法,用于设置列表框中的复选框风格。以下是该方法的一般用法:void CCheckListBox::SetCheckStyle(UINT nStyle);其中,nStyle 是要设置的复选框风格。这个方法用于设置整个列表框的复选框风格,而不是特定项。nStyle 的取值可以是以下之一,或者它们的组合: CLS_CHECK:启用复选框。默认值。 CLS_THREESTATE:启用三态复选框。 CLS_XPLOOK:使用 Windows XP 样式的复选框外观。 CLS_NOSPACEBETWEEN:禁用复选框和文本之间的空格。例如,要在 CCheckListBox 中启用三态复选框,你可以使用以下代码:m_checkListBox.SetCheckStyle(CLS_THREESTATE);这会设置列表框的复选框风格为三态复选框。
MFC CCheckListBox 类 公共方法:CCheckListBox::SetCheck
在 MFC 中,CCheckListBox 类确实有一个名为 SetCheck 的公共方法,用于设置列表框中指定项的复选框状态。以下是该方法的一般用法:void CCheckListBox::SetCheck(int nIndex, int nCheck);其中,nIndex 是要设置复选框状态的项的索引,nCheck 是要设置的状态。nCheck 的值可以是以下之一: 0 表示未选中。 1 表示选中。 2 表示灰色(表示部分选中)。例如,要将第一个项的复选框状态设置为选中,你可以使用以下代码:m_checkListBox.SetCheck(0, 1);这会将列表框中第一个项的复选框状态设置为选中状态。