社区
C++ 语言
帖子详情
如何在DLL中创建窗口(不是弹出对话框)
zyx040404
2011-01-13 02:33:17
希望在DLL中创建一个窗口,做为子窗口供外部使用
并且还可以继承该窗口
就象windows的CDialog类
...全文
1423
49
打赏
收藏
如何在DLL中创建窗口(不是弹出对话框)
希望在DLL中创建一个窗口,做为子窗口供外部使用 并且还可以继承该窗口 就象windows的CDialog类
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
49 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyx040404
2011-04-19
打赏
举报
回复
我的数据库封装代码基本上写完了,使用的是MS.NET 2003
有兴趣的可以去看看
http://topic.csdn.net/u/20110419/20/11d0ae7e-5e57-4df6-9e99-3373a7be1610.html?seed=81720230&r=72863357#r_72863357
我将来也会把base window的代码贡献出来,供大家参考
zyx040404
2011-04-08
打赏
举报
回复
因为这几天我在写一个数据库的软件,所以就写了一个base window去操作数据(add,delete,update等),现在没有用DLL,暂时算是实现了我部分功能
同时也写了一个database gateway去封装数据库,我几年前用delhpi写过一个,在我资源里有下载(有一些bug)
等我写好了,我会把代码放到网上
zyx040404
2011-04-07
打赏
举报
回复
VC是没有这个功能,我只好绕道实现了
我目前在资源文件创建了一个dialog,里面有ADD,DELETE,UPDATE等按钮
然后再创建了一些继承的类,但是没有窗口,enum指向这个基类的dialog
也能用
将来再想办法写成DLL,还有看能不能在继承的窗口中增加新的控件
枫桦沐阳
2011-04-07
打赏
举报
回复
[Quote=引用 44 楼 zyx040404 的回复:]
或者VC能不能实现一个相对简单的要求,不使用DLL
在资源文件中创建一个dialog叫dlgMy,增加几个控件
能不能再创建一个dialog,并且继承dlgMy?
这在delphi或者PB中很容易实现
[/Quote]
继承是可以的,跟继承其他的CLASS一样,但是有什么用处么?
你继承了还是得往原来的dialog里边加控件。
虽然你继承了它,但MFC是不可能帮你创建一个可见资源的COPY的。
继承了反而多了个麻烦。
如果你有些部分是窗口共通的,我建议你还是写一个继承一个CDialog的类,但是不关联资源。
所有共通的控件都在初始化的时候,动态创建,手动添加消息。
但是你想继承的东西在资源里能看见,MFC的IDE环境没提供这个功能吧?至少是我觉得不能。
枫桦沐阳
2011-04-07
打赏
举报
回复
[Quote=引用 46 楼 zyx040404 的回复:]
VC是没有这个功能,我只好绕道实现了
我目前在资源文件创建了一个dialog,里面有ADD,DELETE,UPDATE等按钮
然后再创建了一些继承的类,但是没有窗口,enum指向这个基类的dialog
也能用
将来再想办法写成DLL,还有看能不能在继承的窗口中增加新的控件
[/Quote]
呵呵,那看你自己了。
这样继承的好处就是完全一样的画面不用再做一个Dialog的resource了。
如果你觉得正好对你有用,那就先这样吧。
在继承的窗口中增加新控件的话,我觉得也只能动态创建了。
如果你实现了在资源里边添加的话,一定告诉我。
zyx040404
2011-04-05
打赏
举报
回复
或者VC能不能实现一个相对简单的要求,不使用DLL
在资源文件中创建一个dialog叫dlgMy,增加几个控件
能不能再创建一个dialog,并且继承dlgMy?
这在delphi或者PB中很容易实现
枫桦沐阳
2011-03-30
打赏
举报
回复
[Quote=引用 42 楼 zyx040404 的回复:]
ynb119
谢谢
[/Quote]
实在对不起,要令你失望了,没太看仔细,刚领会到这句的含义"在调用端的资源文件中可以看到此窗口"
这个有难度。真的能实现么? 我怀疑VC实现不了。
MFC扩展DLL对于其他的功能都能实现。
zyx040404
2011-03-29
打赏
举报
回复
ynb119
谢谢
枫桦沐阳
2011-03-28
打赏
举报
回复
[Quote=引用 40 楼 zyx040404 的回复:]
ynb119
能不能给个源代码看看?
我的邮箱zyx040404@163.com
谢谢
[/Quote]
这个比较麻烦,等我有时间给你整理一个
zyx040404
2011-03-26
打赏
举报
回复
ynb119
能不能给个源代码看看?
我的邮箱zyx040404@163.com
谢谢
枫桦沐阳
2011-03-25
打赏
举报
回复
[Quote=引用 38 楼 zyx040404 的回复:]
代码是否能实现我想要的功能?
1. 在DLL中创建一个窗口
2. 外部可以调用该DLL窗口,比如显示此窗口
3. 外部可以继承该DLL窗口,比如在此窗口上再增加其他控件,在调用端的资源文件中可以看到此窗口
4. 操作就象CDialog一样
[/Quote]
可以。
1、2 MFC扩展dll的职能所在。要完成后续功能,你的窗口类必须继承CDialog
3.把你exe里边的窗口直接改成继承你自己的MFC扩展dll的类就行了。
4.当然了。你只是加了一层继承关系,他还是CDialog
zyx040404
2011-03-24
打赏
举报
回复
[Quote=引用 37 楼 ynb119 的回复:]
引用 36 楼 zyx040404 的回复:
你有代码看看吗?
代码是有,但是发到网上很麻烦,因为我上网机器和开发机器分开的。
网上就很多关于MFC扩展Dll的资料,动手查一下。
[/Quote]
代码是否能实现我想要的功能?
1. 在DLL中创建一个窗口
2. 外部可以调用该DLL窗口,比如显示此窗口
3. 外部可以继承该DLL窗口,比如在此窗口上再增加其他控件,在调用端的资源文件中可以看到此窗口
4. 操作就象CDialog一样
枫桦沐阳
2011-03-24
打赏
举报
回复
[Quote=引用 36 楼 zyx040404 的回复:]
你有代码看看吗?
[/Quote]
代码是有,但是发到网上很麻烦,因为我上网机器和开发机器分开的。
网上就很多关于MFC扩展Dll的资料,动手查一下。
zyx040404
2011-03-24
打赏
举报
回复
[Quote=引用 33 楼 ynb119 的回复:]
引用 19 楼 szuzsq 的回复:
以vs2008为例
新建mfc dll
第2步选mfc extension dll
不要选默认的regular dll using shared dll
这里已经说得很清楚了。用MFC扩展DLL可以实现,生成以后基本上根MFC窗口程序差不多,哪有那么麻烦。。
[/Quote]
你有代码看看吗?
zyx040404
2011-03-24
打赏
举报
回复
[Quote=引用 32 楼 booklyn 的回复:]
给点分我就把代码贴出来哈哈
[/Quote]
给分不是问题啊
zhjq79
2011-03-21
打赏
举报
回复
代码在哪里呢
枫桦沐阳
2011-03-21
打赏
举报
回复
[Quote=引用 19 楼 szuzsq 的回复:]
以vs2008为例
新建mfc dll
第2步选mfc extension dll
不要选默认的regular dll using shared dll
[/Quote]
这里已经说得很清楚了。用MFC扩展DLL可以实现,生成以后基本上根MFC窗口程序差不多,哪有那么麻烦。。
booklyn
2011-03-21
打赏
举报
回复
给点分我就把代码贴出来哈哈
zyx040404
2011-03-18
打赏
举报
回复
大家看看一下网址有没有帮助
http://www.codeguru.com/cpp/w-p/dll/article.php/c107/
http://www.codeproject.com/KB/DLL/The_DLL_Hell.aspx
zyx040404
2011-03-15
打赏
举报
回复
在网上也找不到答案,没碰到懂的人
加载更多回复(28)
三.MFC
DLL
窗口
的
创建
和注入显示
本文介绍了如何
创建
和使用MFC
DLL
动态链接库,包括MFC的基础概念、
DLL
的含义以及如何通过步骤
创建
MFC
DLL
,强调了初始化函数InitInstance()和清理函数ExitInstance()的作用,并展示了如何在
DLL
中
添加
窗口
资源和利用线程
创建
显示
窗口
。
DLL
弹出
窗口
在Windows开发
中
,有时需要
DLL
弹出
窗口
供用户输入信息。通过QT
创建
一个
窗口
DLL
,将Qt应用工程属性改为
DLL
,并导出main()函数。调用时使用loadLibrary,通过各种方式获取界面信息。采用这种方式主要是因为QApplication对象需要在
创建
任何UI相关对象前初始化。
在
DLL
中
产生
对话框
的方法一(Win32
DLL
)
本文详细介绍了在
DLL
中
创建
modal和modeless
对话框
的方法,包括Win32
DLL
、MFCRegular
DLL
以及C#
Dll
的实现步骤,以及如何在MFCRegular
DLL
中
通过面向对象特性简化modeless
对话框
的
创建
。
如何调用MFC
dll
来显示其
中
的
对话框
本文介绍如何在C++程序
中
调用MFC动态链接库(
DLL
)以显示其
中
的
对话框
。在
DLL
部分,
创建
包含
对话框
的MFC类,并通过`AFX_MANAGE_STATE`确保模块状态正确切换。在调用
DLL
的部分,使用`LoadLibrary`和`GetProcAddress`函数加载并执行
DLL
中
的`ShowDlg`函数来显示
对话框
。
MFC 点击一个
对话框
按钮
弹出
另一个
对话框
本文介绍在Visual Studio 2010
中
使用MFC
创建
并从一个
对话框
弹出
另一个
对话框
的方法。主要步骤包括添加
对话框
资源、设置控件响应、编写类及调用DoModal函数实现模态
对话框
的显示。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章