当我在自己的一个工程中添加一个对话框资源,并且对该对话框添加class时,我想让该dialog从CBCGPDialog派生,但是默认的添加class的对话框中基类只能选择CDialogEx,添加完成之后再将基类修改成CBCGPDialog,发现编译错误。
根本原因是因为在添加该dialog类时,会默认在stdafx.h文件中加上这么一行。
但是在实体设计中,在某些地方使用了宏定义,默认将 CMDIFrameWnd定义成CBCGPMDIFrameWnd,
这就导致在编译#include <afxcontrolbars.h>这个头文件时,D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\afxmdichildwndex.h中的基类已经被修改成BCG的基类了,出现编译错误。
解决方案是:将 #include <afxcontrolbars.h>函数即可