我遇到了tutorial,显示了如何使用MFC在父对话框中嵌入子对话框。我正在使用Visual Studio 2015.我的设置如下。使用Visual Studio MFC应用程序向导创建名为TextView titleTextView = (TextView) viewHolder.getView(android.R.id.text1);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
Drawable leftDrawable = AppCompatResources
.getDrawable(context, R.drawable.ic_tickbox);
titleTextView.setCompoundDrawablesWithIntrinsicBounds(leftDrawable, null, null, null);
}
else
{
//Safely create our VectorDrawable on pre-L android versions.
Drawable leftDrawable = VectorDrawableCompat
.create(context.getResources(), R.drawable.ic_tickbox, null);
titleTextView.setCompoundDrawablesWithIntrinsicBounds(leftDrawable, null, null, null);
}
的新MFC Visual C ++项目,我选择基于对话框的应用程序,其中MFC用于共享DLL 。使用样板代码,我有一个简单的厚框对话框,没有最大化或最小化框。
在我的资源视图中,我转到Dialog编辑器编辑主对话框。我在中心添加了一个带有空白区域的图片控件,并将其命名为MFCApplication3
。这将仅用作我希望嵌入的子对话框的占位符。它看起来像:
仍然在资源视图中,我创建了一个新的Dialog。我称之为IDD_CHILD。我添加了一些组件。它看起来像这样:
现在回到解决方案资源管理器中,我使用Add Class向导添加一个类,选择添加MFC类。类名为IDC_STATIC
,基类为CChildDialog
,我使用已生成的CDialog
作为对话ID。它会生成IDD_CHILD
和关联的.cpp
文件。在.h
的构造函数中,我添加了对CChildDialog
函数的调用,因此构造函数变为:
Create
现在我修改了创建项目时自动生成的对话框代码。在CChildDialog::CChildDialog(CWnd* pParent /*=NULL*/)
: CDialog(IDD_CHILD, pParent)
{
Create(IDD_CHILD, pParent);
}
中,我添加了一个名为CMFCApplication3Dlg.h
的{{1}} private
成员,以及CChildDialog*
相关的头文件。在m_childDlg
中,我将此添加到#include
语句之前的CMFCApplication3Dlg.cpp
函数中:
OnInitDialog
现在我构建解决方案,运行它,但它看起来像在第一张图片中。子对话框的空白占位符点,但没有子对话框。我能做错什么?