1. CWnd::Attach BOOL Attach( HWND hWndNew ); 返回值:如果成功,则返回非零值:否则返回0. 参数: hWndNew 指定了Windows窗口的句柄. 说明:将一个Windows窗口与CWnd对象相连接. CWnd::SubclassWindow BOOL SubclassWindow( HWND hWnd ); 返回值:如果函数成功,则返回非零值:否则返回0. 参数: hWnd 窗口句柄. 说明:调用这个成员函数以动态子类化一个窗口,并将它与这个CWn…
在自绘窗口的时候,子类化是MFC最常用的窗体技术之一.什么是子类化?窗口子类化就是创建一个新的窗口函数代替原来的窗口函数. Subclass(子类化)是MFC中最常用的窗体技术之一.子类化完成两个工作:一是把窗体类对象attach到一个windows窗体实体中(即把一个窗体的hwnd赋给该类).另外就是把该类对象的消息加入到消息路由中,使得该类可以捕获消息. 而通常我们会碰到DDX_Control.SubclassWindow.SubclassDlgItem等,不同的子类化方法.首先先看下面的代…
转载自:xntop的<区别MFC中的CClientDC.CWindowDC.CPaintDC.CMetaFileDC> CClientDC及其子类 1. CClientDC类只能在客户区绘图:2. 所谓客户区指窗口区域中去掉边框.标题栏.菜单栏.工具栏.状态栏等之外的部分,它是用户可以操作的区域:3. 在使用CClientDC进行绘图时,一般要调用GetClientRect()函数来获取客户区域的大小:4. CClientDC类在构造函数中调用Windows API函数GetDC(),在析构时…
EF:加入容器三种方式-->查询,attach,entry.不在容器里,不能用remove,add等方法. 1.0 使用Attach可能会出错.//attach 意思:附上; 贴上,系;var db = new PhoneBookEntities();var queryCi=db.ContactInfo.FirstOrDefault(c => c.ID == 10);//使EF容器中存在代理类,状态UnchangedContactInfo ci=new ContactInfo(){ID=10}…
背景 Visual Studio C++ 创建新项目蹦出来如下选项: Win32控制台应用程序,Win32项目,MFC有什么区别? 正文: Win32控制台,没有界面,命令行执行生成的文件则直接在后台运行,运行效果如下:生成的“.exe”文件相当于Linux系统下用gcc编译出来一个“.out”文件,直接运行操作即可,只有命令符,没有界面. Win32项目这个就有界面了,但是界面里面的控件,基本上要自己去实现. MFC项目这个也有界面,可是界面里面的控件就不需要自己实现了,常用的控件都已经在MF…
转自:http://blog.csdn.net/c_base_jin/article/details/52304845 在windows编程中,我们或多或少都听说这三个名称,分别是Win32 Console Application.Win32 Application.MFC.估计也有很多人,对此感到疑惑,今天从网络上收集了资料,并整理归纳,完整的介绍三者内在联系. Win32 Console Application Win32 Console Application是指win32控制台应用程序,…
何谓消息.消息处理函数.消息映射?消息简单的说就是指通过输入设备向程序发出指令要执行某个操作.具体的某个操作是你的一系列代码.称为消息处理函数. 在SDK中消息其实非常容易理解,当窗口建立后便会有一个函数(窗口处理函数)开始执行一个消息循环,我们还可以清楚的看到消息处理的脉络.一个switch case语句就可以搞定,消息循环直到遇到WM_QUIT消息才会结束,其余的消息均被拦截后调用相应的处理函数. 但在封装了API的MFC中,消息似乎变的有些复杂了,我们看不到熟悉的switch case语句…
原文网址:http://blog.csdn.net/holybin/article/details/28403109 一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox( HWND hWnd,          // handle of owner window LPCTSTR lpText,     // address of text in messa…
转载:http://blog.csdn.net/phenixyf/article/details/41744039 一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox( HWND hWnd,          // handle of owner window LPCTSTR lpText,     // address of text in messag…
Windows对象是以句柄来标识的,对应的MFC类就是这些句柄的C++包装.内存中的Windows对象一定有唯一的句柄来标识,但不一定有对应的MFC类对象在内存中.当需要获取Windows对象的对应MFC类对象而内存中又没有此对象时,系统会创建一个临时MFC类对象返回给用户,并在之后某个空闲时刻进行回收.   Windows对象句柄及其对应的MFC类如下表所示: HWND CWnd及派生类 HDC CDC及派生类 HMENU CMenu HPEN.HBRUSH.HFONT.HBITMAP.HPA…
windowsmfc编程c 目录(?)[-] Windows对象句柄与MFC对象 windows对象 句柄 mfc对象 杂谈 Windows对象.句柄与MFC对象 (2009-04-28 22:11:34) 转载 标签: windows对象 句柄 mfc对象 杂谈 分类: MFC以及Windows编程 Windows对象是以句柄来标识的,对应的MFC类就是这些句柄的C++包装.内存中的Windows对象一定有唯一的句柄来标识,但不 一定有对应的MFC类对象在内存中.当需要获取Windows对象的…
作者:刘国华链接:https://www.zhihu.com/question/35218485/answer/118472021来源:知乎著作权归作者所有,转载请联系作者获得授权. 从使用感受而言,VCL甩MFC不知道多少条街,VCL虽然是基于Pascal实现的,然后C++Builder又在上面套了一层C++的壳,但是对于使用C++的人来说,已经非常好用了.记得当时(2002年左右)是在书店无意间看到一本介绍C++Builder的书,翻开看了看,感觉像是发现了宝贝:“原来C++开发工具还有这么…
一.MessageBox()用法 1.函数原型 Messagebox函数在Win32 API和MFC里的定义有区别. Win32 API的定义如下: int WINAPI MessageBox(      HWND hWnd,          // handle of owner window      LPCTSTR lpText,     // address of text in message box      LPCTSTR lpCaption, // address of titl…
VC2010 编译 Media Player Classic - Home Cinema (mpc-hc) Media Player Classic - Home Cinema (mpc-hc)播放器一个经典的影音播放器,免费软件,可播放CD.VCD.DVD.及MP3.MP4.AVI.AAC等多种影音格式.与此同时,它还是开源的.今天尝试着编译了一下它的源代码(还是第一次接触这么大的MFC工程) 第一步::准备   1. 安装 Visual C++ 2010(不能是Express版本)   2.…
===================================================== Media Player Classic - HC 源代码分析系列文章列表: Media Player Classic - HC 源代码分析 1:整体结构 Media Player Classic - HC 源代码分析 2:核心类 (CMainFrame)(1) Media Player Classic - HC 源代码分析 3:核心类 (CMainFrame)(2) Media Play…
按键消息的拦截 拦截是为了在原有功能的基础上增加自己的操作 扩展:当按钮接收到点击消息的时候,响应的是WM_LBUTTONDOWN消息,按钮的会被这个消息打包成一个WM_COMMAND 消息发送给父窗口,父窗口接收到之后再进行处理 关键函数 SetWindowLong \ SetClassLong 区别在于一个修改的是一个窗口,一个会影响到所有使用这个窗口类的窗口 // 保存旧的按钮回调WNDPROC OldButtonProc = nullptr;​// 用于处理接管到的消息的回调函数LRES…
Docker容器命令 前提 执行容器的前提是有镜像 . #创建并启动容器 docker run [options] images [command][args] // option 的说明 --name='容器的新名字' :为容器指定一个名称 : -d: 后台运行容器,并返回容器ID,也即启动守护式容器 -i:以交互模式运行容器,通常与 -t 同时使用: -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用: -P: 随机端口映射: #示例 docker run -it -d -P --n…
概述 连接容器, 退出容器 命令 run exec attach 退出 选项 -i -t -d 1. docker run 概述 docker run 通常用来创建新容器 docker run 的 三个命令行选项 ref Confused about Docker -t option to Allocate a pseudo-TTY 命令行选项 相关的实验 准备 基础命令 # 下面这个, 是 基础命令 # 后面的 命令行选项, 会按照这个模式插入 > docker run ubuntu:18.0…
前言 随着devops的兴起,Docker 近年来越来越火,容器化概念也越来越火.此篇将带你瞬间入门Docker. Docker 概述 Docker 出现的背景 在我们的开发过程中,通常是这样的一种流程.开发人员将程序开发完成,交给运维人员,由运维人员在正式的环境服务器上,搭建程序需要的环境支撑,然后部署程序.开发人员和运维人员需要进行沟通很多问题,例如:数据库是什么的?什么版本啊?Redis 是什么配置?什么版本啊?这种问题每时每刻都在发生,即使开发人员将版本,配置列的很清楚,也有可能由于某种…
http://blog.csdn.net/swimmer2000/archive/2007/10/30/1856213.aspx MFC(VC6.0)的CWnd及其子类中,有如下三个函数:     // From VS Install PathVC98MFCIncludeAFXWIN.H    class CWnd : public CCmdTarget    {        ...    public:        ...        virtual BOOL PreCreateWind…
一.Windows对象和MFC对象的区别?MFC对象实际上并没有把整个Windows对象都包装在其中.对于窗口:MFC对象它只是有一个窗口句柄而已,这个窗口句柄如果指向一个实际存在的窗口对象(窗口对象,也就是WNDCLASS,是一个Windows对象),那么这个MFC对象就是有效的,否则这个MFC对象是空的.如果你还不明白,请回忆一下,当我们使用MFC创建一个窗口时,是分两步进行的:第一步,new一个CWnd对象,这一步是创建MFC对象,但是其中的HWND还是非法的,因为对应的Windows对象…
其实这篇文章说的很明白了:http://dev.gameres.com/Program/Other/DebugMacro.htm 结论如下: 1.ASSERT()测试它的参数,若参数为0,则中断执行并打印一段说明消息:非0什么事儿都不做.在 Release 版本的程序中它不起任何作用.    2.VERIFY()和 ASSERT()很相似,区别在于在 Release 版本中它仍然有效,但只计算参数值,不输出诊断信息.    ASSERT()使用的时候必须保证参数表达式中不能有函数调用(译者注:A…
有时候遇到一些初学者问我这个问题:在VS中使用MFC和ATL与使用WIN32有什么联系或区别?通俗来说,win32是通过调用windows api去实现需要的功能.而MFC和ATL是封装好的类库,包含windows API和一些算法,提供给用户去使用.每一种类库代表了一种编程思想.打个很简单的例子,如果你喜欢自己维修东西,可以自己去商店掏锤子.螺丝刀.电工刀.钳子等等,也可以去买一个博世工具箱,里边各种工具一应俱全.自己淘货相当于使用win32调用windows api.买的工具箱相当于封装好的…
今天看到的,感觉不错.转载了 一.什么是MFC 微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个输助软件开发包,MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范…
最近MFC写了个程序,生成release版,原来正常,后来删掉了些控件再编译运行,结果竟然报内存读写错误,debug却是正常的.后来将“Project   Settings”   中   “C++/C    ”   项目下优化选项改为Disbale(Debug),就又能正常运行了. DEBUG和RELEASE   版本差异及调试相关问题[转]                                                                              …
Win32通常是指sdk编程方法,app没有被封装,开发人员需要自己搭程序框架:mfC则是以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量 (整理自CSDN,http://topic.csdn.net/u/20090611/20/a0532864-3890-4a67-b649-ecbf31d4fc70.html,感谢各位的智慧,学习了) MFC就是 微软给你包装了的库,提供了很多扩展功能,以及高级功能,这样方便你使用,而不是自己从头调用API…
1. void Invalidate( BOOL bErase = TRUE ); 该函数的作用是使整个窗口客户区无效.窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘.这时Windows会在应用程序的消息队列中放置WM_PAINT消息.MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口.视图类有一些例外,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工作由OnD…
问题 问题:我在视图画的图象或者文字,当窗口改变后为什么不见了?OnDraw()和OnPaint()两个都是解决上面的问题,有什么不同? OnDraw()和OnPaint()好象兄弟俩,因为它们的工作类似. 至于不见了的问题简单,因为当你的窗口改变后,会产生无效区域,这个无效的区域需要重画.一般Windows回发送两个消息WM_PAINT(通知客户区 有变化)和WM_NCPAINT(通知非客户区有变化).非客户区的重画系统自己搞定了,而客户区的重画需要我们自己来完成.这就需要OnDraw()或 …
问题 问题:我在视图画的图象或者文字,当窗口改变后为什么不见了?OnDraw()和OnPaint()两个都是解决上面的问题,有什么不同? OnDraw()和OnPaint()好象兄弟俩,因为它们的工作类似. 至于不见了的问题简单,因为当你的窗口改变后,会产生无效区域,这个无效的区域需要重画.一般Windows回发送两个消息WM_PAINT(通知客户区 有变化)和WM_NCPAINT(通知非客户区有变化).非客户区的重画系统自己搞定了,而客户区的重画需要我们自己来完成.这就需要OnDraw()或 …
组件(Component)和对象(Object)之间的区别 先明确组件(Component)和对象(Object)之间的区别.组件是一个可重用的模块,它是由一 组处理过程.数据封装和用户接口组成的业务对象(Rules Object).组件看起来像对象,但不符合对象的学术定义.它们的主要区别是: 组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用: 组件可以由一个类构成,也可以由多个类组成,或者是一个完整的应用程序: 组件为模块重用,而对象为代码重用.现在,…