vs2008非模式对话框建立 [问题点数:20分,结帖人happyming0809]

Bbs1
本版专家分:0
结帖率 90%
Bbs5
本版专家分:2769
Bbs7
本版专家分:20889
版主
Blank
红花 2014年11月 VC/MFC大版内专家分月排行榜第一
Blank
黄花 2015年1月 VC/MFC大版内专家分月排行榜第二
Bbs1
本版专家分:0
Bbs5
本版专家分:2769
关于模式对话框和非模式对话框
对话框的重叠和子级之间的差别是什么?还有他们跟非模式窗口有什么不一样?可以用作非<em>模式对话框</em>吗?rnrn登陆对话框中的数据要通过协议传到服务器,可主窗口在登陆框的后面出现,我应该怎么解决呢?请各位高手帮帮忙,谢谢!
模式对话框和非模式对话框问题??
在线程函数里,rn1、CAniwinDlg *dlg=new CAniwinDlg(strName,point);rn 如果是无模式产生的话,要在PostNcDestroy() 中delete this; rn 那如果是模式的话,要在哪delete掉new出来的dlg,如果也跟无模式一样的话rn 在PostNcDestroy() 中delete this;会挂掉。rn2、如果不new的话,每次我都在线程函数里如下调用:rn CAniwinDlg dlg(strName,point);rn dlg.DoModal();//rn 会不会有问题rn (注:该线程函数会多次调用)
模式对话框和非模式对话框
rn请教rnrn1 <em>模式对话框</em>和非<em>模式对话框</em>都是继承于CDialog,只是创建的方式不同,对不对?rnrn2 对于对话框投递的自定义消息,父窗口必须重载WndProc窗口过程函数才能捕获该消息,对不对呀?
模式对话框和非模式对话框消息响应
列出了<em>模式对话框</em>和非<em>模式对话框</em>消息响应函数的异同
模式对话框
我在CListView中调用了一个非<em>模式对话框</em>,在对话框上我添加了一些控件,我在ListCView中向对话框发送消息,并在对话框中显示。这种消息是我在ListView中利用定时器采集数据向对话框发送。我在程序中调用了几次对话框,可是先调用出来的对话框的界面上什么也没有,当等到后面的对话框出现时,前面的对话框有些控件出现,不完整?rn我的要求是:rn我先调用出第一个对话框,当我完成操作后,销毁第一个非<em>模式对话框</em>,程序往下执行在调用这个非<em>模式对话框</em>,完成操作后在销毁?rn谢谢大家帮忙解决,希望站长也帮我解决?我在此谢谢?rn
关与模式对话框和非模式对话框的问题?
我是一名初学者,我想问一下:<em>模式对话框</em>是不是能和视图类交换数据,比如说<em>模式对话框</em>上的编蹊框中的数据能否传到C***View类中? 谢谢!!
模式对话框变为非模式对话框问题
环境:Windows xp sp2rn Visual studio 2005rnrn状况:rn 1,基于对话框的工程。rn 2,有一个主对话框 MainDlgrn 3,主对话框 MainDlg上有一个按钮Arn 4,按钮A的消息处理函数中,CTestDlg dlg; dlg.DoModl();rn 5,子对话框CTestDlg弹出,此时CTestDlg是模式的,MainDlg无法操作。rnrn问题:如果在CTestDlg类的OnInitDialog()里面,加上AfxMessageBox("asdf")等消息提示的话,rn AfxMessageBox关闭后,弹出的CTestDlg对话框就成为非模式的了,MainDlg也可以操作了。rnrnrn请问怎样可以避免这种问题。我想让CTestDlg一直都是模式的。 rn
弹出非模式对话框.rar
在SDI上做的一个非<em>模式对话框</em>的弹出 并显示鼠标的坐标
关于非模式对话框的问题!!!
如何在FormView下<em>建立</em>一个用按钮打开的非<em>模式对话框</em>?
关于非模式对话框的小问题
怎样控制非<em>模式对话框</em>相对于主窗体弹出的位置?能否在主窗体之外的区域弹出?
模式对话框的问题
在MenuDlg窗口中,打开Dlg1:rnvoid CMenuDlg::OnBnClickedBtndlg1()rnrn CDlg1* dlg = new CDlg1(this);rn dlg->Create(DLG1,this);rn dlg->ShowWindow(SW_SHOW);rnrn然后在Dlg1中退出按钮代码中:rnvoid CDlg1::OnBnClickedExit()rnrn DestroyWindow();rnrn重载PostNcDestroy:rnvoid CDlg1::PostNcDestroy()rnrn CDialog::PostNcDestroy();rn delete this;rnrn发现窗口是关闭了,PostNcDestroy()也执行了,但是占用的内存并没有释放,退出程序,内存可以释放掉。rn怎样才能把占用的内存释放掉呢?
模式对话框问题
两个对话框,一个做基类,一个做派生类,然后用派生类 生成非<em>模式对话框</em>,但是显示的时候很慢,有遇到过的吗?
怎么显示非模式对话框
怎么显示非<em>模式对话框</em>?rn谢谢!
关于非模式对话框
小弟近日在本人的小型程序中创建一非<em>模式对话框</em>,能显示对话框,但对话框中的控件却没有显示出来;我把同样的代码在简单程序中测试没有问题,能显示所有控件,但加入本人作的程序中却显示不出来.我估计是程序的其他代码对它造成的影响,但不知道究竟是那一部分?(控件的属性正常,Visible,非owner_draw,在简单程序中测试没有问题).rn 不知道各位大虾有没有碰到过这样的情况,敬请指教可能的原因!(不能把源代码贴出来)rn
一个非模式对话框的问题
a.cpp通过下面方法调用 b.cpprnb *bb = new b;rnbb->Create(IDD_DIALOG1,NULL);rnbb->ShowWindow(SW_SHOW);rnrn这样虽然窗口可以出来.但为何a 窗口始终在b窗口下方.rnrn当鼠标点击A时也是一样.rnrn我想实现点击A时A在上面,点击B时B在上面,rnrn当A最小化时B不用跟着A窗口同时最小化.rnrn我上面的代码会让B跟随A一起最小化,rnrn是我那里写错了呢.rnrn请大家帮帮忙,
模式对话框z_order
在CMainFrame创建两非<em>模式对话框</em>,rn if (!m_pMsgDlg -> Create(IDD_SHOW_MSG))rn rn TRACE0("Failed to create modeless dialog\n");rn rnrn if (!m_pQCDlg -> Create(IDD_QUICK_CTRL))rn rn TRACE0("Failed to create modeless dialog\n");rn rnrn先创建的非<em>模式对话框</em>总是在后创建之后面,怎样实现如下情况:rn就是单击对话框就让对话框切换到最前面.试过用SetWindowPos,但就是不行.
关于Qt非模式对话框
各位:rn请问下面的代码是打开一个非<em>模式对话框</em>,为什么打开时可以显示非<em>模式对话框</em>上的按钮控件,但是没有显示非<em>模式对话框</em>的窗体?rnrn是不是我打开非<em>模式对话框</em>有误?请大家给出意见,谢谢!rnrnconnect(menuBT, SIGNAL(clicked()), this, SLOT(OnBnClickedBtMenu()));rnrnvoid MainWin::OnBnClickedBtMenu()rnrn MainMenu *mainMenu = new MainMenu(this);rn mainMenu->setWindowModality(Qt::NonModal);rn mainMenu->show();rnrnrn非<em>模式对话框</em>类的构造函数中设置:rnsetWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);rnQPushButton *bt = new QPushButton(tr("Setting"), this);rnbt->setGeometry(0,0,180,200);rnconnect(bt, SIGNAL(clicked()), this, SLOT(exitMainMenu()));
模式对话框如何居中显示?
使用rn dlg1 = new CDialog1;rn dlg1->Create(IDD_DIALOG1);rn dlg1->ShowWindow(SW_SHOW);rn创建的非<em>模式对话框</em>显示时显示在窗口的左上角,如何让他自动显示在窗口中央?谢谢!
模式对话框.rar
给出了一个非<em>模式对话框</em>的实例
有关非模式对话框
我想实现这样的功能该怎么办?rnrn主窗体上有很多按钮rn按下一个按钮后就在主窗体的下方rn弹出一个非<em>模式对话框</em>rn而当我点击任何对话框之外的地方rn该对话框就关闭
创建非模式对话框
create 创建非<em>模式对话框</em>,然后ShowWindow嘛,闪一下就没了。。rn[url=http://dl.dropbox.com/u/37256700/%E6%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9.rar]工程文件这里[/url],麻烦看下rn
模式对话框的句柄获取
在MDI应用程序中,我在CMainFrm类中创建了一个非<em>模式对话框</em>,也可以显示和隐藏.但是发现在状态栏多了一个程序,就是说本来一个程序变成两个了,那怎么样设置对话框的句柄.主要代码如下:rnCDLG**** AA //AA 是成员函数rn在CMainFrm的构造函数中rnrnAA.Create(IDD_DLG_INFO,NULL);rnrn在CMainFrm的析构函数中,rnAA.DestroyWindow();rnrn不知道怎么解决?rn
模式对话框 怎么隐藏。
当线程运行的时候,把非<em>模式对话框</em>(上有一进度条) 显示出来。当线程结束的时候,把 非<em>模式对话框</em> 隐藏。rn tryrn rn Father->m_info->ShowWindow(SW_SHOW);rn Father->m_info->CenterWindow();rn Father->GetData();rn Father->m_info->ShowWindow(SW_HIDE);rn rn catch(...)rn rn Father->m_info->ShowWindow(SW_HIDE);rn rnrn只要 不切换到其它程序,非<em>模式对话框</em>能隐藏。但是,当我切换到其它程序,线程结束后,我切换过来,那个 非<em>模式对话框</em>还在,没有隐藏。这该怎么办,总不能线程运行时禁止切换到其它程序(我已经做了当线程运行时,程序不能最小化,最小化,也有这个情况。),rn禁止切换到其它程序--我也不会做。
模式对话框销毁问题
我在一个线程里对多个对话框进行管理rn[code=C/C++]rnCWnd *pNewWnd = NULL;rnpNewWnd = new CDlgNewDlg;rn((CDialog *)pNewWnd)->Create(lNewDlgID, this); //创建新窗口rnpNewWnd->ShowWindow(SW_SHOW);rnpCurWnd->SendMessage(WM_CLOSE); //关闭旧窗口rndelete pCurWnd;rnpCurWnd = pNewWnd;rnpNewWnd = NULL;rn[/code]rn以上代码要实现打开一个对话框, 关闭一个对话框.rn但是发送 WM_CLOSE 的时候, 调试输出显示rn[color=#FF0000]Warning: calling DestroyWindow in CDialog::~CDialog --rn OnDestroy or PostNcDestroy in derived class will not be called.[/color]rnrn所以有个疑问, 我在发送WM_CLOSE之后调用了delete, 是不是完全销毁了窗口? 还是说delete之后窗口扔在内存中运行?rn如果delete能销毁窗口, 有没有必要在delete之前发送WM_CLOSE消息?
模式对话框显示
我用按钮来控制两 个非<em>模式对话框</em>显示,如下rnvoid CYiDianLeDlg::OnLanguageBtn() rnrn // TODO: Add your control notification handler code herern m_DlgLanguage.BringWindowToTop();rn m_DlgLanguage.ShowWindow(SW_SHOW);rnrnrnvoid CYiDianLeDlg::OnNumberBtn() rnrn // TODO: Add your control notification handler code herern m_DlgNumber.BringWindowToTop();rn m_DlgNumber.ShowWindow(SW_SHOW);rnrn它只能第一次成功,第二次点击的按钮的对话框显示不到最上面来。如何解决。rn我是在主对框上添加的两 个安钮,两个非<em>模式对话框</em>显示在同一个位置。是不是一定要隐藏前一个,如果要这样,那我如果创建了20个这个的非<em>模式对话框</em>,那不是麻烦死了。希望有好的方法。rn
模式对话框不响应消息
我程序中两处调用<em>建立</em>非模态对话框,rn第一处通过<em>模式对话框</em>的主窗口按键消息创建一个窗口rn[code=c]CDlgShouyeMenu *pDlgShouyeMenu = new CDlgShouyeMenu;rn pDlgShouyeMenu->Create(CDlgShouyeMenu::IDD);rn pDlgShouyeMenu->ShowWindow(SW_SHOW);[/code]rn代码可以成功的执行, 并且显示界面, 消息也能完美相应.rnrn但是第二处, 通过一个读串口的线程创建的就有问题.rn我建了一个线程用来读取串口数据, 并将数据通过回调函数发回主窗口, 回调函数中通过主窗口指针调用主窗口的某个函数创建非<em>模式对话框</em>. 创建出来的非<em>模式对话框</em>只执行ShowWindow(SW_SHOW);一闪而过不会显示界面, 必须调用UpdateWindow();才能显示界面.rn[code=c]rnCDialog *m_pCurDlg = NULL; //主窗口的成员变量rn...rn if(m_pCurDlg)rn rn m_pCurDlg->DestroyWindow();rn m_pCurDlg = NULL;rn rnm_pCurDlg = new CDlgFaduanxinStat(0);rn m_pCurDlg->Create(CDlgFaduanxinStat::IDD);rn m_pCurDlg->ShowWindow(SW_SHOW);rn m_pCurDlg->UpdateWindow();[/code]rn但是就算显示出界面来, 不响应PreTranslateMessage()函数.rn如果我把rn[code=c]m_pCurDlg->Create(CDlgFaduanxinStat::IDD);rn换成rnm_pCurDlg->Create(CDlgFaduanxinStat::IDD, this);[/code]rn直接报Debug Assertion Failed. 错误定位在 CWnd::AsserValid(void)rnrnrn求救..
模式对话框的信息传递
怎样把父窗口的内容显示在非<em>模式对话框</em>的字窗口上面呢?rn谢谢!给一个例子最好。rn谢谢各位大虾
vc非模式对话框的问题
我在视类里面创建并显示一个非模式的对话框, 问题如下:rnrn如果先关闭对话框,再关闭文档,没有问题;rn如果先关闭文档, 再关闭对话框, 则出现断言错误.rnrn如何解决?rnrn我想在关闭文档之前,在视类的某一个虚拟函数或消息响应函数中处理对话框的销毁工作,也就是说,随着文档的关闭,对话框也关闭. 应该怎么实现?
模式对话框的退出问题?
我将对话框的OK和CANCEL这两个BUTTON删除掉了,rn可是我在对话框活动时按回车键,对话框仍然可以退出,rn为什么?如何解决这个问题?
VB实现非模式对话框
请问,如何用VB实现非<em>模式对话框</em>,该对话框可以实现倒计时,时间到就自动关闭
模式对话框的使用
rn问题1:非<em>模式对话框</em>的信息反馈(45分)rnrn 非<em>模式对话框</em>的信息我是这样反馈的:rn (在点击了某按钮后)rn void C###Dlg::OnXXXButton()rn rn …… rn CWnd* pWnd=GetParent();rn if(pWnd)rn ……rn wParam=rn pWnd->SendMessage(ID_MYMSG,wParam);rn rn rnrn 在父窗口的消息映射中加了 ON_MESSAGE(ID_MYMSG, OnFunc) //#define ID_MYMSG WM_USER+1rn 同时,父窗口定义了OnFunc()函数:rn void C###View::OnFunc(WPARAM w, LPARAM l)rn rn ……rn rnrn 但我跟踪时发现,发送了ID_MYMSG消息后OnFunc()函数并没有执行到,这是为什么?rnrn问题2:只能被用一次吗?(45分)rnrn我使用的步骤:rn 1. 在父窗口类中添加一个非<em>模式对话框</em>指针;rn 2. 在父窗口构造函数中用new为对话框指针申请空间;rn 3. 在父窗口析构函数中delete;rn 4. 在父窗口某一函数中显示非<em>模式对话框</em>:rn if(!m_pNonModDlg->GetSafeHwnd())rn rn m_pNonModDlg->Create(IDD_NONMODEDLG);rn rn 但为什么该非<em>模式对话框</em>只能显示一次, 再一次执行上面程序时,GetSafeHwnd()函数返回0 ?rn
模式对话框的数据的取得?
在<em>模式对话框</em>中动 dlg.str 形式取得,请问在非<em>模式对话框</em>中如何取得,谢谢?
关于非模式对话框的疑问
从某参考资料上看来的,rn比如我在类AAA的函数BBB()里<em>建立</em>非<em>模式对话框</em>,代码如下rnCAAA:rnvoid BBB()rnrn CMDlg* pDlg;rn pDlg= new CMDlg;rn pDlg->Create(IDD_MDLG);rnrn再在自建的这个对话框的类的PostNcDestroy()中rn加入delete this; 代码如下rnCMDlg:rnvoid CMDlg::PostNcDestroy() rnrn delete this;rn CDialog::PostNcDestroy();rnrnrn我现在的疑问是,delete this;是否在对话框关闭时清除了pDlg?rn或者说delete this的作用就是“pDlg=NULL;delete pDlg;”吗?rn另外,PostNcDestroy() 函数中,delete this;与CDialog::PostNcDestroy();rn的位置先后有什么讲究吗?欢迎指教,谢谢。rn
模式对话框的问题?
有谁知道非<em>模式对话框</em>的创建方法。 rn有代码最好。
如何实现模式对话框格式的非模式对话框
想实现一个非<em>模式对话框</em>,操作是位于主窗口,对话框只是为了显示进度,关键是要使主窗口不可选中,不可操作。不用多线程可以实现么?rn如果建议把操作移到对话框就免了
怎么显示不了非模式对话框?(模式对话框就可以)
.hrn HWND hWnd;rn FARPROC lpfn_Dlg;rnBOOL DlgProc(HWND hDlg,WORD Message,WPARAM wParam,LPARAM lParam);rnrn.cpprnBOOL MyAPP_OnCreate(HWND hWindow,CREATESTRUCT FAR * lpCreateStruct)rnrn HINSTANCE hIn;rn rn hIn=lpCreateStruct->hInstance;rn FARPROC lpfn_Dlg =MakeProcInstance((FARPROC)DlgProc,hIn); rn return true;rn rnrnBOOL DlgProc(HWND hDlg,WORD Message,WPARAM wParam,LPARAM lParam)rnrn 。。。。。rnrn菜单事件:rn case IDM_LINE:rn rn hWnd_Line=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DLG),hWnd,(DLGPROC)lpfn_Dlg);rn rn InvalidateRect(hWnd,NULL,false);rn break;
为什么模式对话框会变成非模式对话框?
我利用PopUpManager的createPopUp方法创建了<em>模式对话框</em>rn其中的模式参数是"true"rnrn我在使用的时候发现这个对话框还在的时候还能点击其他的按钮之类的rn后来又单独把他提出来实验,又变成<em>模式对话框</em>了.一放回去又不行了rnrn相信是有什么可以影响它?帮忙各位
模式对话框如何实现模式对话框 的功能
非模式有个好处,在堆中分配内存、rnrn绽中是有限的啊,, 但是缺点:有时候,想实现这样的一个效果, 只允许客户弹出一个对话框来,,rnrn不能点击其他东西。。。。除非本关闭对话框。。。。rnrn隐藏都不行,,, 就是要关闭对话框并且销毁。。。。 及时释放内存。。rnrnrnrnrn<em>模式对话框</em>有这个功能,但是有个缺陷: 内存在栈中。。rnrn该怎么办??rnrn
谁能详细说明下模式对话框和非模式对话框的消息机制的区别???
谁能详细说明下<em>模式对话框</em>和非<em>模式对话框</em>的消息机制的区别???rn 以及他们的消息路径问题?
模式对话框上 点击按钮,弹出模式对话框
结果<em>模式对话框</em>关闭不了rnrn主窗口---------------非模式rnrn子窗口--------------模式rnrn结果<em>模式对话框</em>上的 按钮不响应,且也关闭不了rnrn郁闷rnrnrnrnrn[code=C/C++]rn/*------------------------------------------rn ABOUT1.C -- About Box Demo Program No. 1rn (c) Charles Petzold, 1998rn ------------------------------------------*/rnrn#include rn#include "resource.h"rnrnrnstatic HINSTANCE g_hInst=NULL;rnrnLRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;rnrnBOOL CALLBACK MainDlgProc (HWND, UINT, WPARAM, LPARAM) ; //主对话框rnrnBOOL CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM) ; //关于对话框rnrnint WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,rn PSTR szCmdLine, int iCmdShow)rnrn// static TCHAR szAppName[] = TEXT ("About1") ;rn// MSG msg ;rn// HWND hwnd ;rn// WNDCLASS wndclass ;rn// rn// wndclass.style = CS_HREDRAW | CS_VREDRAW ;rn// wndclass.lpfnWndProc = WndProc ;rn// wndclass.cbClsExtra = 0 ;rn// wndclass.cbWndExtra = 0 ;rn// wndclass.hInstance = hInstance ;rn// wndclass.hIcon = LoadIcon (hInstance, szAppName) ;rn// wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;rn// wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;rn// wndclass.lpszMenuName = szAppName ;rn// wndclass.lpszClassName = szAppName ;rn// rn// if (!RegisterClass (&wndclass))rn// rn// MessageBox (NULL, TEXT ("This program requires Windows NT!"),rn// szAppName, MB_ICONERROR) ;rn// return 0 ;rn// rn// rn// hwnd = CreateWindow (szAppName, TEXT ("About Box Demo Program"),rn// WS_OVERLAPPEDWINDOW,rn// CW_USEDEFAULT, CW_USEDEFAULT,rn// CW_USEDEFAULT, CW_USEDEFAULT,rn// NULL, NULL, hInstance, NULL) ;rn// rn// ShowWindow (hwnd, iCmdShow) ;rn// UpdateWindow (hwnd) ; rnrn HWND g_Dlghwnd;rnrn MSG msg;rnrnrn g_hInst=hInstance;rnrn rn g_Dlghwnd=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_MAIN_DIALOG),NULL,MainDlgProc);rnrn while (GetMessage (&msg, NULL, 0, 0))rn rn if(g_Dlghwnd==NULL || IsDialogMessage(g_Dlghwnd,&msg))rn TranslateMessage (&msg) ;rn DispatchMessage (&msg) ;rn rn return msg.wParam ;rnrnrn //DialogBox(g_hInst,MAKEINTRESOURCE(IDD_MAIN_DIALOG),NULL,MainDlgProc);rnrnrnrnrnrnrnBOOL CALLBACK MainDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)rnrn switch (message)rn rn rn case WM_COMMAND :rn switch (LOWORD (wParam))rn rn case IDOK :rn case IDCANCEL :rn // EndDialog (hDlg, 0) ;rn DestroyWindow(hDlg);rn return TRUE ;rn case IDC_BUTTON1: //关于对话框的idrn DialogBox (g_hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hDlg, AboutDlgProc) ;rnrn rn break ;rnrn case WM_CLOSE:rn DestroyWindow(hDlg);rn break;rnrn default:rn return DefWindowProc(hDlg,message,wParam,lParam);rn rn return FALSE ;rnrnrnrnBOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message, rn WPARAM wParam, LPARAM lParam)rnrn switch (message)rn rnrn rn case WM_COMMAND :rn switch (LOWORD (wParam))rn rn case IDOK :rn case IDCANCEL :rn EndDialog (hDlg, 0) ;rn return TRUE ;rn rn break ;rnrn case WM_CLOSE:rn EndDialog(hDlg,0);rn default:rn return DefWindowProc(hDlg,message, wParam,lParam);rn rn return FALSE ;rnrnrnrnrn[/code]
关于非模式对话框的问题
我在一个对话框中创建一个非模式的对话框并显示,可即使这个非<em>模式对话框</em>没有焦点时,也还是显示在主对话框的前端。rn我并没有设置主对话框为该非<em>模式对话框</em>的父窗口啊。还望牛人解答
请教:非模式对话框的特点
非<em>模式对话框</em>与<em>模式对话框</em>的主要区别,怎样产生一个非<em>模式对话框</em>?
模式对话框关闭问题
为什么不能在OnOk()中用this = NULL;如何正确关闭
显示非模式对话框的问题
为什么这样不能弹出一个对话框:代码 CAboutDlg 派生于CDialog rnrn CAboutDlg dlga= CAboutDlg(); rn dlga.Create(IDD_ABOUTBOX); rn dlga.ShowWindow(SW_SHOW); rnrn而这样就可以:rn CAboutDlg * dlga= new CAboutDlg(); rn dlga->Create(IDD_ABOUTBOX); rn dlga->ShowWindow(SW_SHOW);rnrnrn
关于非模式对话框错误!!!
这个函数我是想实现同时显示多个对话框,点第一次的时候时候正确运行,第二次就出错了,求解答啊!(之前我实现一直能正常运行,现在不知道为什么就出错了)rn出错输出:First-chance exception in Image.exe (MFC42D.DLL): 0xC0000005: Access Violation.rn对话框显示:Unhandled exception in Image.exe (MFC42D.DLL): 0xC0000005: Access Violation.rn[code=C/C++]rnvoid CImageDlg::OnFanse() rnrn ClearMemory(); rn ZengQiang.FanSeBianHuan();rn ZengQiang.ZhiFangTu(ZF,0);rn CShowImage *Show=new CShowImage;rn Show->Create(IDD_DIALOG_SHOW,NULL);rn Show->GetHuiDuInfo(ZF);rn Show->GetWindowTitle("反色变换");rn Show->GetAddr(ZengQiang.GetData(),ZengQiang.GetWidth(),ZengQiang.GetHeight(),ZengQiang.GetInfo()); rn Show->ShowWindow(SW_SHOW);rn// Show=NULL;// TODO: Add your command handler code here rnrn[/code]
模式对话框的问题~~~~~~~~~~~~~
怎么才能让非<em>模式对话框</em>不总是显示在最前边~~~~
模式对话框OnOk问题?
我有一个dialog,我在这个dialog里面用一个button来执行OnOK,但这个dialog的却没有接受到destory消息,为什么?如何才能截获destory消息,因为我要在这dialog结束时执行一些操作。rnrn注:这个dialog是由其他dialog用create来创建的非<em>模式对话框</em>。rn
模式对话框"的具体做法">"非模式对话框"的具体做法
大多数vc书上对这个不是讲的不清楚,就是避而不谈..搞得大家一头雾水..有几个问题搞不明白???(1)因为覆盖了onok()函数.所以需要自己调用updatedata(true);取得输入变量的值,可是它此时的值怎么能传到其他调用它的类里面??一定要定义消息传递函数,将此数据包含在lparam中传递么??(2)一定要通过将对话框消息传到主框架再传到调用对话框的类么????
mfc--非模式对话框
win7,vs2010平台下。改写由mfc向导生成的基于对话框的程序,将其改写为一个非<em>模式对话框</em>。
怎样打开非模式对话框
怎样打开非<em>模式对话框</em>?rnvc++6
如何创建非模式对话框
[code=C/C++][/code]rn//创建rnCMyDlg *dlg = new CMyDlg ;rndlg->Create(IDD_DIALOG1, this);rndlg->ShowWindow(SW_SHOW);rnrn//销毁rnvoid CMyDlg ::OnOK()rnrn CDialog::OnOK();rn DestroyWindow();rnrnrnvoid CMyDlg ::OnCancel()rnrn CDialog::OnCancel();rn DestroyWindow();rnrnrnvoid CMyDlg ::OnDestroy() rnrn CDialog::OnDestroy();rn rn delete this;rnrnrn[code=C/C++][/code]rnrn这样做有问题吗,为什么关闭对话框时提示rnWarning: calling DestroyWindow in CDialog::~CDialog -- OnDestroy or PostNcDestroy in derived class will not be called.rn还有一个问题,OnOK, OnCancel是哪个消息啊,我从2005的属性里找不到,是自己写的,只找到OnDestroy了
非常简单问题,非模式对话框
我<em>建立</em>了一个非<em>模式对话框</em>rnnew CRToolBar; rncreate(CRToolBar::IDD, (CMainFrame*)AfxGetMainFrame);rnshow() ......了,rn我在属性里设置的是child,nonern但我这样show出来以后,对话框上的按钮和其他任何资源都无法使用rn但我将child改为popup的时候就可以使用了rn请大狭们帮小弟解答下
改变非模式对话框的大小
怎样在程序中动态的改变非模态对话框的大小,在对话框中有一Listbox,listbox在对话框改变的时候随对话框的改变!谢谢!!
模式对话框的一个问题
我做了一个对话框切换的计算器,当我切换到科学计算器的时候我将普通的计算器隐藏起来了,科学计算器是非模式的对话框,现在的问题是我想在关闭科学计算器的时候也关闭隐藏的普通计算器,可是在关闭了后,在线程里还是有,为什么啊?rn要装关闭主对话框的代码加到那啊?我重载了OnOk也不行,在WM_GODBYE消息里外理也不行,请教~~~~
模式对话框在屏幕的最上面
非<em>模式对话框</em>怎样在初始化时显示在屏幕的最上面
关于非模式对话框下的几个问题?
1) rn在InfoDlg类中定义rnInfoDlg* m_dlg=new InfoDlg(); rnm_dlg->Create(IDD_DIALOG1,NULL);rnrn我这样创建了一个非<em>模式对话框</em>的对象InfoDlg* m_infodlg;rn为什么对话框创建之后取m_infodlg->m_hWnd的值是空呢?rnrn2)rn我在无<em>模式对话框</em>下设置一个进度条 rn CProgressCtrl m_Progress;rn m_Progress.SetRange(0,m_TotalLoad); 这样也找不到m_Progress这个变量,为什么呢?
模式对话框显示问题
请高手指点一下 我的问题事这样的:rn 我创建了个非<em>模式对话框</em>, 上面放了个文本框并关联了变量m_time,rn 在显示这个非<em>模式对话框</em>之前我给m_time赋了值,可是显示出来后文本框里还是初rn 始化时赋的值,我很纳闷
问个非模式对话框的问题?
想做一个多对话框界面的程序,其中一个对话框为主界面,其他为子孙界面,rn曾用有<em>模式对话框</em>来做,发现循环调用的时候会产生内存垃圾,多次调用造成速度变慢。rn后来改用非模式来做,rn即:rn从主界面调用子界面源码为:rn SubDlg->Create(IDD_DIALOG_SUBDLG);rn SubDlg->ShowWindow(SW_SHOW); //显示子界面对话框rn this->ShowWindow(SW_HIDE); //隐藏主界面对话框rn从子界面返回主界面源码为:rn MainDlg->Create(IDD_DIALOG_MAINDLG);rn MainDlg->ShowWindow(SW_SHOW); //显示主界面对话框rn this->ShowWindow(SW_HIDE); //隐藏子界面对话框rnrn我的问题是:如何将这些对话框关闭(在这里隐藏不等于关闭)?rn退出程序可以用哪个函数?rn谢谢~~
关于非模式对话框问题
vc2005, 我写了个基于Dialog的MFC程序,自己添加了一个对话框资源IDD_DIALOG2,在其上放一按钮,并通过右键Add Class...生成了一个对话框类CKxDlg, 在主对话框上放一按钮,在主对话框cpp中包含了KxDlg.h,然后我打算点击该主对话框按钮生成一非<em>模式对话框</em>,代码如下:rnvoid CTestDialogDlg::OnBnClickedButton2()rnrn CKxDlg* pdlg = new CKxDlg;rn pdlg->Create(IDD_DIALOG2, NULL);rn pdlg->ShowWindow(SW_SHOWNORMAL);rnrn ::Sleep(2000);rnrn ::DestroyWindow(pdlg->m_hWnd);rn delete pdlg;rn rnrnrn但问题出来了:IDD_DIALOG2上没有显示任何控件,也不响应关闭消息?
模式对话框的数据交换
我遇到了下面的问题:rn 我用了非<em>模式对话框</em>,为了和主程序进行数据交换,我在主程序里定义了一个用户消息。然后在对话框中用PostMessage发送消息。消息发送成功,但主程序却无响应。是什么原因啊?rn另外,我想把两个CTime对象的数据传过去,应该怎么办。我的思想是定义一个全局变量,当主程序收到消息,然后读取数据,行得通吗?
模式对话框全屏的问题
我新建了一个单文档的程序rn在view的oninit***函数里弹出了一个非<em>模式对话框</em> 全屏显示rn但是点击窗体和控件的时候发现上方的taskbar又重新出现了rn在非<em>模式对话框</em>上弹出新的对话框后返回,全屏又正常了,点击窗体和控件也不再显示taskbarrnrn请问是为什么?
显示非模式对话框
CShowWindow(SW_SHOW); //NOT OK,为什么rnShowWindow(SW_RESTORE); //OK
MFC 非模式对话框的销毁
我在线程中创建了一个非<em>模式对话框</em>,想在线程执行到最后的时候把这个非<em>模式对话框</em>给删掉,但是rninportDlg->DestroyWindow();时程序崩掉了。不知道什么原因。那位知道帮忙指点下。
一个非模式对话框问题
系统说打不开~~~~~~~~为什么?????rnmodeless\modelessdlg.cpp(8) : fatal error C1083: 无法打开包括文件:“NotModel.h”: No such file or directoryrnrnrn// ModelessDlg.cpp : 实现文件rn//rnrn#include "stdafx.h"rn#include "Modeless.h"rn#include "ModelessDlg.h"rn#include "NotModel.h" rnrn#ifdef _DEBUGrn#define new DEBUG_NEWrn#endifrnrnCNotModel * g_pDlgModeless=NULL;rn// 用于应用程序“关于”菜单项的 CAboutDlg 对话框rnrnclass CAboutDlg : public CDialogrnrnpublic:rn CAboutDlg();rnrn// 对话框数据rn enum IDD = IDD_ABOUTBOX ;rnrn protected:rn virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持rnrn// 实现rnprotected:rn DECLARE_MESSAGE_MAP()rn;rnrnCAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)rnrnrnrnvoid CAboutDlg::DoDataExchange(CDataExchange* pDX)rnrn CDialog::DoDataExchange(pDX);rnrnrnBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)rnEND_MESSAGE_MAP()rnrnrn// CModelessDlg 对话框rnrnrnrnrnCModelessDlg::CModelessDlg(CWnd* pParent /*=NULL*/)rn : CDialog(CModelessDlg::IDD, pParent)rn , m_yes(_T(""))rnrn m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);rnrnrnvoid CModelessDlg::DoDataExchange(CDataExchange* pDX)rnrn CDialog::DoDataExchange(pDX);rn DDX_Text(pDX, IDC_EDIT_YES, m_yes);rnrnrnBEGIN_MESSAGE_MAP(CModelessDlg, CDialog)rn ON_WM_SYSCOMMAND()rn ON_WM_PAINT()rn ON_WM_QUERYDRAGICON()rn //AFX_MSG_MAPrn ON_BN_CLICKED(IDC_BUTTON_START, &CModelessDlg::OnBnClickedButtonStart)rn ON_BN_CLICKED(IDC_BUTTON_END, &CModelessDlg::OnBnClickedButtonEnd)rnEND_MESSAGE_MAP()rnrnrn// CModelessDlg 消息处理程序rnrnBOOL CModelessDlg::OnInitDialog()rnrn CDialog::OnInitDialog();rnrn // 将“关于...”菜单项添加到系统菜单中。rnrn // IDM_ABOUTBOX 必须在系统命令范围内。rn ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);rn ASSERT(IDM_ABOUTBOX < 0xF000);rnrn CMenu* pSysMenu = GetSystemMenu(FALSE);rn if (pSysMenu != NULL)rn rn BOOL bNameValid;rn CString strAboutMenu;rn bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);rn ASSERT(bNameValid);rn if (!strAboutMenu.IsEmpty())rn rn pSysMenu->AppendMenu(MF_SEPARATOR);rn pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);rn rn rnrn // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动rn // 执行此操作rn SetIcon(m_hIcon, TRUE); // 设置大图标rn SetIcon(m_hIcon, FALSE); // 设置小图标rnrn // TODO: 在此添加额外的初始化代码rnrn return TRUE; // 除非将焦点设置到控件,否则返回 TRUErnrnrnvoid CModelessDlg::OnSysCommand(UINT nID, LPARAM lParam)rnrn if ((nID & 0xFFF0) == IDM_ABOUTBOX)rn rn CAboutDlg dlgAbout;rn dlgAbout.DoModal();rn rn elsern rn CDialog::OnSysCommand(nID, lParam);rn rnrnrn// 如果向对话框添加最小化按钮,则需要下面的代码rn// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,rn// 这将由框架自动完成。rnrnvoid CModelessDlg::OnPaint()rnrn if (IsIconic())rn rn CPaintDC dc(this); // 用于绘制的设备上下文rnrn SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);rnrn // 使图标在工作区矩形中居中rn int cxIcon = GetSystemMetrics(SM_CXICON);rn int cyIcon = GetSystemMetrics(SM_CYICON);rn CRect rect;rn GetClientRect(&rect);rn int x = (rect.Width() - cxIcon + 1) / 2;rn int y = (rect.Height() - cyIcon + 1) / 2;rnrn // 绘制图标rn dc.DrawIcon(x, y, m_hIcon);rn rn elsern rn CDialog::OnPaint();rn rnrnrn//当用户拖动最小化窗口时系统调用此函数取得光标rn//显示。rnHCURSOR CModelessDlg::OnQueryDragIcon()rnrn return static_cast(m_hIcon);rnrnrnrnvoid CModelessDlg::OnBnClickedButtonStart()rnrn // TODO: 在此添加控件通知处理程序代码rn if(!g_pDlgModelless)rn rn g_pDlgModelless=new CNotModel(this);rn g_pDlgModelless->m_not=CString(L"非<em>模式对话框</em>!");rn g_pDlgModelless->UpdateData(false);rn rnrnrnvoid CModelessDlg::OnBnClickedButtonEnd()rnrn // TODO: 在此添加控件通知处理程序代码rn if(g_pDlgModelless)rn rn delete g_pDlgModelless;rn g_pDlgModelless=NULL;rn rnrn
为什么模式对话框不可以设置到非模式对话框的上面??
一个<em>模式对话框</em>创建了一个非<em>模式对话框</em>, 但是为什么这个<em>模式对话框</em>不可以设置到非<em>模式对话框</em>的上面??无论是选中这个<em>模式对话框</em>或则是用SetWindosPos函数设置多不行??请问这是为什么??
如何将一个非模式对话框转换成模式对话框
吾有一对话框,已经用CREATE创建完毕,直接显示将是非模式的,怎么能将它模式显示?
关于模式对话框和非模式对话框(Form.Show()&Form.ShowDialog())
对于窗体的show和showdialog方法,大部人知道它们的区别,show是显示出窗体后,本项目中的其他窗体也能获得焦点,而showdialog则不然,只能当前窗体的激活状态。这只是一方面。 另一方面也是值得注意的,就是show出来的窗体,在单击关闭时,窗体就会被注销掉,不存在内存中,而showdialog呢,只是hide掉窗体,没有把窗体从内存只注销,所以窗体内的成员也不会消失,当再次调用的...
有关在非模式对话框在产生模式对话框的问题?
在sdi程序中,在非<em>模式对话框</em>中用domodal来打开一个<em>模式对话框</em>,在这个<em>模式对话框</em>什么事情都不做时,即不按确定按钮,也不按取消按钮,过一分钟左右,程序就提示死掉,提示重试、取消还是终止,然后跟踪进入程序发现进入,用stack看如下:rnCWnd::SendMessageA(unsigned int 874, unsigned int 0, long 0) line 39 + 43 bytesrnCWnd::RunModalLoop(unsigned long 4) line 3518 + 44 bytesrnCDialog::DoModal() line 533 + 12 bytesrnCDlgDeviceAdjust::WarnCall(int 8) line 740 + 11 bytesrnrn1、rnCWnd::RunModalLoop(unsigned long 4) line 3518 + 44 bytes:rnif ((dwFlags & MLF_NOKICKIDLE) ||rn !SendMessage(WM_KICKIDLE, MSGF_DIALOGBOX, lIdleCount++))rn rn // stop idle processing next timern bIdle = FALSE;rn rnrn2、rnCDialog::DoModal() line 533 + 12 bytes:rnVERIFY(RunModalLoop(dwFlags) == m_nModalResult);rn3、rnCDlgDeviceAdjust::WarnCall(int 8) line 740 + 11 bytes:rnif( pDlgDevAdjWarn.DoModal() == IDOK )rnrn这时怎么回事呀?感谢您的分析指教!!!rn
请教一个关于模式对话框和非模式对话框的问题?
首先对那些和我一样在加班的朋友们道声辛苦了!rnrn我的主窗口是一个<em>模式对话框</em>(DOModal实现),我想点击对话框上的某个按钮弹出一个非<em>模式对话框</em>。那个非<em>模式对话框</em>弹是弹出来了,但是鼠标马上变成繁忙的那种状态,且不响应任何消息,点击按钮等均没有反映。我对那个非<em>模式对话框</em>的属性已经去掉了DISABLE属性,不知什么原因?rnrn谢谢!!
模式对话框、非模式对话框之间的关系与问题
一个对话框工程A,其有三个非<em>模式对话框</em>,比如其中一个任务列表的非<em>模式对话框</em>T,用于显示程序当前正执行的操作rnrn然后正常操作,比如现在打开了属性设置对话框P,设置属性。这个是<em>模式对话框</em>rn现在问题来了:在P关闭之前,去移动一下T,然后关闭T。这时候,P就变成了非框对话框,然后可以再从菜单中打开新的属性对话框P1rnrn那些非<em>模式对话框</em>的style设置为popup,因为child是不适合我的程序的。我改变它为overlapped也一样的问题rn不知道如何做?
号码分析和计费数据配置指导下载
号码分析和计费数据配置指导号码分析和计费数据配置指导 相关下载链接:[url=//download.csdn.net/download/gxr116/2653561?utm_source=bbsseo]//download.csdn.net/download/gxr116/2653561?utm_source=bbsseo[/url]
unity3d中连接数据库下载
unity3d中连接数据库unity3d中连接数据库 相关下载链接:[url=//download.csdn.net/download/zhanghao999/3138781?utm_source=bbsseo]//download.csdn.net/download/zhanghao999/3138781?utm_source=bbsseo[/url]
《Android技术内幕:系统卷》下载
《Android技术内幕:系统卷》,希望对你有帮助。 相关下载链接:[url=//download.csdn.net/download/linyongan/4739773?utm_source=bbsseo]//download.csdn.net/download/linyongan/4739773?utm_source=bbsseo[/url]
我们是很有底线的