MFC扩展DLL中创建非模态对话框在release下崩溃 [问题点数:60分,无满意结帖,结帖人BestRiven999]

Bbs1
本版专家分:0
结帖率 66.67%
Bbs12
本版专家分:361615
版主
Blank
名人 2013年 荣获名人称号
Blank
探花 2011年 总版技术专家分年内排行榜第三
2010年 总版技术专家分年内排行榜第三
Blank
进士 2012年 总版技术专家分年内排行榜第五
Blank
金牌 2012年1月 总版技术专家分月排行榜第一
Bbs5
本版专家分:4269
Bbs1
本版专家分:0
Bbs9
本版专家分:87220
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs1
本版专家分:0
如何在扩展DLL中创建非模态对话框
我使用MapX,用的是MFC<em>扩展</em>DLL,做成动态库的形式,(用规则DLL总出问题)rnrn在MFC<em>扩展</em>DLL中,<em>创建</em>模态对话框是没问题,关键是我要用非模态的。rnrn用非模态,中是闪一下就没有了。rnrnAFX_MANAGE_STATE(AfxGetAppModuleState()); rnCSignalDialog* dlg; rndlg=new CSignalDialog; rndlg->Create(IDD_SIGNALSET); rndlg->ShowWindow(SW_SHOW);rnrn上面的一句AFX_MANAGE_STATE(AfxGetAppModuleState()); 开始是AFX_MANAGE_STATE(AfxGetStaticModuleState());总出错,后来改成现在的样式,都不行,不要这句也一样。闪一下就没有了。rnrn请求大师指点一二。rnrn<em>扩展</em>DLL下的非模态怎么搞才对头了
MFC非模态对话框在DLL中的调用
rnvoid Dll_DoModal()rnrnrnCDlg Dlg;rnDlg.DoModal();rn/*CDlg * pDlg = new CDlg();rnif (pDlg->GetSafeHwnd() == 0)rnrn pDlg->Create(IDC_DIALOG);rnrnpDlg->Show(SW_SHOW);*/rnrnrn模态能够实现,非模态该怎么写?rn先谢过了
在DLL中创建非模态对话框的问题
新建了一个工程A(MFC DLL),Regular <em>dll</em> using shared MFC DLL,插入一个对话框资源,并生成CPanel类。定义全局函数: rnCDialog __declspec(<em>dll</em>export) *Opendlg(CWnd *parent) rn rnAFX_MANAGE_STATE(AfxGetStaticModuleState()); rnCPanel *dlg=new CPanel(); rndlg->Create(IDD_PANEL,parent); rndlg->ShowWindow(SW_SHOW); rnreturn dlg; rn rn另建一个工程B(MFC EXE),基于对话框,在OnInitDialog中Opendlg(this),就会出错。为什么? rn如果把A编译成Release版本却没有问题!? rn还有如果改成弹出模式对话框也不会出错 rn
MFC在dll工程里创建非模态对话框
在MFC exe工程里<em>创建</em>一个<em>非模态对话框</em>是比较简单的,举个例子: CCDlgBroadcast* m_pDlgBroadcast = new CDlgBroadcast(); m_pDlgBroadcast->Create(CDlgBroadcast::IDD); 在MFC <em>dll</em>工程里如果还如上例一样,在执行Create函数时则会报“读取地址错误” 这个时候需要在前面多加一行代码:
MFC规则DLL创建非模态对话框问题
extern "C" _declspec(<em>dll</em>export) void ShowDlg(void)rnrnAFX_MANAGE_STATE(AfxGetStaticModuleState());rnCMfc<em>dll</em> *pdlg=new CMfc<em>dll</em>;rnpdlg->Create(IDD_DIALOG1);rnpdlg->ShowWindow(SW_SHOW);rnrnrnrn用以上代码<em>创建</em><em>非模态对话框</em>,调用的时候会出现错误 或者是一闪而过,请各位高手帮忙解决一下。rn
如何在动态库中使用对话框资源(转)
在CSDN论坛上最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32DLL和MFC DLL两个方面来分析并解决这个问题。 1.Win32 DLL     在Win32DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者CreateDialo
在动态库中创建非模态对话框delete时为什么会出错?
我的DLL中输出一个函数,输出函数内容如下: exterm "c" __declspec(<em>dll</em>import) void MyFunc() { AFX_MANAGE_STATE(AfxGetStati
动态库(dll)中,创建窗口消息响应问题.
请教,主程序中有窗口容器,如标签控件,可以支持加入多个子窗口.在主程序中<em>创建</em>了几个子窗口,加入其中都没有问题.通过调用动态库,获得其中<em>创建</em>的子窗口(传递父窗口指针或句柄都试过),并加入容器中,一切正常
MFC 创建带窗口的dll链接库.窗口为非模态窗口
语言:VS2008 代码实现功能:<em>创建</em>一个MFC Regular Dll链接库。要求链接库注入到目标进城后能调出Dll内部的MFC窗口.目标进程为第三方进程程序 步骤: 1,<em>创建</em>项目->MFC Dll; 2,在自动生成的项目代码中添加 Dialog对话框资源. 3,为对话框资源添加 窗口类 4,声明一个呼出窗口函数.startmythread.此函数可以导出也可以不导出  导出
显示DLL中的非模态对话框
目前碰到的问题是需要显示某个DLL中的对话框,并且让它附着在EXE中的对话框窗体上。在网上搜到一份显示模态对话框的代码,稍作改动保存下来。简单地列一下<em>dll</em>和exe中的相关代码。<em>dll</em>中extern "C" __declspec(<em>dll</em>export) void ShowModelessDialogByHandle(DWORD dwPointer){ AFX_MANAGE_S
VC2008 中创建扩展MFC DLL 的问题
1、<em>扩展</em>MFC DLL工程中的文件结构是怎么组织的;rn2、默认工程自动把DllMain 放到了一个独立的<em>dll</em>main.cpp文件中,如果要向这个工程添加 共享数据段应该怎么添加:rn比如:<em>创建</em>一个名为TestDll的工程,VC2008自动生成了几个文件,其中有<em>dll</em>main.cpp、TestDll.cpp、TestDll.def等文件,应该怎么向工程中添加共享数据段和其他功能函数,以及添加到什么地方呢?
MFC创建非模态对话框
操作步骤 1、参考模态对话框的操作步骤 说明 最后一步不同,添加的代码不一样 2、添加弹出模态对话框代码 引出问题 图中在单击按钮后,会弹出一个对话框,但会一闪而过 原因 对象abc在栈上,该消息处理函数调用结束返回后,对象abc销毁,也即<em>非模态对话框</em>销毁 解决办法 <em>创建</em>为全局变量或定义到该按钮所属类中(作为该类的成员变量) 引出问题 按照上例方式,解决上面的问题后,有...
MFC创建非模态对话框问题
CTestDlg *dlg = new CTestDlg;rndlg->Create(IDD_DIALOG_TE,this);rndlg->ShowWindow(SW_SHOW);rnrnrn以上代码会报rnwarning C4305: 'initializing' : truncation from 'int' to 'short'rnwarning C4309: 'initializing' : truncation of constant valuernrn请问我该如何改才能不显示这样的警告呢? <- 除了屏蔽警告rn很明显是int 转 short 类型 丢失长度了。rn
MFC非模态对话框创建及显示
我们需要在原对话框CMFC_Kinect_TrackingDlg设计一个按钮,点击这个按钮后弹出一个<em>非模态对话框</em>Color_Based_SettingDlg, 并且同时两个对话框都是激活状态,都可以自由操作,步骤入下: 1.在头文件MFC_Kinect_TrackingDlg.h中包含Color_Based_SettingDlg.h 2.在MFC_Kinect_TrackingDlg.h中的
MFC模态与非模态对话框创建
MFC模态与<em>非模态对话框</em>的<em>创建</em>有截图详细步骤
mfc dll显示非模态对话框问题
在<em>mfc</em> <em>dll</em>的InitInstance()方法中<em>创建</em>对话框实力并且进行显示,但是窗体会一闪而过, CDLGTEST *dlg; BOOL CTestApp::InitInstance() { dl
请教:如何在DLL中使用非模态对话框
如何实现在应用程序中以无模态方式调用包含在DLL中的对话框? 问题提出: 正常使用<em>dll</em>中的资源时,应该先切换到<em>dll</em>的资源再使用,使用完毕后再切换到应用程序的资源。这在使用模态对话框时没有问题。 但
MFC之如何弹出模态窗口
首先,说一下什么是模态窗口、什么是非模态窗口。 模态窗口:弹出之后只能在该窗口内操作,只有关闭该窗口之后才能进行对其他窗口进行操作。否则为非模态窗口。 当我们在做MFC设计的时候,我们也许想要点击某个按钮让对话框弹出一个窗口,比如展示该程序的使用方法、展示版本信息、对用户进行提示等等。要实现这个功能,要经过以下几步: 第一,在资源视图下右击Dialog,添加资源,然后新建一个Dialog(或
MFC—对话框程序—模式对话框与非模式对话框
一、根据主窗口类型,MFC软件工程可以分为以下几种架构模型: 1、SDI(Single Document Interface):单文档界面,一个主框架窗口下只能编辑一份文档。 例如:记事本和画笔等。 2、MDI(Multiple Document Interface):多文档界面,一个主框架窗口下可以同时编辑多份文档。 例如:VC++6.0,Photoshop等软件。 3、基于对话框的软件模型...
关于在MFC扩展dll中导出非模态对话框的问题。
我在MFC<em>扩展</em><em>dll</em>中建了一个<em>非模态对话框</em>,并且我想用定时器控制这个对话框,让它按周期的显示,我不知道该怎么做,哪位高手能指点一下,在应用程序中怎样才能导出这个对话框呢,定时器函数可以作为导出函数吗?定时器函数的参数窗口句柄不能用this了吧?回调函数怎么写啊?在线等...
MFC Regular Dll中如何弹出非模态对话框??
参考http://blog.csdn.net/hailongchang/archive/2006/12/26/1462316.aspx此文章时,按照作者思路遇到些问题.rnpDlg在什么地方初始化??rnrn如果有其它的方法也可以说下,谢谢大家
mfc创建CTreeCtrl崩溃
程序这么执行的rnDlg3UpFile UploadLogin;rnint nResponse=UploadLogin.DoModal();rn在Dlg3UpFile::OnInitDialog()里<em>创建</em>CTreeCtrl,代码如下rn然后EndDialog(),通过其他窗口在次调用该窗口,发生<em>崩溃</em>Debug Assertion Failed!rn代码rn[code=c]rnm_webTree.Create(WS_BORDER|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT|WS_VISIBLE,TreeRect,this,ID_TREE);rnHICON hIcon[3]; // 图标句柄数组rnHTREEITEM hRoot; // 树的根节点的句柄rnHTREEITEM hCataItem; // 可表示任一分类节点的句柄rnHTREEITEM hArtItem; // 可表示任一文章节点的句柄rn// 加载三个图标,并将它们的句柄保存到数组rnhIcon[0] = theApp.LoadIcon(IDI_WEB_ICON);rnhIcon[1] = theApp.LoadIcon(IDI_CATALOG_ICON);rnhIcon[2] = theApp.LoadIcon(IDI_ARTICLE_ICON);rn// <em>创建</em>图像序列 CImageList 对象rnm_imageList.Create(32, 32, ILC_COLOR32, 3, 3);rn// 将三个图标添加到图像序列rnfor (int i=0; i), 2, 2, hCataItem, TVI_LAST); rn[/code]
MFC创建非模态对话框(基于VS2010)
<em>非模态对话框</em>的<em>创建</em> 本文结合具体项目完成<em>非模态对话框</em>的<em>创建</em>,开始是要解决模态对话框造成界面卡死的问题,想换成<em>非模态对话框</em>的形式。 1 首先我在VS环境下新建了一个MFC项目,命名为CloseFace根据自己需要添加控件和相关代码,我用的只是一个临时的按钮,所以界面比较简单,如下图。 2 新项目<em>创建</em>成功后,我把新<em>创建</em>的项目添加到自己最终要用的项目里面(也可以不添加),命名为Realname,在...
mfcdll创建//MFC 扩展DLL与共享MFC DLL有什么区别?
[img=http://img.my.csdn.net/uploads/201301/29/1359437763_1870.png][/img]
一个关于创建非模态对话框的问题
首先要把CD2 dlg;写成全局,因为button这个函数是一次性运行,运行完CD2 dlg这个资源就销毁了,导致点击以后对话框一闪而过,可以写在cpp的include的下面其次if(!dlg.m_hWnd) 的情况下才dlg.Create(IDD_DIALOG2,this);否则第一次可以正常弹出,第二次点的时候必然报错,因为不能重复create最后不需要dlg.Detach();据我所知这个...
mfc的子线程中创建非模态的对话框出现的问题
前几天在编写一个程序的时候,需要在一个
非模态对话框DLL
最近在弄一个DLL,涉及到一个<em>非模态对话框</em> 对话框的建立无区模态非模态,区别在于<em>创建</em>的方式。模态对话框是使用DoModal的方式<em>创建</em>,而<em>非模态对话框</em>的方式是: CDialog *pDlg = new CDialog(父窗口指针); pDlg->Create(ID, 父窗口指针); pDlg->ShowWindow(SW_SHOW); 这样<em>非模态对话框</em>便显示出来了 然后…… 关闭对话框
dll中到出非模态对话框
static CDilog * instance==NUll; 到出函数 __declspec(<em>dll</em>export) CDialog * show( ); 中<em>创建</em>一个实例, 动态载入这个<em>dll</em>,显示d
在DLL中创建一个嵌套的对话框!50分求助!
我建立了一个DialogBase的工程,在主Dialogg资源上添加了一个按钮。我想按下这个按钮后能够打开一个DLL,调用该DLL的MyCreateDialog函数,能后在主Dialog的一个用STA
MFC菜鸟,请问,非模态对话框创建
我在一个button里面,<em>创建</em>了一个<em>非模态对话框</em>rnrn Dialog1 *pDlg=new Dialog1;rn pDlg->Create(IDD_DIALOG1,this); rn pDlg->ShowWindow(SW_SHOW);rn rnrnrn我想让pDlg变成全局变量,而且打开一次后,就不能再打开了;rn如果关闭以后,那么可以再打开,但是变量的值等;保持上一次留下的结果;rnrn请高手指点;
VS2013 使用MFC创建非模态对话框
新建基于对话框的MFC项目Demo 删除所有控件,工具箱添加一个新的按钮Button1 在资源视图中dialog插入新dialog,将其ID命名为IDD_TEST 用类向导为IDD_TEST添加新类test.h 为Demodlg类包含#include"test.h",添加指向test类的指针m_test,添加析构函数 class CDemoDlg : public CDialogEx
关于DLL中创建 非模态对话框 的问题。
我要使用的一个DLL中要<em>创建</em>一个<em>非模态对话框</em>,我只能拿到该对话框的句柄。rnrn是不是应该在主程序中为他加一个IsDialogMessage(hDLLDialog,&msg); rn主程序是MFC框架的,这个东西应该加在哪里? rn高人指点一下。谢了。
MFC 工程中如何创建非模态对话框
我想在对话框程序中建<em>非模态对话框</em>怎么办,各位大侠,帮帮忙!!!!
MFC中创建非模态对话框,在线等待
现在要用MFC<em>创建</em><em>非模态对话框</em>用于作为播放视频的窗口,不要框体中的caption,父窗口移动时这些非模态子对话框能一起移动。最好能有代码,如果有类似实例的话更好,非常感谢!
关于tabControl重绘问题
要实现红色圈起的效果时遇到如下图的问题: 改如何才能正确的显示文字。网上说通过重绘可以解决,但还没找到具体的方法。 求高手指教。
关于非模态对话框创建释放与释放
-
非模态对话框创建和销毁过程
<em>创建</em>非模态对画框的过程:见http://blog.csdn.net/xiaominggunchuqu/article/details/49895325   一个非模态的MFC 窗口的销毁过程: 假设自己通过new<em>创建</em>了一个窗口对象pWnd,然后pWnd->Create。则销毁窗口的调用次序: 1.      手工调用pWnd->DestroyWindow(); // 一般在对话框类中的
MFC多线程创建非模态对话框(防止一闪而逝)
主对话框单击事件里使用多线程<em>创建</em>对话框B,正常情况见B对话框都是闪现一次,无法长期停留。本代码利用MSG防止了此现象的发生,适合初学多线程的新手。
MFC 创建非模态对话框和销毁过程
今天项目中遇到的问题,记录下来,做个总结。 一个简单的目的是<em>创建</em>一个<em>非模态对话框</em>并在对话框关闭后将其销毁。 这里的销毁包括:销毁对话框对象资源和对话框对象指针; 首先说<em>创建</em>对话框: 一、模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。 点击模态对话框中的OK按钮,模态对话框会被销
MFC 中创建非模态对话框的若干注意事项
我先前按照网上的单一<em>创建</em>教程,在<em>mfc</em>工程中生成<em>非模态对话框</em>,但是一直出现问题,具体问题是什么已经记不起来了。我把正确的<em>创建</em>方式写在这里。我的主窗口类为CADlg,子窗口类为CBDlg,我想在点击类CADlg窗口的一个控件的时候以非模态方式弹出关联了类CBDlg的子窗口。具体如下:1、为子窗口添加类CBDlg,并在主类CADlg的头文件中包含类CBDlg的头文件;2、在主类CADlg的头文件中添加
MFC DLL 加载窗口资源崩溃!RELEASE版本。。神奇的问题
VS2010....为何? 我关闭的时候<em>崩溃</em>,请注意 是RELEASE版本<em>崩溃</em>rnrnhttp://download.csdn.net/detail/aaadddzxc/7320321rnrn在导出函数实现的地方替换为rnrn[code=c]extern "C" __declspec(<em>dll</em>export) BOOL __stdcall Init_Dlg()rnrn AFX_MANAGE_STATE(AfxGetStaticModuleState());rn m_Dlg.Create(IDD_DIALOG1);rn return TRUE;rn[/code]rnrn很简单的代码。<em>创建</em>了一个MFC DLL ,然后加载了一个DIALOG 资源,为他<em>创建</em>一个类。rn然后通过导出番薯粉 如上,加载这个窗口。。。rn我发现只要是使用静态的MFC编写 不选择共享MFC DLL 的话关闭就<em>崩溃</em>,为何会这样????rnrnrnrn
MFC中模态和非模态对话框
参考博客:http://www.cnblogs.com/ikangkang/p/5965168.html 1.简述   1.1模态对话框(model dialog box)     当模态对话框显示时,程序会暂停执行,直到关闭这个模态对话框之后,才能执行程序中的其他任务。点击模态对话框中的OK按钮,模态对话框会被销毁。   1.2<em>非模态对话框</em>(modeless dialog
MFC常规DLL调用MFC扩展DLL
我的程序中当前存在这样的问题:rn 通过CWnd::FromHandle()函数不能正确地将窗口句柄hWnd找到对应的CWnd对象。即窗口handle和CWnd对象的映射表(map)似已毁坏。rn 原因可能是<em>dll</em>调用出的问题。rn 请问:rn 1.MFC<em>扩展</em>DLL可以调用其它MFC<em>扩展</em>DLL吗?rn 2.MFC常规DLL(或ActiveX控件)可以调用MFC<em>扩展</em>DLL吗?rnrn以上调用需要注意什么问题?rnrn在新建一个regular(常规)DLL时,会有如下语句:rnrn // Insert this DLL into the resource chainrn // NOTE: If this Extension DLL is being implicitly linked to byrn // an MFC Regular DLL (such as an ActiveX Control)rn // instead of an MFC application, then you will want torn // remove this line from DllMain and put it in a separatern // function exported from this Extension DLL. The Regular DLLrn // that uses this Extension DLL should then explicitly call thatrn // function to initialize this Extension DLL. Otherwise,rn // the CDynLinkLibrary object will not be attached to thern // Regular DLL's resource chain, and serious problems willrn // result.rnrn它提示我们<em>dll</em>调用时要注意什么呢?
规则的MFC DLL与扩展的MFC DLL 区别
请不要复制,真正懂得人来说,rn网上很多人说 规则的MFC DLL接口中不能有MFC类 要导出的接口返回值也不能是MFC类,rn但本人亲测,这句话是错误的,一个规则的MFC Dllrn导出一个rnCWnd *CreateApi(CWnd *p);rn这个导出函数是没有任何问题的,并且可以在其他MFC程序中调用,rnrn求大神解释,这两种DLL到底有什么本质的区别?
mfc弹出非模态对话框出错
-
从DLL中创建对话框并显示的资源
从DLL中<em>创建</em>对话框并显示 从DLL中<em>创建</em>对话框并显示 从DLL中<em>创建</em>对话框并显示
DLL中创建窗口,实现窗口消息处理
问题描述:我<em>创建</em>了一DLL工程,需要在DLL中<em>创建</em>一个窗口,然后实现其窗口消息处理。用InitMsgWindow注册窗口类、<em>创建</em>窗口,经过调试,<em>创建</em>窗口成功(g_wndMsg不为空,GetLastEr
mfc对话框create时候崩溃问题
编译环境:vs2010 首先我有一个<em>创建</em>对话框的类,class JobDlg 正常情况下通过以下代码可以实现对话框的<em>创建</em> JobDlg* jobdlg = new JobDlg; if (jobdlg
VC非模态对话框Create()函数报错 求助 谢谢
-
MFC中的非模态对话框
1、CDLGShow dlg 写到.h做成员2、dlg.create 写到初始化 OnInitDialog() 保证只<em>创建</em>一次3、dlg.ShowWindow() 
DLL中显示非模态对话框
在DLL中通过如下的代码<em>创建</em><em>非模态对话框</em>。用vc6.0编译DLL和调用程序。可以正常显示。但是换成vs2008编译,<em>非模态对话框</em>要么一闪而过,要么会僵住,整个程序都down掉。vc6.0和vs2008的处理有什么不同吗?[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/7.gif][/img]rnlong ModalessBox2(HWND pParent, ...)rnrn CModalessDlg* dlg=new CModalessDlg();rn ...rn dlg->m_pParent = CWnd::FromHandle(pParent);rn rn dlg->Create(IDD_MODAL,NULL);rn dlg->ShowWindow(SW_SHOW);rnrn return (long)dlg->m_hWnd;rn
dll中倒出非模态对话框
使用<em>扩展</em><em>dll</em>rn CDialog* show(CWnd* p_cwnd )rnrn// AFX_MANAGE_STATE(AfxGetStaticModuleState( ))rn if(instance==NULL)rn rn instance=new Dlg_Manage(p_cwnd);rn tryrn instance->Create(IDD_DLG_MANAGE_DIALOG,p_cwnd);rn catch(...)rn rn delete instance ;rn instance=NULL ;rn rn rn return instance ;rn rn加上这句就连接出错 AFX_MANAGE_STATE(AfxGetStaticModuleState( ))rn错误代码rnerror LNK2005: _DllMain@12 already defined in Manage_dialog.objrn<em>mfc</em>s42d.lib(<em>dll</em>modul.obj) : error LNK2005: __pRawDllMain already defined in Manage_dialog.objrn如果去掉 AFX_MANAGE_STATE(AfxGetStaticModuleState( ))rninstance->Create(IDD_DLG_MANAGE_DIALOG,p_cwnd);rn抛出异常?rn真是搞不懂,各位大虾帮帮忙啊!分不够,可以++!rnrnrn rn
MFC 扩展DLL(导出类)
教你首次使用 MFC <em>扩展</em>DLL(导出类)的Demo
扩展mfc dll的问题
在<em>dll</em>中的一个对话框类,把.h文件include到exe工程的app.cpp中,编译时对话框的id不认识,我在资源中new一个就行了,这样做对不对?还是有其他的办法?<em>dll</em>.lib已经加到工程中了。
MFC创建模态对话框和非模态对话框的方法
在MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是<em>非模态对话框</em>(modeless dialog box)。本文对此分别简述其<em>创建</em>方法。一、模态对话框(model dialog box)在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。点击模态对话框中的OK按钮,模态对话框会被销毁。<em>创建</em>一个模态对话框的代码如下所示:...
MFC中的模态对话框和非模态对话框
MFC笔记之模态对话框和<em>非模态对话框</em> 迫于科研的进度压力,我还是选择了MFC最为工具去开发设备调试软件,最初想用Qt来创新一下,然而串口的通信一直没有成功,而且周围没有人用Qt使得我在遇到问题无法快速的解决,最终我屈服于现实了. 今天开始速食MFC,其实也很简单,就是感觉没有Qt好用. 1.建立模态对话框 步骤: 新建对话框窗口,更改ID 右键添加类 在主对话框中添加消息响应函数 ...
MFC中如何创建一个非模态对话框
1.首先按照类向导生成一个程序2.添加资源,插入对话框3.在主对话框中添加一个按钮并添加消息映射3.为对话框生成对应的类CModeDlg4.在界面类中添加CModeDlg *m_pDlg; 5.在自己添加的按钮消息函数中添加如下语句void MFCApplication1Dlg::OnBnClickedMode() { m_pDlg=new CModeDlg; m_pDlg-&amp;gt;Create(...
MFC创建模态对话框并显示的具体详细步骤
小白一个,前几天学习如何<em>创建</em>对话框,我看学习视频上讲的具体步骤是: 1.添加一个新的对话框资源并用对话框编辑器设计对话框 2.<em>创建</em>新的对话框类,该类应该从CDialog类派生 3.使用classwiz
MFC 扩展DLL对话框
网上各位达人,在下利用MFC <em>扩展</em>DLL和别人一起为一个程序的各组菜单写响应对话框,主对话框有一TabCtrl控件,分别显示不同页面,启动时显示主页面,上面有多个checkbox,每次点击,增加或消去一个对应标签,再单击标签可显示响应对话框页面。现在点击checkbox,就出现报错Unhandled exception in ...exe(MFC42.DLL) acess violation,如下为checkbox的单击响应函数:rn void CCreatUserMainPage::OnCheck1() rnrn CCreatUser * pWnd=(CCreatUser*)AfxGetApp()->m_pMainWnd->GetDlgItem(IDD_creatuser); rn UpdateData(true);rn if (m_check1==1) rn rn m_itemposition++;//现在标签位置rn pWnd->m_sheet.InsertItem( m_itemposition, "表1");显示标签rn m_curpos[1]=m_itemposition;rn int curpos=m_itemposition;rn elsern rn pWnd->m_sheet.DeleteItem(m_curpos[1]);rn pWnd->m_sheet.SetRect();rn for (int i=1;im_curpos[1])rn m_curpos[i]--;rn rn m_itemposition--;rn rnrn我写了一个基于CTabCtrlCTabsheet类控制TabCtrl控件,实现TabCtrl上的标签的切换,点击标签表单显示等功能。rn 主窗口显示rnBOOL CCreatUser::OnInitDialog() rnrn CDialog::OnInitDialog();rn m_sheet.AddPage("用户基本资料", &m_Mpage,IDD_CreatUserMainPage);//添加用户基本资料页rn m_sheet.AddPage("表1", &m_page1, IDD_CreatUserPage);//添加表1rn m_sheet.AddPage("表2", &m_page2, IDD_CreatUserPage);//添加表页rn 。。。。。。。。。rn m_sheet.Show();//开始只显示用户基本资料页,其他页(分页)<em>创建</em>后隐藏rn return TRUE; // return TRUE unless you set the focus to a controlrn // EXCEPTION: OCX Property Pages should return FALSErnrn 上述代码中,m_sheet是CreatUser(主对话框类)的CTabsheet类成员,与Tabctrl控件关联,OnInitDialog函数没有问题,程序能见到初始对话框。rncheckbox位于用户资料页m_Mainpage中,开始可见,点击checkbox欲在Tabctrl上增加一个标签,再点击则消失。rn debug时报错出现在oncheck1()中代码段pWnd->m_sheet.InsertItem( m_itemposition, "表1")处,callstack处显示 ASSERT(::IsWindow(m_hWnd)); return CTabCtrl::InsertItem(TCIF_TEXT, nItem, lpszItem, 0, 0); ,rnrn 我试用GetParent()想得到主窗口的指针以对其上的TabCtrl控件进行操作,结果一样糟糕rn <em>dll</em>的接口函数为:rnextern "C" __declspec(<em>dll</em>export) void ShowCreatUser() //建户rn rnAFX_MANAGE_STATE(AfxGetStaticModuleState()); rnCCreatUser creatUser; rncreatUser.DoModal(); rn rn如果不采用<em>dll</em><em>扩展</em>方式,程序可以运行,rnUnhandled exception应该是指针处理的问题吧,小弟刚学VC脑子还不太清楚,只知闷头写,看了很多例子,搞不清是主窗口和子窗口之间的问题,还是MFc<em>扩展</em><em>dll</em>的问题,希望那位大佬指点一二,感激不尽。rnrn
关于MFC扩展DLL
我想建立一个MFC<em>扩展</em>DLL,其中用到工具条等资源,但我不知在CLIENT端怎样调用!请各位大侠指点一二!!!
MFC扩展DLL问题
<em>扩展</em>DLL里的类派生自外部类的问题rn[code=C/C++]#pragma oncern#include "Base.h"//DLL外部的类rnclass CDriver :rn public CBasernrnpublic:rn CDriver(void);rnpublic:rn ~CDriver(void);rn;rn[/code]rnrn1>Driver.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CBase::CBase(void)" (??0CBase@@QAE@XZ),该符号在函数 "public: __thiscall CDriver::CDriver(void)" (??0CDriver@@QAE@XZ) 中被引用rn1>Driver.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall CBase::~CBase(void)" (??1CBase@@QAE@XZ),该符号在函数 "public: __thiscall CDriver::~CDriver(void)" (??1CDriver@@QAE@XZ) 中被引用rnrnrnDLL里的类如何才能使用外部的类?
MFC扩展DLL
一开始自定义了一个类,进行四则运算,乘法按钮控件的ID 写错了,我就删除了,新添加了一个,但运行的时候说不是我新建的类的成员,怎么改,新手跪求解,急等
非模态对话框和模态对话框_创建
一、<em>非模态对话框</em>:<em>创建</em>后,主程序还可以运行。 <em>创建</em>步骤如下: 1.1先建立一个基本对话框MFC工程,在资源列表添加一个对话框资源 1.2将<em>创建</em>的对话框修改名字和ID,比如将ID名为:IDD_TIP_DIALOG   1.3给对话框添加一个类,类名称为:TipDlg。(注意:TipDlg类的基类为CDialog) 则在解决方案列表可以看到<em>创建</em>了一个TipDlg.h
MFC模态对话框和非模态对话框
MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是<em>非模态对话框</em>(modeless dialog box)。  一、模态对话框(model dialog box)         在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消
C++ MFC / VS2013 之十(对话框:非模态对话框创建及显示)
<em>非模态对话框</em>的<em>创建</em>及显示      上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--<em>非模态对话框</em>的<em>创建</em>及显示。        已经说过,<em>非模态对话框</em>显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切换。鸡啄米会将上一讲中<em>创建</em>的Tip模态对话框改为<em>非模态对话框</em>,让大家看下效果。 一. <em>非模态对话框</em>的对话框资源和对话框类     实际上,模态对话框和非
MFC非模态对话框中,点击Button启动另一个模态对话框,弹出“不支持尝试执行的操作”
&amp;gt;&amp;gt;===问题现象===&amp;lt;&amp;lt; 正在做的一个命令启动后,会打开一个<em>非模态对话框</em>A,点击其中的一个Button按钮,会DoModal()另一个模态对话框B。 但从某一个变更集开始,启动命令点击Button后会弹出“不支持尝试执行的操作”的提示对话框,点该对话框的“确定”后,继续弹出“不支持尝试执行的操作”。 对话框B在多个地方都会启动,也有从其他对话框DoModal()打...
MFC扩展DLL 源代码
MFC<em>扩展</em>DLL的源程序,《零基础学习VC++》光盘中的资源
MFC扩展DLL导出类
MFC<em>扩展</em>DLL导出类 一步一步实现MFC导出类和对话框的例子
关于mfc扩展dll
在<em>扩展</em><em>dll</em>里面的资源 是怎样使用的?rn小弟我建立了一个<em>mfc</em> ext <em>dll</em> 建立了一个对话框资源 并生成了一个类,并且把这个类(MyDlg)输出;rn但是 在另一个工程里面输入这个类 rnMyDlg m_dlg;rnm_dlg.DoModal();rn编译器 告诉我 没有定义 IDD_DIALOG_MY(这是对话框的资源ID)rn我按照<em>dll</em>工程的定义重新在app工程里面定义了 define IDD_DIALOG_MY 9000rn但是在运行程序的时候 发现 没有显示对话框 并且 DoModal()的返回值是0rn哥哥姐姐们要帮帮我 看看这是怎么回事呀? 谁有好的办法可以解决呢?
MFC扩展DLL例程
基于MFC做的<em>扩展</em>动态链接库,详细编写步骤看我的博客《MFC下DLL编程(图解)》
MFC--非模态对话框创建
关注微信公众号“二进制小站”~~获取更多分析~~(文末二维码~~) 文章转自:http://www.cnblogs.com/letben/p/5328334.html 按照我们的之前的做法,先新建工程。 把基本的内容都添加上。 形成这样一个样子: 并且进行试运行,让程序能够完成加法运算。 值的注意的是,静态文本那里要改一下名字,否则无法将成员变量进行添加。 前期准备: ...
C++/MFC-几种常用控件
VS2010/MFC编程入门之二十(常用控件:静态文本框) VS2010/MFC编程入门之二十一(常用控件:编辑框Edit Control) VS2010/MFC编程入门之二十二(常用控件:按钮控件Button、Radio Button和Check Box) VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例) VS2010/MFC编程入
MFC学习笔记之:创建模态对话框和非模态对话框
       对话框分两类:模态(Modal)对话框和非模态(Modeless)对话框        1、模态对话框是现实时候无法执行其他操作,<em>创建</em>模态对话框的方法:      先将对话框关联类,如:CTestDlg 。在点击的cpp文件中加入头文件#include “testdlg.h”,在点击OnClicked函数中:     void OnClicked { CTestDlg dlg; dlg.Create(IDD_TESTDLG,this); dlg.ShowWindow(SW_
mfc 扩展dll的问题
我新建了一个<em>mfc</em><em>扩展</em><em>dll</em>的项目,rn里面除了系统自己生成的代码外,rn我新建了一个从cstatic派生的类,rnclass AFX_EXT_CLASS CMyStatic : public CStaticrnrnrn当然,这个类也是用向导添加的,我只是加了一个afx_ext_class关键字而已。rn编译,没问题,生成了对应的<em>dll</em>和lib文件。rn在另一个<em>mfc</em>程序里面,使用这个导出类。rnCMyStatic m_cic;rnBOOL bRet = m_cic.Create(NULL, WS_CHILD | WS_VISIBLE | SS_NOTIFY | SS_BITMAP, CRect(0, 0, 0, 0), this, IDD_IMAGEBOXCTRL);rn.....rnrn程序在debug模式下正常<em>创建</em>控件,<em>release</em>模式下,bret = 0; getlasterror() = 0;rnrndebug模式调试的时候,程序可以运行到,CMyStatic类里面的OnCreate方法。rn<em>release</em>模式下跟本就没有执行到这个CMyStatic的OnCreate里面来。rn调试了一天无果,rn请遇到类似问题的朋友指点一二。rn
MFC扩展DLL的问题
在一个MFC<em>扩展</em>DLL中导出一个三态选择树类CTreeCtrlEx,派生于CTreeCtrl。rnrn我在CTreeCtrlEx的PreSubClass函数中写了如下代码:rn[code=C/C++]void CCheckedTreeCtrl::PreSubclassWindow() rnrn CTreeCtrl::PreSubclassWindow();rnrn HINSTANCE hInstOld = AfxGetResourceHandle();rn AfxSetResourceHandle(xhlctrlsDLL.hResource);rn m_imgState.Create(IDB_BITMAP_CHECKBOX,13, 1, RGB(255,255,255));rn m_imgList.Create(IDB_BITMAP_FOLDER,16, 1, RGB(255,255,255));rn AfxSetResourceHandle(hInstOld); // restore the old resource chainrn SetImageList(&m_imgState,TVSIL_STATE);rn SetImageList(&m_imgList,TVSIL_NORMAL); rn[/code]rnrn但是这样总是使得树的state icon和item icon显示不正确。rn如果改成以下这样就可以:rn[code=C/C++]void CCheckedTreeCtrl::PreSubclassWindow() rnrn CTreeCtrl::PreSubclassWindow();rnrn HINSTANCE hInstOld = AfxGetResourceHandle();rn AfxSetResourceHandle(xhlctrlsDLL.hResource);rn m_imgState.Create(IDB_BITMAP_CHECKBOX,13, 1, RGB(255,255,255));rn m_imgList.Create(IDB_BITMAP_FOLDER,16, 1, RGB(255,255,255));rn AfxSetResourceHandle(hInstOld); // restore the old resource chainrn SetImageList(&m_imgState,TVSIL_STATE);rn SetImageList(&m_imgList,TVSIL_NORMAL); rn SetImageList(&m_imgState,TVSIL_STATE); // 不调两遍就没有效果,不知道是为什么。rn SetImageList(&m_imgList,TVSIL_NORMAL);rn[/code]rnrn不知道是什么原因?rnxhlctrlsDLL是正确的。在DLLMAIN中有如下语句:rn[code=C/C++]if (!AfxInitExtensionModule(xhlctrlsDLL, hInstance))rn return 0;[/code]rnrnDLL与EXE均动态使用MFC,均为<em>release</em>编译,都对_UNICODE,UNICODE进行了预定义再编译的。
扩展MFC DLL
我在MFC<em>扩展</em>DLL中写了一个函数:rn__declspec(<em>dll</em>export) BOOL isOdd(int num)rnrn if(num % 2 == 0)rn return true;rn else rn return false;rnrnrn在另一个测试程序中这样调用:rn typedef BOOL ISODD(int);rn ISODD *isOdd;rnrn HINSTANCE hm;rn if(hm = ::LoadLibrary("<em>mfc</em><em>dll</em>3.<em>dll</em>"))rn rn isOdd = (ISODD *)::GetProcAddress(hm,"isOdd");rn if(isOdd)rn rn if(isOdd(8))rn MessageBox("是偶数");rn elsern MessageBox("不是偶数");rn rn elsern rn MessageBox("有问题");rn rn ::FreeLibrary(hm);rn rn elsern rn MessageBox("DLL加载失败");rn rnrn但是有问题,是不是和普通的DLL调用不一样啊?
一个MFC扩展DLL调用另一个MFC扩展DLL
RT,我在一个MFC<em>扩展</em>DLL调用另一个MFC<em>扩展</em>DLL中的类,动态<em>创建</em>类对象时出现链接错误,A.DLL和B.DLL同为MFC<em>扩展</em>DLL,均被主程序MDI调用,A也需要调用B,调用代码如下:rn[code=c]rn context.m_pNewViewClass = RUNTIME_CLASS(CVideoView);rn if (!m_wndSplitter1.Create(rn &m_wndSplitter, // our parent window is the first splitterrn 2, 2, // TODO: adjust the number of rows, columnsrn CSize(10, 10), // TODO: adjust the minimum pane sizern &context,rn WS_CHILD|WS_VISIBLE|SPLS_DYNAMIC_SPLIT|WS_HSCROLL|WS_VSCROLL,rn m_wndSplitter.IdFromRowCol(2, 0)))rn rn TRACE("Failed to create the nested dynamic splitter\n");rn rn[/code]rnrn错误如下:rnerror LNK2001: unresolved external symbol "public: static struct CRuntimeClass const CVideoView::classCVideoView" (?classCVideoView@CVideoView@@2UCRuntimeClass@@B)rnCVideoView类是B.DLL中显示视频的一个CView子类;在自己<em>创建</em>的MDI应用程序中使用正常,被A.DLL调用时出现上面链接错误。该工程为VC++6.0,经查证确认,是因为A.DLL和B.DLL项目设置预编译选项中均定义了_AFXDLL,_AFXEXT,导致出现此链接错误,但是不知道怎么改。。。rn希望那位大神帮忙指导一二,困扰好久了。MFC<em>扩展</em>DLL之间的相互调用需要注意什么问题?先行谢过!
工作线程中创建非模态对话框
[code=c]rnUINT ShowThread(void * pParam) rnrn CDlgAnother* p_dlg=new CDlgAnother;rn p_dlg->Create(IDD_DIALOG1,NULL);rn p_dlg->ShowWindow(SW_SHOW); rnrn MSG msg;rn while (GetMessage(&msg, NULL, 0, 0)) rn rn TranslateMessage(&msg);rn DispatchMessage(&msg);rn rn return 0;rnrnrnvoid CThreadWindowDlg::OnButton1() rnrn AfxBeginThread( ShowThread, NULL); rnrn[/code]rnrn像这样在工作线程中<em>创建</em><em>非模态对话框</em>是可以响应消息的,但是我现在改变如下:rn[code=c]rnrnUINT ShowThread(void * pParam) rnrn CDlgAnother* p_dlg=new CDlgAnother;rn p_dlg->Create(IDD_DIALOG1,NULL);rn p_dlg->ShowWindow(SW_SHOW); rnrn Sleep(10000);rnrn return 0;rnrnrnvoid CThreadWindowDlg::OnButton1() rnrn AfxBeginThread( ShowThread, NULL); rnrnrn[/code]rn改变成这样以后对话框在10秒之内,是不能响应消息的(10秒后消失),我想知道不能响应消息的原因是因为没有了消息循环所以不能响应,还是因为调用了Sleep(10000)造成线程挂起,所以不能响应?
MFC 创建模式对话框与非模式对话框
// 模式对话框 my_about cb; cb.DoModal(); //非模式对话框 my_about *cb = new my_about; cb->Create(IDD_myabout,this); cb->ShowWindow(SW_SHOW); vc2008 <em>mfc</em> 默认添加到对话框会有 确定跟取消, 但这俩框在资源视图里面还看不到,不晓的为什么,但是处理函
MFC创建模态对话框和非模态对话框(1)
一:模态对话框和<em>非模态对话框</em> 模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。    <em>非模态对话框</em>则是,它弹出后,本程序其他窗口仍能响应用户输入。<em>非模态对话框</em>一般用来显示提示信息等。  二:运行过程 首先添加一个对话框和一个对话框类;在主对话框中添加一个butto
Mfc在模态对话框上非模态创建listbox焦点问题
-
[转]MFC让对话框窗口始终在最前&MFC弹出非模态对话框
方法一:在对话框的属性中,在more style中有一项是System model,选上它,即可! 方法二:OnInitDialog里加入SetWindowPos(&amp;wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE); 外部调用: m_dialog-&gt;SetWindowPos(&amp;wndTopMost, 0, 0, 400, 400, SWP_...
MFC下的模态与非模态对话框
以前学VC的时候觉得模态与非模态很简单,两个的<em>创建</em>方式不同,一个是Create一个是DoModel,然后如果是模态的就很霸道,不让你去点后面的父窗口,如果是非模态就可以点击后面的父窗口,但是在实际的应用发现一点很需要注意的地方: 我们如果便写过window SDK,可以知道,其实窗口的<em>创建</em>不关事父窗口还是子窗口,不管是模态还是非模态,其最基本的的调用的都是CreateWindow或者Cre
MFC dll创建浮动窗口!!!
在<em>dll</em>中<em>创建</em>浮动窗口,浮动窗口的父级是客户端程序的的Mainframe,将客户端的MainFrame的指针传入<em>dll</em>中,在<em>dll</em>中<em>创建</em>浮动窗口。但是运行出错,断言出在ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL || (p = pMap->LookupTemporary(m_hWnd)) != NULL);,网上查的说是不同线程共享资源出错,该怎么解决啊,给位大侠帮帮忙!!!!急急急急急急!
MFC dll创建浮动窗口
在<em>dll</em>中<em>创建</em>浮动窗口,浮动窗口的父级是客户端程序的的Mainframe,将客户端的MainFrame的指针传入<em>dll</em>中,在<em>dll</em>中<em>创建</em>浮动窗口。但是运行出错,断言出在ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL || (p = pMap->LookupTemporary(m_hWnd)) != NULL);,网上查的说是不同线程共享资源出错,该怎么解决啊,给位大侠帮帮忙!!!!急急急急急急!
如何在MFC扩展DLL中,实现对话框的创建
通过LoadLibrary加载DLL之后,发送消息到DLL中,在接受到消息之后,new一个对话框对象,rn可就在Create或者DoModal时,程序就崩了rnrn请问大家,如何解决这个问题?
MFC非模态对话框
功能:实现点击菜单,弹出一对话框,点击菜单XX-XA,弹出XX-XA设置对话框(通过<em>非模态对话框</em><em>创建</em>) 过程: 在菜单里面加入XX-XA; 查看该菜单所在的类; 在该类里面,给该菜单添加消息映射,COMMAND消息对应OnXxxa()方法; 将消息与弹出的对话框关联起来:即点击菜单,弹出XX-XA对话框 通过下面函数来实现: 此函数将菜单和对话框连接起来 。。。 void 
【MFC】非模态对话框
1.打开VS2015 MFC 2.打开工具箱新建按钮button1 3.插入资源dialog1 4.dialog1添加类自动生成NonModal.h,NonModal.cpp 5.#include "NonModal.h"添加至MFCApplication1Dlg.h 6.MFCApplication1Dlg.h中定义NonModal类型的指针变量 class CMFCApplic
模糊控制技术第七章下载
模糊控制技术第七章模糊控制技术第七章模糊控制技术第七章 相关下载链接:[url=//download.csdn.net/download/qzxfv/4366727?utm_source=bbsseo]//download.csdn.net/download/qzxfv/4366727?utm_source=bbsseo[/url]
BitDefender 2012注册机及破解说明下载
BitDefender 2012全功能安全套装注册机及破解说明 相关下载链接:[url=//download.csdn.net/download/zhlw0223/4416382?utm_source=bbsseo]//download.csdn.net/download/zhlw0223/4416382?utm_source=bbsseo[/url]
jQuery-datepicker下载
自己整理的一份资料,希望对大家,关于详细的内容可以看这个网站的例子http://www.helloweba.com/demo/datepicker/ 相关下载链接:[url=//download.csdn.net/download/qq791967024/6734341?utm_source=bbsseo]//download.csdn.net/download/qq791967024/6734341?utm_source=bbsseo[/url]
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件
我们是很有底线的