社区
C++ 语言
帖子详情
如何在DLL中创建窗口(不是弹出对话框)
zyx040404
2011-01-13 02:33:17
希望在DLL中创建一个窗口,做为子窗口供外部使用
并且还可以继承该窗口
就象windows的CDialog类
...全文
1298
49
打赏
收藏
如何在DLL中创建窗口(不是弹出对话框)
希望在DLL中创建一个窗口,做为子窗口供外部使用 并且还可以继承该窗口 就象windows的CDialog类
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
VC++如何
弹出
对话框
Dialog
// 在主
窗口
类
中
弹出
对话框
void CMainFrame::OnShowDialog() { CTestDialog dialog; if (dialog.DoModal() == IDOK) { // 用户点击了"确定",处理
对话框
结果 } } ``` 5. **
对话框
模态与非模态**: - 模态...
VC6LineNumberAddin.
dll
- 在
弹出
的"外接程序管理器"
对话框
中
,点击"添加"按钮。 - 浏览到刚才复制的"VC6LineNumberAddin.
dll
"文件位置,选
中
并打开。 - 确认插件已被添加后,勾选其复选框,然后点击"确定",完成插件的加载。 4. **设置...
qtcreator快速入门经典(绝对好用)
- 在主
窗口
中
,点击按钮
弹出
对话框
,无论何种方式关闭
对话框
,都将返回主
窗口
。 ##### 实现原理: 1. **主工程与
对话框
类**:
创建
主工程,作为主界面,然后新建
对话框
类,将其加入工程
中
。 2. **信号与槽机制**...
Qt Creator 系列教程
- 在主
窗口
中
点击按钮会
弹出
另一个
对话框
,无论该
对话框
如何关闭,都会返回主
窗口
。 **2. 实现原理** - **项目结构**:
创建
一个包含主
窗口
和
对话框
的项目。 - **
对话框
类**:自定义一个
对话框
类,并通过信号和槽...
VC实现炫眩qq界面的模拟(附源码)
现在已经完成QQ主界面的外观实现与美化了,接下来我们通过VC向导添加一个
对话框
资源并添加相应的类,命名CtalkDlg类,其功能是聊天
对话框
的对话
窗口
,也就是当我们双击用户列表的其
中
一个用户后
弹出
的聊天
窗口
....
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章