c++ - 什么是私有(private)MFC,为什么不能通过普通接口(interface)访问?

标签 c++ mfc afx

我正在使用 MFC 进行 gui 开发,我偶然发现了一个可能对我正在尝试做的事情有用的函数。该函数是 _AfxCompareClassName。但是,它包含在目录“VC/altmfc/src/mfc/afximpl.h”中的文件“afximpl.h”中。正常的 mfc 包含在目录“VC/atlmfc/include”中。

根据我收集到的信息,位于 src/mfc 中的那些文件和函数被认为是私有(private) mfc ( according to this guy ),我不应该使用它们。为什么 ?这个功能看起来不错。它可以帮助我了解我当前在 UI 中的哪个位置。

最终我想做的是在编辑文本字段(编辑控件)时更改转义/返回键行为。我的问题如下:

  • 什么是私有(private) MFC 函数?
  • 为什么我不应该使用这些功能(根据我的收集,它们经常变化,所以这就是我不应该使用它们的原因。还有其他原因吗?)
  • 是否有更简洁的方法来完成我想做的事情?

我虽然很高兴获得一些关于私有(private) MFC 的信息,因为到目前为止似乎还没有关于 SO 的任何信息。

非常感谢, JC

最佳答案

“私有(private)”MFC 文件是 MFC 的实现细节。正如您不希望或期望您的类的用户获得 private: 数据或方法一样,您不应该依赖 MFC 实现级实用程序代码。请注意,您在 MFC 实现细节中找到的几乎所有很酷的东西都可以在某个地方公开获得。你只需要挖掘。

MFC 中有内置功能可以满足您的需求。它叫做RUNTIME_CLASS ,这是来自 MSDN 的示例代码:

// Example for RUNTIME_CLASS
CRuntimeClass* prt = RUNTIME_CLASS( CAge );
ASSERT( lstrcmp( prt->m_lpszClassName, "CAge" )  == 0 );

关于c++ - 什么是私有(private)MFC,为什么不能通过普通接口(interface)访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044999/

相关文章:

c++ - 检查注册表项是否链接到另一个注册表项(或拷贝)

c++ - 请求函数的最佳方法

visual-studio-2008 - Visual C++ 2008,#include "afxdb.h"时出错

c++ - __targv 在我的 MFC Windows 应用程序中为 NULL。参数== 1

c++ - 我如何优化此代码以这种格式打印?

c++ - 如何将未知大小的字符串从 DLL 返回到 Visual Basic

C++ 禁用静态变量的析构函数

c++ - 资源中的 CRichEditCtrl 加载 1.0 而不是 2.0

c++ - 微软运行时库