如何在DLL里建立对话框?

koma 2000-03-11 07:18:00
...全文
183 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZPoint 2000-03-12
  • 打赏
  • 举报
回复
有一个简单的方法:
在DLLs中建立DLG的class, 然后建立一个导出函数:
extern "C" BOOL PASCAL EXPORT showdlg()
{
CMyDlg pDlg;
pDlg.DoModal();
}
在你的程序中只需调用showdlg()函数。
——这是你要的吗?
wzq 2000-03-12
  • 打赏
  • 举报
回复
注意对话框中的资源ID不要和主程序冲突。
rosement 2000-03-12
  • 打赏
  • 举报
回复
使用最简单的方法是用VC的APPWIZARD建立一个MFC APPWIZARD(DLL)的程序,然后你就可以很方便的使用对话框了,插入对话框,为对话框建立一个新的类。再在CWINAPP中写一个输出函数如:
extern "C" BOOL PASCAL EXPORT ShowForm()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDialogDLL dlg;
dlg.DoModal();
return TRUE;
}
然后在*.def文件中的
EXPORTS
; Explicit exports can go here
ShowForm;
写入ShowForm,编译程序,生成DLL.
测试DLL,写另一个程序:
void CTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
typedef BOOL( * ShowRosement)(void);
ShowRosement Func1;
HINSTANCE hRosement=NULL;
hRosement=LoadLibrary("DialogDLL.dll");
Func1=(ShowRosement)GetProcAddress(hRosement,"ShowForm");
Func1();
CView::OnLButtonDown(nFlags, point);
}
注意DIALOGDLL.DLL应该在WINDOWS的系统目录下,或在该C++程序下的DEBUG目录下,我已经测试过了,一切OK!
david 2000-03-12
  • 打赏
  • 举报
回复
不知你的DLL是什么类型的.
一般和普通情况差不多,插入对话框资源,生成基于CDialog的类,
声明变量后,再调用函数中用DoModal显示即可.
chkys 2000-03-12
  • 打赏
  • 举报
回复
要注意在建立的类里对resource.h的引用
chb 2000-03-11
  • 打赏
  • 举报
回复
先在资源中insert一个对话框,如果双击对话框生成对话框类
在dll的XXXapp.cpp中增加一个导出函数,函数中声明对话框类
然后调用DoModal()方法显示对话框就行了
Un1 2000-03-11
  • 打赏
  • 举报
回复
什么意思?

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧