当对话框资源在动态库中,其它项目调用对话框时需要使用AfxSetResourceHandle()切换资源。在特定情况下切换资源对话框显示仍有问题,我在COM组件调用动态库的对话框时对话框不显示。只能把对话框改为不依赖资源,通过代码动态创建的方式生成。
无资源对话框
#pragma once
#include "afxdialogex.h"
#include <afxmt.h>
#include <functional>
#include <map>
//
//无资源对话框基类
class EXT_CLASS_BaseDLL CMemoryDialog : public CDialog
{
public:
CMemoryDialog(CWnd* pParent = NULL);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
public:
CString m_StrTitle;
int DoModalMDlg();//raplace CDialog::DoModal
void CreateMDlg();//raplace CDialog::Create
DLGTEMPLATE m_dlgTempl;
protected:
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
};
从它派生出简单录入窗。