MFC:在OnInitDialog 里面关闭窗体】的更多相关文章

解决步骤 在对应的dialogcpp 文件里面的在OnInitDialog函数里面,找到对应的位置,您需要结束窗体显示的地方.(感觉这是废话) 经过验证,使用EndDialog(IDCANCEL);//这一句就起到了效果 代码片段如下 BOOL CMy001_CloseDialogOnInitDialogDlg::OnInitDialog() { int nMERet = IDCANCEL; CDialogEx::OnInitDialog(); // Set the icon for this…
<MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控件 新建MFC对话框程序,删除对话框上的按钮控件的Label控件,然后向窗体添加PictureControl控件,作为绘制的窗体. 将该控件的ID设置为:IDC_RENDER 步骤一: 加入OpenGL的lib文件和头文件 在项目上单击右键,添加OpenGL的lib文件,freeglut_static.lib…
前言 FineUI中的Window控件常用作选择.新增或编辑内容.而关闭Window控件却有很多技巧,了解这些技巧有助于项目的快速开发. 如何关闭Window控件 第一个问题就是如何关闭Window控件,最明显的方式就是右上角的关闭图标了.总的说来,有三种方式: ESC按键(在Window控件所在页面获取焦点的情况下,按下键盘的ESC将会关闭当前激活窗体) 窗体右上角的关闭图标 用户自定义的关闭按钮 前两种方式自不必说,那么如何自定义关闭按钮呢?有两种做法: 按钮禁用回发,在页面初始化时注册关闭…
winform退出或关闭窗体时弹窗提示代码,当我们点击窗体的 X 按钮时,会弹出一个对话框,询问我们是直接退出,还是最小化到托盘,还是取消这个行为.或是是否保存当前修改等等.以下以最小化到托盘为例.        首先, 要确定已经将控件NotifyIcon拖到应用窗体中,属性name为notifyicon1. 然后, 双击窗体的FormClosing的事件 ,具码内容如下: private void Form1_FormClosing(object sender, FormClosingEve…
目的:要循环刷新界面上的控件,同时不影响用户操作.循环结束后关闭窗体. 步骤:先创建一个窗体,窗体中拖入一个lable控件(label1),一个button控件(button1) 代码窗口输入: /// <summary> /// 开始按钮单击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param&…
C#在关闭窗体的时候,有时线程还在后台执行,没有及时退出. 处理方案: 为Form添加FormClosing事件,加入以下语句,在退出时,杀死本进程. System.Diagnostics.Process.GetCurrentProcess().Kill();…
winform中如果每次打开的窗体都是通过new出来的,发现几次过后就会出现提示”内存不足“问题,那么在关闭窗体的时候怎么处理可以及时释放内存?dispose方法可能也无法解决这个问题.我们可以每次在关闭窗体的时候刷新存储器来彻底释放内存. using System; using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.IO; using System.Run…
http://www.cnblogs.com/HappyEDay/p/5713707.html 这里粘贴原文权当备份了. C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他们各自的方法不一样,下面我们就来详细介绍一下. 1.this.Close();   只是关闭当…
由于程序采用MVVM模式同时有些操作需要单独窗口来进行处理.因此就会产生窗口关闭问题, 由于是MVVM和需要操作弹出窗口中操作的内容因此就需要在mvvm进行统一处理. 网上查了几种方法采用其中一种 不知道是合理,但是可以实现我所需要的效果,贴出来大家可以参考一下,同时也请给出更好地方案. 1首先给弹出窗体起一个名字. 这里有个要注意的就是 弹出的子窗体 要与主窗体采用同一个ViewModel这样方便数据传输. 或者采用事件委托,子窗体关闭之后要将操作处理的结果 委托给 主窗体所属的ViewMod…
最近使用mfc 做了一个cef得浏览器 多标签得.当使用这个封装得浏览器一段时间之后(超过1分钟2分钟) 当关闭封装得浏览器整个窗体 x得时候,整个窗体又重新弹了出来. 大概现象就是一个exe程序你杀掉了之后它又重新启动了. 后来对比了一下别得例子,发现了一个可能会导致mfc应用程序重启的地方: // CmhtBrowserApp 构造 CmhtBrowserApp::CmhtBrowserApp() { // 支持重新启动管理器 m_dwRestartManagerSupportFlags =…
qt 给win32 发送消息很简单,但是要获取windows 消息却十分复杂,最后想了一个不是很完美 但是也是以现在本人能力所能实现的唯一途径了,基本原理是 利用vc编写一个mfc 的dll ,这个dll 中创建一个透明窗体,利用这个dll 获取win32 API 消息. 源码 已经在vs2010 vs6.0 qt 4.7 下试验通过 下面贴出 重要的实现源码: VC dll- ReceiveMessage.cpp #include "stdafx.h" #include "…
一.大小和位置都改变 1.首先为窗体类添加CRect m_rect,该成员变量用来记录窗体的当前大小. 2.在类向导里面(Ctrl+W),为窗体添加消息WM_SIZE的响应函数OnSize(): 注意if(nType==1) return;这一句必须添加,否则最小化恢复的时候会出错. [cpp] view plaincopy void CPaperManagementDlg::OnSize(UINT nType, int cx, int cy)    {       CDialog::OnSiz…
实现一个增值功能, 在xtraTabbedMdiManager组件TabPage标题上右鍵弹出关闭当前窗体的菜单. C# Code: private void xtraTabbedMdiManager1_MouseUp(object sender, MouseEventArgs e){   //点左键无效, 必须是点右键弹出菜单   if (e.Button != MouseButtons.Right) return;      BaseTabHitInfo hint = xtraTabbedM…
OnInitDialog OnInitDialog是MFC的面向对象编程语言的类CDialog中的初始化成员函数名(虚函数).相当于对对话框进行初始化处理.   属    性 初始化成员函数名 处    理 相当于对对话框进行初始化处理 返回值 返回非零值 函数原型 CDialog::OnInitDialog virtual BOOL OnInitDialog();//相当于对对话框进行初始化处理   返回值: 指定对话框是否对它的一个控件设置输入焦点.如果OnInitDialog返回非零值,W…
1.首先定义初始窗体,和主窗体. 初始窗体(StartWindow) 主窗体(MainWindow): 2.在主窗体界面中,加载初始窗体.注意在线程中操作UI元素需要使用BeginInvoke或者Invoke方法. StartWindow start; public MainWindow() { InitializeComponent(); Thread thread = new Thread(LoadResource); thread.Start(); this.Visibility = Vi…
什么不说了.先上程序截图: 执行结果是有一棵有星星在闪烁的圣诞树.还会循环播放背景音乐. 之前也是在网上看到类似的一个程序.然后自己近期也在学MFC.所以就模仿着写了一个, 当中使用的是GDI+来显示.png透明背景的图片.图片是在网上找的一张,然后又用PS把当中发光的星星给去掉了.做了一张不带发光星星的 .png图片,然后在程序中使用一个定时器来定时刷新窗体背景,使用这两张图片交替变换,实现星星闪烁的动画效果,利用MCI来播放.mp3的 背景音乐(假设想更改背景音乐.请先删除res目录下的so…
this.Close();   只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出: Application.Exit();  强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出: Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题: System.Environment.Exit(0);   这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束…
以前从未注意过初始化函数的返回值,今天看到书中所述,以后可能用得上. OnInitDialog的返回值告诉windows如何处置输入焦点,如果返回 TRUE,则windows将输入焦点指派给制表键控制次序中的第1个控件.如果要把输入焦点指派给其他控件,如IDC_EDIT,则需要调用控件的SetFocus函数,并且OnInitDialog的返回值为FALSE(禁止系统自己设置输入焦点).通过将控件ID传递给GetDlgItem,可以获得调用SetFocus所需的CWnd指针,例子如下: 一般默认的…
Thread th = new Thread(Excute); th.IsBackground = true;这样就解决问题了. 这个属性的意思就是把线程设置为后台线程. 然后关闭进程的同时,线程也会随之关闭.  …
以保存DataGridView里面的数据为例: 通过窗体增加的数据,没有用数据库保存,可以使用StreamWriter将数据存在临时文件里面,再次打开窗体时写入即可. private void Form1_FormClosing(object sender, FormClosingEventArgs e) { //需要将集合中的数据存储 using (StreamWriter sw=new StreamWriter("save.txt")) { foreach (var item in…
//关闭,父窗口弹出对话框,子窗口直接关闭this.Response.Write("<script language=javascript>window.close();</script>");//关闭,父窗口和子窗口都不弹出对话框,直接关闭this.Response.Write("<script>");this.Response.Write("{top.opener =null;top.close();}")…
设置窗体属性KeyPreview=True. private void Form1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Escape)Application.Exit(); }…
实现效果: 知识运用: KeyEventArgs类的KeyData属性 //获取KeyDown或KeyUp事件的键数据 public Keys KeyData {get;} 实现代码: private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Escape) { if (MessageBox.Show("你确定要关闭吗?", "", MessageBoxButt…
//1.将窗体的属性KeyPrieview设置为true //keypreview属性为true的时候,就可以响应键盘事件v //2.在窗体KeyDown事件中加如下代码 private void Form1_KeyDown(object sender, KeyEventArgs e) { if( (e.KeyCode == Keys.F4)&&(e.Alt==true)) //屏蔽ALT+F4 { e.Handled = true; } } //e.Handled属性:获取或设置一个值,…
我单机确定还会显示窗体?? Application.Terminate;…
调用this.Close();后监听Browser_FormClosed加作处理 this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Browser_FormClosed); private void Browser_FormClosed(object sender, FormClosedEventArgs e) { System.Diagnostics.Process process = System.…
CWnd* h_d2 = AfxGetApp()->GetMainWnd(); //获取主窗口的句柄 h_d2-> GetDlgItem(IDC_EDIT2)->GetWindowText(strSend); //IDC_APOETRY_EDIT为编辑框的ID…
//System.Environment.Exit(0); //Process.GetCurrentProcess().Kill(); //System.Threading.Thread.CurrentThread.Abort(); System.Diagnostics.Process.GetCurrentProcess().Kill();             Application.Exit();…
我用的vs05.先随便起个名字qwerty. 确定以后在左边最下面有一个生成的类,点击生成的类,把基类改成CFormView 最后点击完成就创建好了. 单文档的窗口不是后来创建后插入的,是在创建后就自带的.…
private void Lba_IE_Form_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("确实要退出服务程序吗?", "退出程序", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { Dispose(); Application.Exit(); } else {…