功能:类似于VC6.0的界面
要求:使用dll显示
具体要求是:在主框架中显示一个左边停靠的CControlBar,CControlBar中的内容要求使用Dll中的内容,比如Dll有一个对话框,含有树控件。也就是说dll中的对话框要嵌入到CControlBar中。现遇到的问题是,在调用dll时,dll的对话框显示的位置不对,并且也不是内嵌在CControlBar中。主程序中的代码如下:
if (!m_bar.Create(_T("My Bar"), this, 123))
{
TRACE0("Failed to create mybar\n");
return -1; // fail to create
}
m_bar.SetBarStyle(m_bar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_bar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_bar,AFX_IDW_DOCKBAR_LEFT); //-----------------------加载DLL
m_listbar_Dll=LoadLibrary(_T("ListDll.dll"));
if (m_listbar_Dll==NULL)
{
AfxMessageBox("动态链接库加载失败!");
return 0;
}
typedef HWND (_stdcall *ADDPROC)(CWnd *p);
ADDPROC Add_list=(ADDPROC)GetProcAddress(m_listbar_Dll,"ShowDlg");
if (Add_list==NULL)
{
AfxMessageBox("函数地址加载失败");
FreeLibrary(m_listbar_Dll);
exit(1);
}
Add_list(&m_bar);动态链接库中有一个对话框(Style:Child,Border:None)
代码如下:
ShowDlg(CWnd *p)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CoInitialize(NULL);
AfxEnableControlContainer();
CListDlg *pDlg=new CListDlg(p);
pDlg->Create((LPCTSTR)IDD_LISTDLG,NULL);
pDlg->ShowWindow(SW_SHOW);
}
要求:使用dll显示
具体要求是:在主框架中显示一个左边停靠的CControlBar,CControlBar中的内容要求使用Dll中的内容,比如Dll有一个对话框,含有树控件。也就是说dll中的对话框要嵌入到CControlBar中。现遇到的问题是,在调用dll时,dll的对话框显示的位置不对,并且也不是内嵌在CControlBar中。主程序中的代码如下:
if (!m_bar.Create(_T("My Bar"), this, 123))
{
TRACE0("Failed to create mybar\n");
return -1; // fail to create
}
m_bar.SetBarStyle(m_bar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_bar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_bar,AFX_IDW_DOCKBAR_LEFT); //-----------------------加载DLL
m_listbar_Dll=LoadLibrary(_T("ListDll.dll"));
if (m_listbar_Dll==NULL)
{
AfxMessageBox("动态链接库加载失败!");
return 0;
}
typedef HWND (_stdcall *ADDPROC)(CWnd *p);
ADDPROC Add_list=(ADDPROC)GetProcAddress(m_listbar_Dll,"ShowDlg");
if (Add_list==NULL)
{
AfxMessageBox("函数地址加载失败");
FreeLibrary(m_listbar_Dll);
exit(1);
}
Add_list(&m_bar);动态链接库中有一个对话框(Style:Child,Border:None)
代码如下:
ShowDlg(CWnd *p)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CoInitialize(NULL);
AfxEnableControlContainer();
CListDlg *pDlg=new CListDlg(p);
pDlg->Create((LPCTSTR)IDD_LISTDLG,NULL);
pDlg->ShowWindow(SW_SHOW);
}
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法