从 MFC 3.0 升级到 9.0 后不受支持的 eVC 类的列表
更新:2007 年 11 月
下面的类是 typedef,它们使用模板类提供等效的功能:
从 MFC 3.0 升级到 MFC 9.0 后 API 的行为差异
CDocument::SaveModified 对话框类和关联资源已经从所有平台的 MFC 9.0 中删除。因此,在 Pocket PC 2003 和 Smartphone 2003 平台上,DoSave 和 SaveModified 方法在使用时没有默认文件名,这些方法也没有对文件名的默认提示(如自动生成的文件名)。但是,在 Pocket PC 2003 平台上提供了一个可以重写此行为并提示文件名的选项。在 Smartphone 平台上,如果要提示文件名,可以调用 CDocManager::DoPromptFileName,。DoSave 和 SaveModified 方法的默认文件名行为在 Windows CE 平台上受支持,并且其功能与在桌面上相同。
设备的 MFC 9.0 不提供停靠支持。例如,不支持 CCommandBar::m_pDockBar 和 CCommandBar::m_pDockContext 成员。有关更多信息,请参见 CCommandBar 类。有关停靠支持的更多信息,请参见 Docking and Floating Toolbars。
在设备的 MFC 9.0 中,CDC::FrameRect 不再是 CDC Class 的成员。
在设备的 MFC 9.0 中,CCeDocList 已重命名为 CDocList 类。
在设备的 MFC 9.0 中,CCeSocket 功能封装在 CAsyncSocket Class 中。
在设备的 MFC 9.0 中,CFont::CreateFont 不受支持,可以改用 CFont::CreatePointFont。
在设备的 MFC 9.0 中,不再支持 CCommandBar::m_pDockBar 和 CCommandBar::m_pDockContext 成员。
在设备的 MFC 9.0 中,LPINLINEIMAGEINFO 结构已由 INLINEIMAGEINFO 替换。
Visual Studio 向导生成的资源遵循 Windows Mobile 5.0 用户界面 (UI) 准则。这意味着所有应用程序的 MenuBar 类始终将“新建”按钮放在左边,而将“菜单”放在右边。因此,设备的 MFC 9.0 不支持 m_bShowSharedNewButton 变量。例如,如果您的应用程序代码使用的是 wndCommandBar.m_bShowSharedNewButton = TRUE;,则可以将该代码行注释掉并将您的应用程序移植到设备的 MFC 9.0。
如果应用程序代码使用的是 ON_NOTIFY(DLN_CE_CREATE, AFXCE_ID_DOCLIST 或 OnCreateDocList,,将会得到下面的编译错误:
MainFrm.cpp(42) : 错误 C2065: 'DLN_CE_CREATE' : 未声明的标识符
MainFrm.cpp(42) : 错误 C2065: 'AFXCE_ID_DOCLIST' : 未声明的标识符
在 MFC 9.0 中,您可以安全地使用 DLN_DOCLIST_CREATE、DLN_DOCLIST_DESTROY 和 AFX_ID_DOCLIST。
使用 MFC 9.0 时,您将无法链接到标准 CRT 库。
移植到 MFC 9.0 时,请包含 # define _WIN32_WCE_PSPC。默认情况下,在 MFC 9.0 中未定义此标志。
有关更多信息,请参见设备不支持的桌面 MFC 类的列表。