VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 2119|回复: 7

MFC DLL 创建对话框

[复制链接]
41_avatar_middle
最佳答案
0 
在线会员 发表于 2023-7-8 11:41:25 | 显示全部楼层 |阅读模式
MFC DLL 导出接口创建非模态对话,对话框可以正常显示,但是无法操作,按钮也不能点击,对话框也不能移动,哪位大神指定为什么?




上一篇:IDispatch error #3081一个ADO连接ACCESS的问题,在其它电脑可运行,联想会出现问题
下一篇:为什么我的代码运行不下去了?
11_avatar_middle
最佳答案
0 
online_vip 发表于 2023-7-8 12:19:12 | 显示全部楼层
不上源码谁能判断
41_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2023-7-8 12:43:25 | 显示全部楼层
luduxin 发表于 2023-7-8 12:19
不上源码谁能判断

#include "stdafx.h"
#include "TestDlg.h"
#include "libTest.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

EXPORT_DLL int _stdcall ShowDlg()
{
        AFX_MANAGE_STATE(AfxGetStaticModuleState());
        CTestDlg *dlg = new CTestDlg();
        dlg->Create(IDD_TESTDIALOG);
        dlg->ShowWindow(SW_SHOW);

        return 0;
}


代码很简单的,就是一个对话框,模态弹出没有任何问题,非模态就像是卡死的,不能操作
59_avatar_middle
最佳答案
4 
在线会员 发表于 2023-7-16 09:00:47 | 显示全部楼层
模态是阻塞的,非模态不阻塞,非模态窗口创建出来以后线程马上就执行结束了,没有线程来处理你的界面操作,窗口还在是因为资源没有释放窗口还在堆里
00_avatar_middle
最佳答案
2 
donate_vip 发表于 2023-7-19 17:41:10 | 显示全部楼层
你需要将窗口附加到调用dll的消息循环里面,或者自己在dll里面开一个线程跑消息循环
02_avatar_middle
最佳答案
0 
在线会员 发表于 2023-7-20 21:09:59 | 显示全部楼层
有没有添加按钮响应函数?
02_avatar_middle
最佳答案
0 
在线会员 发表于 2023-7-20 21:15:00 | 显示全部楼层
AFX_MANAGE_STATE(AfxGetStaticModuleState());为什么要切换模块状态?就算要切换应该放在创建完对话框之后吗
38_avatar_middle
最佳答案
0 
在线会员 发表于 2023-8-4 14:18:43 | 显示全部楼层
是不是把对话框窗口禁用了?
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-12-1 20:48

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表