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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven教程之春

1.简介 在本文中,我们将演示如何针对非常特定的用例对Spring使用Maven依赖项。 我们使用的所有库的最新版本都可以在Maven Central上找到。 对于一个有效的构建周期而言,了解Maven依赖项的工作方式以及如何对其进行管理非常重要,并且对于在我…

【MFC系列-第11天】CWinApp类成员分析

11.1 资源管理器开发&#xff08;C语言&#xff09; 三种位运算 //#include <AtlBase.h> //混合 c_file.attrib | _A_HIDDEN|_A_RDONLY; //判断使用if(c_file.attrib & _A_HIDDEN) //删除属性c_file.attrib&~_A_HIDDENT;11.2 资源管理器开发&#xff08;API&a…

【MFC系列-第12天】Windows系统对话框

12.1 INI配置文件 UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault ); 从应用程序的配置文件&#xff08;.INI&#xff09;的一个配置项中获取一个整数 CString GetProfileString(LPCTSTR szSection, LPCTSTR szEntry, LPCTSTR szDefault NULL )…

【BCH码2】BCH码的快速BM迭代译码原理详解及MATLAB实现(不使用MATLAB库函数【全部代码需私信另外付费获取】)

理论基础 订阅《信道编码》专栏,首先查阅各子程序的详解 【有限域生成】本原多项式生成有限域的原理及MATLAB实现 【有限域除法】二元多项式除法电路原理及MATLAB详解 【有限域元素加法和乘法】有限域元素加法和乘法的原理及MATLAB实现 【多元域乘法】多项式乘法电路原理…

【MFC系列-第13天】Windows系统对话框(对话框记事本逻辑)

13.1 内存泄露问题 真正的内存泄露是有循环性反复申请而不释放内存&#xff1a;是指在软件运行时&#xff0c;比如点一下某按钮就申请一次堆空间&#xff0c;而在下次申请前或者适当的时机及时释放内存&#xff1b; Detected memory leaks! Dumping objects -> {225} norm…

js 实现轻量ps_简单轻量的池实现

js 实现轻量ps对象池是包含指定数量的对象的容器。 从池中获取对象时&#xff0c;在将对象放回之前&#xff0c;该对象在池中不可用。 池中的对象具有生命周期&#xff1a;创建&#xff0c;验证&#xff0c;销毁等。池有助于更好地管理可用资源。 有许多使用示例。 特别是在应用…

【MFC系列-第14天】MFC核心类库的成员介绍(记事本快捷键)

14.1 对话框快捷键的设置和加载 a) 插入一个新的Accelerator到资源里&#xff0c;把加速键和对应的响应控件(如一个按钮)关联 b) 在对话框头文件中声明 HACCEL m_hAccel;c) 在对话框的构造函数里初始化m_hAccel m_hAccel ::LoadAccelerators(AfxGetInstanceHandle(),MAKEI…

【MFC系列-第15天】关联变量的概念与用法

15.1 权限管理对话框的信息录入与保存 15.2 控件型关联变量&#xff1a; FromHandle和DeleteTempMap管理成员对象表&#xff0c;前者由HWND获取CWnd*&#xff0c;后者进行删除。 BOOL Attach( HWND hWndNew ); //关联 HWND Detach( ); //解除关联 BOOL SubclassWindow( HWND…

【MFC系列-第16天】企业信息管理软件开发

常见的两种类和类之间相互调用的方法。 16.1 用户权限信息在不同对话框之间共享 ①在CWokerApp类中定义变量&#xff1a; class CWorkerApp : public CWinApp { public:CWorkerApp();SAdmin m_admin;//登录信息 // 重写 public:virtual BOOL InitInstance(); // 实现DECLARE…

java微妙_编码Java时的10个微妙的最佳实践

java微妙这是10条最佳实践的列表&#xff0c;这些最佳实践比您的平均Josh Bloch有效Java规则要微妙得多。 尽管Josh Bloch的列表很容易学习&#xff0c;并且涉及日常情况&#xff0c;但此处的列表包含了涉及API / SPI设计的较不常见的情况&#xff0c;尽管这些情况可能会产生很…

【MFC系列-第17天】企业信息管理软件开发

关注公号【逆向通信猿】更精彩&#xff01;&#xff01;&#xff01; 17.1 数值型关联变量&#xff1a; a)在MFC中有部分控件支持数值型关联变量&#xff1a; 编辑控件、下拉控件、单选按钮、复选框以及日期控件&#xff1b; b)在类向导中为控件建立关联变量时&#xff0c;选…

GraphQL在Wildfly群上

“ GraphQL是API的查询语言&#xff0c;是用于使用现有数据完成这些查询的运行时。 GraphQL为您的API中的数据提供了一个完整且易于理解的描述&#xff0c;使客户能够准确地询问他们所需的内容&#xff0c;仅此而已&#xff0c;使随着时间的推移更容易开发API并启用强大的开发人…

【MFC系列-第18天】企业信息管理软件开发

关注公号【逆向通信猿】更精彩&#xff01;&#xff01;&#xff01; CWnd类中常用的成员函数 函数名称含义static CWnd* PASCAL GetActiveWindow( )&#xff08;进程内的&#xff09;获取活动窗口CWnd* SetActiveWindow( )&#xff08;进程内的&#xff09;将一个窗口设置为…

【MFC系列-第19天】初步认识GDI绘图技术

WM_PAINT消息测试 调试输出字符串 OutputDebugSting(_T(“WM_PAINT-OnPaint\n”));1、WM_PAINT&#xff1a;功能和发生时间 2、BeginPaint和EndPaint必须成对使用。 a)BeginPaint返回的DC句柄&#xff0c;是基于关联的窗口客户区坐标系绘图 b)MFC把这两个函数封装为一个类…

javafx 示例_示例介绍:JavaFX 8打印

javafx 示例我有一段时间没有写博客了&#xff0c;我想与其他人分享有关JavaFX的所有信息&#xff08;我的日常工作和家庭可能是借口&#xff09;。 对于那些对此博客不熟悉的人 &#xff0c;我是JavaFX 2 Introduction by Example&#xff08;JIBE&#xff09;的作者&#xff…

【MFC系列-第20天】CDC绘图类成员介绍

20.1 三大坐标系&#xff1a;屏幕、客户区和非客户区 20.2 三大派生类&#xff1a; a)CPaintDC(客户区标准绘图&#xff09;,内部封装函数是&#xff1a;BeginPaint和EndPaint b)CClientDC&#xff08;客户区非标准绘图&#xff09;,内部是&#xff1a;::GetDC和ReleaseDC …

Spring Data JPA教程

在Java类或对象与关系数据库之间管理数据是一项非常繁琐且棘手的任务。 DAO层通常包含许多样板代码&#xff0c;应简化这些样板代码&#xff0c;以减少代码行数并使代码可重复使用。 在本教程中&#xff0c;我们将讨论Spring数据的JPA实现。 1.简介 1.1什么是JPA&#xff1f;…

【MFC系列-第21天】GDI算法实战——过渡色

21.1 Caption过渡色实现 // 方法一 void CCaptionDlg::DrawColorTitle(CRect rect, COLORREF col1, COLORREF col2,CDC* pDC) {int cx rect.Width();int red GetRValue(col2) - GetRValue(col1);int green GetGValue(col2) - GetGValue(col1);int blue GetBValue(col2) -…

在Spring MVC中处理域对象

最近&#xff0c;我惊讶于一个代码库在其所有域实体中都具有公共默认构造函数&#xff08;即零参数构造函数&#xff09;&#xff0c;并且所有字段都具有getter和setter。 当我深入研究时&#xff0c;我发现域实体之所以如此&#xff0c;主要是因为该团队认为Web / MVC框架需要…

【有限域元素加法和乘法】有限域元素加法和乘法的原理及MATLAB实现

关注公号【逆向通信猿】更精彩!!! 有限域 仍然以 r = 4 r=4 r=4,