我正在使用 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/