08 2017 档案

摘要:1、CWinThread这个类的两种用法: 1.1、CWinThread类没有界面,只是一个辅助其他线程工作的一个辅助线程, CWinThread::InitInstance()函数很重要:如果这个函数返回TRUE,那么MFC会调用Run()函数,进行消息循环, 如果这个函数返回FALSE,那么线程 阅读全文
posted @ 2017-08-31 23:25 _xiaohaige 阅读(151) 评论(0) 推荐(0)
摘要:这个消息是在程序空闲的时候被调用。 阅读全文
posted @ 2017-08-31 18:06 _xiaohaige 阅读(242) 评论(0) 推荐(0)
摘要:1、记得对指针进行管理,可以使用vector进行管理 阅读全文
posted @ 2017-08-29 15:25 _xiaohaige 阅读(126) 评论(0) 推荐(0)
摘要:1、初始化: 2、添加事件处理: 阅读全文
posted @ 2017-08-29 11:42 _xiaohaige 阅读(280) 评论(0) 推荐(0)
摘要:1、Slider控件使用WM_HSCROLL消息进行响应 其中Slider中的WM_HSCROLL消息的nPos是有一定问题的,不要使用,使用上面的获取方法就行,记得对指针进行释放。 2、Spin控件使用WM_VSCROLL消息进行响应 Spin的WM_VSCROLL消息可以用nPos参数。也可以使 阅读全文
posted @ 2017-08-29 10:49 _xiaohaige 阅读(451) 评论(0) 推荐(0)
摘要:1、ListBox: 2、ComboBox: 3、在不知道控件所在窗口时: 4、Windows中每一个控件都是一个窗口,每个窗口,都有一个HWND,还有一个窗口ID,也就是控件ID.。 阅读全文
posted @ 2017-08-29 01:14 _xiaohaige 阅读(271) 评论(0) 推荐(0)
摘要:1、使用资源编辑器,创建一个理想的对话框(通过属性性质,使对话框具有不同的形态,这个可以通过效果看出来) 2、给创建好的对话框资源,创建一个类,来代表这个对话框。 3、在想显示对话框函数中,创建一个对话框类的实例。 4、调用对话框实例的DoModal()函数。来显示出对话框。 8、以上是几个常用类的 阅读全文
posted @ 2017-08-28 21:46 _xiaohaige 阅读(170) 评论(0) 推荐(0)
摘要:1、创建字体类的步骤: 1.1、定义一个CFont类, 1.2、使用CFont类中的CreateFont()函数,创建一个字体就可以了,CreateFont()函数的第一个参数是字体的大小,最后一个是字体的类型。 2、字符串类的用法: 2.1、先定义一个CString类事例 2.2、然后可以用CSt 阅读全文
posted @ 2017-08-28 13:07 _xiaohaige 阅读(924) 评论(0) 推荐(0)
摘要:1、Window中,画图工具,最重要的一个东西:设备句柄。 2、Device Context--设备上下文,习惯叫设备句柄(代表一个画图工具),并且提供一套统一的接口,将硬件底层的差别隐藏起来, 3、好处:编程简单化、移植性。 4、CClientDC:客户区设备句柄。 5、CPaintDC:这个设备 阅读全文
posted @ 2017-08-28 01:12 _xiaohaige 阅读(1316) 评论(0) 推荐(1)
摘要:1、什么是映射模式:就是规定了频幕坐标的方向、单位、原点 2、映射模式是对设备句柄CDC来说的。 3、默认的设备句柄映射模式是:MM_TEXT 阅读全文
posted @ 2017-08-27 21:39 _xiaohaige 阅读(222) 评论(0) 推荐(0)
摘要:1、TRACE(L"%d", i);TRACE()函数可以帮我们进行调试, 2、 3、MFC中将这个消息循环隐藏了,给我们建立了一套更加方便的消息响应机制。 4、CRect类:这个类代表一个巨型 5、CPoint类:这个类代表一个点坐标 6、CSize类:这个类代表一个巨型区域大小 7、CRgn类: 阅读全文
posted @ 2017-08-27 14:14 _xiaohaige 阅读(279) 评论(0) 推荐(0)
摘要:1、想要进行GDI操作必须在指定的DC上进行。 2、GDI就是我们进行绘画的接口,也就是方法了。GDI就是一个集合的总称,包含了很多函数。 3、DC,是状态描述。 4、所以我们想要进行一个GDI函数的调用的时候,必须先获取到当前设备的DC(GetDC()、BeginPaint()),获取的DC是需要 阅读全文
posted @ 2017-08-27 10:22 _xiaohaige 阅读(428) 评论(0) 推荐(0)
摘要:1、一个视图类,只能对应一个文档类,一个文档类可以对应若干视图类 2、响应菜单消息WM_COMMAND消息的循序:CView、CDocument、CFrameWnd、CWinApp 阅读全文
posted @ 2017-08-26 18:11 _xiaohaige 阅读(122) 评论(0) 推荐(0)
摘要:1、WinApp:管理应用程序 2、CFrameWnd:管理程序的框架窗口 3、CView:管理程序的视图 4、CDocument:管理程序的数据 5、CWinApp* AFXAPI AfxGetApp();在程序的任何地方,调用这个函数,都可以获得CWinApp类的指针。 6、任何时候通过AfxG 阅读全文
posted @ 2017-08-26 12:24 _xiaohaige 阅读(269) 评论(0) 推荐(0)
摘要:1、CCreateContext,这个结构没有继承任何结构或者类。 2、当程序创建一个框架和视图类窗口,并且将这个视图类窗口,框架窗口和文档窗口进行关联的时候,使用这个结构。 3、 4、注意:这些类成员是可选的,都可以是null。 5、通常使用这个结构的函数如下: 6、在LoadFrame()函数中 阅读全文
posted @ 2017-08-26 00:42 _xiaohaige 阅读(2028) 评论(0) 推荐(0)
摘要:宏替换:在预编译阶段,对我们源程序文本进行处理。动态创建机制,实际是一种预编译替换机制 编译阶段:我们的源程序将不再发生任何改变。 阅读全文
posted @ 2017-08-25 19:11 _xiaohaige 阅读(144) 评论(0) 推荐(0)
摘要:1、MFC中,所有的类都派生于CObject类,那么也就是说CObject*可以指向MFC中任何类。 2、所以有时候自己都弄不清楚自己的类名。 3、 4、 5、动态创建 这个函数要求我们事先必须知道,程序员可能使用那些类名。 6、 这个宏比函数好使的多了,宏只是做替换。 阅读全文
posted @ 2017-08-25 16:21 _xiaohaige 阅读(205) 评论(0) 推荐(0)
摘要:pFrame->Create(NULL, TEXT("test")); 调用 CreateWindowEx()发送一个WM_CREATE消息, WM_CREATE消息调用CMyFrame::OnCreate(LPCREATESTRUCT lpCreateStruct); 这个函数中,装入了一个Rib 阅读全文
posted @ 2017-08-25 14:33 _xiaohaige 阅读(130) 评论(0) 推荐(0)
摘要:1.1、命令提示符(控制台)是一个软件:如果你的软件设置为控制台用户界面,那么Window会拿命令提示行来运行你的软件。 1.2、如果是窗口的话,Windows就不会来管你,就只是直接加载。 1.3、hPrevInstance:在你的程序中永远都不要使用。 1.4、进程实例句柄:加载到地址空间的每一 阅读全文
posted @ 2017-08-25 11:13 _xiaohaige 阅读(183) 评论(0) 推荐(0)
摘要:1、构造一个CStatusBar对象statusbar。 2、调用statusbar.Create或者statusbar.CreateEx函数,来为某一个窗口创建状态栏 3、调用statusbar.SetIndicators函数,将一个字符串ID和状态栏中的指示连接 4、设置状态栏的字符:statu 阅读全文
posted @ 2017-08-25 02:54 _xiaohaige 阅读(288) 评论(0) 推荐(0)
摘要:1、创建一个toolbar资源 2、构建一个toolbar对象toolbar 3、调用toolbar.Create或者toolbar.CreateEx创建toolbar,并将toolbar对象附加在我们的框架窗口上。 4、将toolbar资源,加载toolbar对象(toolbar.LoadTool 阅读全文
posted @ 2017-08-24 19:36 _xiaohaige 阅读(188) 评论(0) 推荐(0)
摘要:1.1、虚拟内存和物理内存(逻辑内存): 1.1.1、虚拟内存:模拟物理内存。为程序分配额定的大小空间。32位下每个进程有4GB,可是在这个虚拟内存空间中进程是无法完全拥有的,因为还要运行一些操作系统的代码(也是当前进程私有的)。 1.1.2、物理内存:在我们的电脑中只有一块,而且空间是有限的。不可 阅读全文
posted @ 2017-08-24 18:20 _xiaohaige 阅读(242) 评论(0) 推荐(0)
摘要:1、我们所有自定义的消息都是command消息,ON_COMMAND(ID, <fun>) 2、WM_COMMAND消息,也是使用OnWndMsg函数理处理的,但是在这个函数中是一个单独的处理方式。 3、WM_COMMAND消息,先进入OnWndMsg函数,在函数中,被CFrameWnd::OnCo 阅读全文
posted @ 2017-08-24 16:18 _xiaohaige 阅读(348) 评论(0) 推荐(0)
摘要:1、上一节我们提到了一种消息处理: 娶个栗子:ON_WM_CREATE消息;//这种消息处理宏必须使用系统给定的函数名。 2、ON_MESSAGE(<message>, <memberFxn>): message:就是一个UINT变量,也是一个消息。 memberFxn:是一个函数,其原型:afx_ 阅读全文
posted @ 2017-08-24 14:51 _xiaohaige 阅读(158) 评论(0) 推荐(0)
摘要:1.1、在MFC中处理消息的函数是固定的,如afx_msg int OnCreate(LPCREATESTRUCT);这是一个固定的,对应于ON_WM_CREAT()宏。如果改变了函数名,对应的宏就会不认识。 1.2、MyCreate函数,用来响应系统的WM_CREATE消息,这些函数是有固定格式要 阅读全文
posted @ 2017-08-24 13:56 _xiaohaige 阅读(349) 评论(0) 推荐(1)
摘要:1、如果要在一个代表窗口的类(代表窗口的类,都派生于CWnd)中处理消息,那么: 1.1、如果处理的Windows消息是WM_XXX,那么可以在MSDN中通过ON_WM_XXX来查找到相关说明。 1.2、将和ON_WM_XXX消息关联的函数声明,写到类方法中,这个方法就对应于Windows的WM_X 阅读全文
posted @ 2017-08-24 12:39 _xiaohaige 阅读(220) 评论(0) 推荐(0)
摘要:一、概念: 1.1、句柄是属于当前进程的。而句柄对应了一个内核对象。 1.2、任意一个进程都可以来使用任意的内核对象,进程只有使用的权限。 1.3、使用计数:为了使得多个进程可以使用同一个内核对象,节约系统资源。并且可以使得内核对象能够顺利的释放。 1.4、每个都有一个内核对象安全性的设置(一般设置 阅读全文
posted @ 2017-08-24 11:01 _xiaohaige 阅读(605) 评论(0) 推荐(0)
摘要:1.1、一般new的时候在初始化的时候,而进行销毁的时候是在程序退出的时候。 1.2、就如Windows中的,在init函数进行new操作然后在OnClose函数中进行delete操作。 1.3、注意:在没有不得已的时候不要在头文件中包含其他头文件,这是非常之高危险的事情,尽量的使用前置声明。 1. 阅读全文
posted @ 2017-08-23 23:56 _xiaohaige 阅读(306) 评论(0) 推荐(0)
摘要:1.1、进程和进程之间是独立的,哪怕是父进程和子进程之间也是独立的。包括他们的内存也是独立的。 1.2、线程和线程之间是独立的:这个独立说的是他们的栈是独立的(数据独立)。 1.3、线程和进程之间是不独立:线程需要运行进程空间中的代码、进程需要线程来运行代码。二者缺一不可,缺了任何一个他们都会消亡。 阅读全文
posted @ 2017-08-23 19:15 _xiaohaige 阅读(122) 评论(0) 推荐(0)
摘要:一、概念: 1.1、打开设备的操作会向操作系统发送请求,CreateFile函数会直接返回,而不会去等待操作完成。 1.2、此时操作系统会发现这个请求,然后操作系统会来进行实际的操作,当操作完成之后, 1.3、会设置一些标志,也就是通知。 1.4、在操作系统进行实际操作的时候,我可以来做一些想要做的 阅读全文
posted @ 2017-08-23 19:09 _xiaohaige 阅读(152) 评论(0) 推荐(0)
摘要:一、什么是MFC: 1.1、MFC是对Windows API进行包装。 二、MFC中的函数; 2.1、带On 开头的一些函数:这些函数都是被动调用的,当发生了某些消息的时候被被动的调用。 2.2、我们可以认为这些带On 开头的函数,都是一些回调函数。 2.3、MFC中使用宏:是因为使得能够自动的生成 阅读全文
posted @ 2017-08-23 19:01 _xiaohaige 阅读(581) 评论(0) 推荐(0)
摘要:一、错误的处理机制 1.1、在执行每一个函数的时候,会有一个特殊的队列。 1.2、在这些特殊的队列里面,都会维护一些东西。 1.3、这些队列是存在内存当中,而内存当中存储的都是一些数值。 1.4、这些数值就是我们使用GetLastError来获取的数值, 二、GetLastError函数: 2.1、 阅读全文
posted @ 2017-08-23 18:58 _xiaohaige 阅读(204) 评论(0) 推荐(0)
摘要:1、在Windows API编程中,直接在消息处理函数中编写WM_PAINT处理代码。 2、在MFC中,CFrameWnd的消息处理过程在哪里呢?MFC时如何将消息处理函数和窗口关联起来的。 在CFrameWnd::CreateEx中,调用PreCreateWindows来注册窗口。 AfxDefR 阅读全文
posted @ 2017-08-23 18:32 _xiaohaige 阅读(2111) 评论(0) 推荐(0)
摘要:1、CWinApp(包括了这个类的导出类):代表了我们的程序。封装了消息循环等。 2、CFrameWnd:代表了程序的框架窗口。封装了窗口的注册、创建、显示、刷新、等等窗口操作。 3、Win32中、一个窗口:注册->显示->信息循环。 4、CFrameWnd类来做窗口。 4.1、 5、通过这两个类, 阅读全文
posted @ 2017-08-23 14:52 _xiaohaige 阅读(4322) 评论(0) 推荐(1)