10.1 程序左上角图标设置

通过SendMessage发送WM_SETICON消息来设置

10.2 纯Win32程序开发和技巧(借助MFC源码)

10.3 非模式对话框的调用

a)调用CDialog::Create函数来创建,并且调用ShowWindow来显示;

b)单例模式每次判断句柄存在就不重新创建,只要前端显示出来;

c)多例模式每次在堆空间中申请一个新的对象,再执行Create函数;

d)对话框属性设置中,如果打开Visible属性缺省就是可见(不用调用ShowWindow);

e)在Create函数第二个参数中带入GetDesktopWindow函数,可以让非模式对话框成为独立窗口,在任务栏中有窗口显示;

10.4 MFC全局函数

MessageBox(API), CWnd::MessageBox(method)

AfxMessageBox:如果本进程没有主窗口不跟任何窗口关联,但是也会找到主窗口进行附着;如果有主窗口就回附着在主窗口上;

AfxGetApp():获取全局变量theApp(CWindApp)类对象的地址

AfxGetInstanceHandle:获取theApp中的m_hInstance句柄(来自于WinMain参数)

AfxGetAppName():获取程序名称(跟三样东西有关系?)

AfxGetMainWnd():优先获取theApp.m_pMainWnd指向的窗口类对象,如果该指针为空则以激活状态的窗口为主窗口;
AfxInitRichEdit():对RichEdit控件初始化(否则不能使用该控件)

AfxSocketInit():内部调用WSAStartup函数(API)

CModalDlg::CModalDlg(CWnd* pParent /*=NULL*/): CDialogEx(IDD_MODAL_DIALOG, pParent)
{// 获取全局对象地址CWinApp* pApp = AfxGetApp();//加载图标m_hIcon = pApp->LoadIcon(IDR_MAINFRAME);// 获取实例句柄HINSTANCE hInst = theApp.m_hInstance;HINSTANCE hInst1 = AfxGetInstanceHandle();//获取程序名称LPCTSTR sAppName = AfxGetAppName();LPCTSTR sApp = theApp.m_pszAppName;
}
BOOL CModalApp::InitInstance()
{//if (AfxMessageBox(_T("确定要启动吗?"), MB_YESNO | MB_ICONQUESTION) == IDNO)//   return FALSE;
//  AfxMessageBox(m_lpCmdLine); //指向命令行参数字符串的指针CString str;str.Format(_T("%d"), this->m_nCmdShow);AfxMessageBox(str);//AfxSocketInit();AfxInitRichEdit();CModalDlg dlg;//m_pMainWnd = &dlg;INT_PTR nResponse = dlg.DoModal();return FALSE;
}

this指针等价于theApp.m_pMainWnd

【MFC系列-第10天】非模式对话框开发相关推荐

  1. MFC模式对话框与非模式对话框 消息处理顺序 与非模式对话框的焦点问题、显示、关闭以及交互问题

    对话框有两种创建方式:DoModal和Creat. 其中DoModal创建的是模态的对话框,而Creat创建的是非模态的对话框下面总结下他们的不同. 对于模态的对话框,在该对话框被关闭前,用户将不能在 ...

  2. 如何创建MFC模式对话框与非模式对话框

    一.什么是模式对话框与非模式对话框: 简单的来说,模式对话框就是一种当子窗口未关闭时父窗口就无法被激活(也就是处于无法操作状态)的一种窗口.非模式对话框就是当子窗口未关闭时,父窗口依然能被操作的一种窗 ...

  3. MFC—对话框程序—模式对话框与非模式对话框

    一.根据主窗口类型,MFC软件工程可以分为以下几种架构模型: 1.SDI(Single Document Interface):单文档界面,一个主框架窗口下只能编辑一份文档. 例如:记事本和画笔等. ...

  4. 模式对话框和非模式对话框的区别(出自MFC windows程序设计第二版p370)

    模式对话框和非模式对话框的区别:(出自<MFC windows程序设计>第二版p370) 1.显示模式对话框需要调用CDialog::DoModal,而显示无模式对话框则要调用CDialo ...

  5. MFC创建模式对话框与非模式对话框

    一.创建模式对话框 1.分别添加如下三个对话框,其ID分别为IDD_ABOUT.IDD_CHAT.IDD_MFCTEST_DIALOG 双击"关于"按钮,添加相应的消息函数如下: ...

  6. 模式对话框与非模式对话框的区别

    模式对话框与非模式对话框的区别 模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口.例子:在桌面上右击我的电脑,选择属性,弹出系统属性窗口,点击下面的技术支持 ...

  7. 模式对话框与非模式对话框的区别2

    模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口.例子:在桌面上右击我的电脑,选择属性,弹出系统属性窗口,点击下面的技术支持,弹出技术支持信息,现在再对系统 ...

  8. windows对话框窗口DialogBox模式对话框、EndDialog、CreateDialog非模式对话框、DestroyWindow、WM_INITDIALOG

    普通窗口:自定义函数调用缺省函数 wndProc(-) { - DefWindowProc(-); } 对话框窗口:缺省函数 调用自定义函数 缺省函数(-){ - 自定义函数(-) - } 对话框原理 ...

  9. 极速理解设计模式系列:10.抽象工厂模式(Abstract Factory Pattern)

    五个角色:抽象产品角色(AbstractProduct).具体产品角色(Product).抽象工厂角色(AbstractFactory).具体工厂角色(ConcreteFactory).客户端(Cli ...

最新文章

  1. 影像组学视频学习笔记(30)-SMOTE解决数据不平衡的问题、Li‘s have a solution and plan.
  2. (译)如何使用cocos2d来制作一个打地鼠的游戏:第一部分
  3. 《Flex 第一步》
  4. 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器
  5. 【转】ABP源码分析三十一:ABP.AutoMapper
  6. SpringCloud Hoxton版微服务-RestTempalte + @LoadBlanced 实现负载均衡
  7. mysql 的标识符_MySQL查询或标识符在Jupyter中太长?
  8. Hive压缩存储性能测试
  9. vue中 点击二维码刷新图片(src不变)
  10. 位运算 取某一位 java_Java 位运算妙用
  11. SVN 删除文件及其恢复大全
  12. mysql 磁盘读取原理_mysql 底层原理
  13. latex 表格及标题居中
  14. 用Java SE 6.0实现高质量桌面集成开发 (转)
  15. mysql备份导出数据库结构_MySql数据库导出完整版(导出数据库,导出表,导出数据库结构)详解...
  16. python画平行坐标图_Python实现平行坐标图的两种方法小结
  17. 面试题总结:volatile的功能
  18. P2P通信中的NAT/FW穿越
  19. python爬取整个网站的广告敏感词_Python实现敏感词过滤的4种方法
  20. 区域颜色填充-四连通种子填充算法

热门文章

  1. 将状态机模式实现为流处理器
  2. 安装telnet_Flask干货:Memcached缓存系统——Memcached的安装
  3. IntelliJ IDEA for Mac 如何自定义快捷键_设置快捷键
  4. Linux命令行中的特殊符号_特殊字符
  5. 深度学习pytorch--线性回归(二)
  6. c# char unsigned_c – unsigned char和char指针之间的区别
  7. linux离线安装python3.7教程_Linux傻瓜式七步完美安装Python3.7
  8. C 常见的面试知识点(下)
  9. C语言指针变量的运算
  10. 东芝硬盘插入台式机后滴滴响