以下内容有大部分转载自CSDN,经过自己整理完成. 该文主要的方法为在非模态对话框中自定义一组消息函数,然后在主窗口中开辟一个线程通过线程把消息传递给子窗口进行更新. 在子窗口类中定义消息如下: /*************************************************子窗口*******************************************************************************/ 消息函数定义 afx_msg LRE…
由于非模态对话框的自己没有消息循环,创建后无法进行消息处理.需要和父窗口共用消息循环.如果单独在子窗口进行控件由于自己没有单独的消息循环,更新是无法进行的. 如果在父窗口更新控件会造成程序假死.如以下代码在主窗口更新子窗口消息,界面进入假死状态.因为主界面对主进程进行了sleep(100),如下代码所示 void CModelessDlg::OnBnClickedOk() { DLGModeLess *pDlg = new DLGModeLess(); pDlg->Create(IDD_DG_M…
按照我们的之前的做法,先新建工程. 把基本的内容都添加上. 形成这样一个样子: 并且进行试运行,让程序能够完成加法运算. 值的注意的是,静态文本那里要改一下名字,否则无法将成员变量进行添加. 前期准备: 然后就可以开始做我们的非模态对话框了. 一.创建这样一个对话框 到资源视图下面的,找到Dialog右击,出现下拉菜单.点击插入Dialog. 这步,应该都很熟练,先拖动两个按钮(否则可能会发生问题),然后稍微调整对话框的大小,最后添加一个静态文本.输入一些文字. 二.右键当前对话框,然后找到添加…
个人的编程经验认为:对于非模态对话框,按下ESC键和点击红叉都会响应OnCancel()函数,而不会去响应OnClose()函数. 我们都知道,如果想屏蔽Enter键,只须重写OnOK()函数即可(重写成空函数即可).但是屏蔽ESC键却不能这样做,原因很 明确:这样也会屏蔽红叉的.下面提供一种屏蔽ESC键的方法,个人认为比较有用: 即重写PreTranslateMessage()函数: BOOL CToolDlg::PreTranslateMessage(MSG* pMsg) { // TODO…
非模态对话框需要重载OnCanel方法, 并调用DestroyWindow, 且不能调用基类的OnCanel重载PostNcDestroy, 需要delete掉this指针 // Overrides    // ClassWizard generated virtual function overrides    //{{AFX_VIRTUAL(CDlgTest)    protected:    virtual void DoDataExchange(CDataExchange* pDX); …
基于VS2010 MFC的项目是之前建好的,后来需要添加数据库. 方法分享于此. 1.  打开自己的项目,项目->添加类. 2. 选MFC ODBC使用者,点右下角的添加. 3. 点数据源. //动态集:当修改数据库数据后将被同步到数据库 //快照:即静态的,非同步的 4. 点新建. //文件数据源把信息保存到一个文件中,这个文件可以复制到你的程序中. //而机器数据源是把信息保存到注册表中,没有文件可复制,你换个机器就没这个数据源了. 5. 根据自己数据库的类型来选择,然后下一步.(我的文件是…
dialog.h afx_msg LRESULT OnAcadKeepFocus(WPARAM, LPARAM); dialog.cpp BEGIN_MESSAGE_MAP(CTextDialog, CDialogEx) ON_MESSAGE(WM_ACAD_KEEPFOCUS, OnAcadKeepFocus)END_MESSAGE_MAP() LRESULT CTextDialog::OnAcadKeepFocus(WPARAM, LPARAM) { return (TRUE);}…
1. $.ajax提交请求进行数据更新,并通过回调进行有效提示 function updateAudit(dispacher, control) { var currentpage = document.getElementById("currentpagevalue").value; var count = 0; var frm = document.dataListFrom; var tmp; for (i = 0; i < frm.elements.length; i =…
网站开发中,常常会遇到需要弹出窗体的情况,一般弹出框有模态和非模态两种,如下: 模态:window.showModalDialog() 非模态:window.showModelessDialog() 另外还有window.open 方法,以及通过div来模拟弹出框效果的形式. window.open请自行百度,了解不深:div模拟的方式不适用与,弹出框中某些组件与父页面组件不相容的情况,如笔者所在项目,父页面中的jquery与整个网站js框架不相容(当然不是简单的可以通过替换$关键字来解决).所…
新建一个基于对话框的MFC程序,对话框上添加了RichEdit控件,编译成功后无法运行起来,Debug版本与Release版本均不行! Windbg分析结果: WARNING: Stack unwind information not available. Following frames may be wrong.00 003df80c 76447a25 00000000 77e8f3b0 ffffffff ntdll!ZwTerminateProcess+0x12*** ERROR: Sym…