文章分类 - C++
实模式跳转保护模式,代码全注释
摘要:最近正在阅读《orange's,一个操作系统的实现》,真是相见恨晚啊,那么多年就没有一本真正深入浅出弄点代码让我们入门和实践一下的书,感谢作者于渊。 下面是第3章pmtest1.asm的全注释 总结执行过程如下: [plain] view plain copy [plain] view plain
阅读全文
推荐一些C++经典书籍
摘要:c++程序设计教程 c++编程思想 c++大学教程 c++程序设计语言 数据结构算法与应用c++语言描述 c++标准模板库------自修教程与参考手册 泛型编程与STL 深度探索c++对象模型 设计模式---可复用面向对象软件的基础 重构---改善既有代码的设计 Essential c++ Effective c++ More Effctive c++ C++ primer 前五本应该属于入门书籍,后面的属于学习难度比较大的,想提高C++的编程能力,看看这些书籍有好处。建议你把编程思想这本书多看看。多做练习题,对提高编程水平的帮助是很大的。 其实语言是相通的,一门语言学会了,学习其他语言就比
阅读全文
c++学习书籍推荐
摘要:人的精力是有限的,当前计算机相关书籍相当丰富,所谓林子大了什么鸟都有,所以首先不要乱读书,以免被误导或浪费时间。这样我们学习的步骤第1是选书,第2是按顺序看书。以下是我个人认为值得推荐之书:一.c++程序员看的书://------------------------------------------------------------//入门://Lippman的书就是经典!//------------------------------------------------------------《c++primer》---------强烈推荐!初学者经典书作者StanLippman(c++
阅读全文
VC 创建弹出式菜单
摘要:步骤:(1) 创建一个基于对话框的应用程序(2)在工作区选择资源视图,插入一个菜单资源,添加菜单项(3)在对话框的头文件中声明一个CMenu类对象m_Menu(4)在OnInitDialog方法中调用LoadMenu方法加载菜单资源[cpp] view plaincopym_Menu.LoadMenuW(IDR_MENU1);//加载菜单资源(5)在工作区窗口选择类视图,右击CXXXDlg节点,选择类向导,在弹出的对话框中选择消息,WM_RBUTTONUP事件,改事件在右键抬起时触发(6)处理鼠标右键抬起时的事件处理函数[cpp] view plaincopyvoidCMy82Dlg::OnR
阅读全文
VC 在对话框中增加菜单栏
摘要:1、添加菜单资源 在resourceview视图中右击选择insert,添加一个菜单资源IDR_MENU1,同时设定好响应的菜单项,例如: 菜单1 菜单2 子菜单1(ID_MENUITEM1) 子菜单3(ID_MENUITEM3) 子菜单2(ID_MENUITEM2) 子菜单4(ID_MENUITEM4)2、在对话框中添加该菜单 先增成员变量HMENU m_hMenu1; 然后在初始化函数OnInitDialog()添加一下代码:m_hMenu1=LoadMenu(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MENU1));//导入资源,创建菜单::S
阅读全文
VC的Dialog添加菜单
摘要:--《VC编程知识总结》之四 在《VC编程知识总结》之二中总结了如何添加系统托盘图标,但是没有研究如何添加点击系统托盘图标时弹出菜单,下面就总结一下如何在基于Dialog的MFC中添加菜单。1、添加一个菜单(menu),方法:insert->resource->menu,或者在resource界面下,直接右键选insert->menu; 2、设置新添加的menu的属性,如设定ID为IDR_MENU1,并在其中添加菜单项目,如“显示主界面”,指定该项目的ID为ID_MAIN_SHOW; 3、在Dlg类的声明中添加CMenu m_Menu和afx_msg void OnMainS
阅读全文
MFC 对话框编程 -- 总结
摘要:一、创建对话框对象1.首先利用资源编辑器创建对话框资源,并针对该对话框资源定义一个对话框类:class CTestDlg : public CDialog2.创建话话框对象模态对话框的创建: 如: CTestDlg dlg; dlg.DoModal();非模态对话框创建: 如: CTestDlg dlg;dlg.Create(IDD_DIALOG, this);但这样是得不到一个正常显示的非模态对话框的。因为模态与非模态对话框的实现方式并不相同,这里我们还要注意几点。非模态对话框创建完成后是隐藏着的,必须调用ShowWindow来进行显示。对于模态对话框,当执行到DoModal 函数以创建对话
阅读全文
MFC 菜单编程 -- 总结
摘要:菜单结构一个菜单栏可以有若干个子菜单,而一个子菜单又可有若干个菜单项。对于菜单栏的子菜单,由左至右从0开始索引。对于特定的子菜单的菜单项,由上至下建立从0开始的索引。访问子菜单和菜单项,均可通过其索引或标识进行。对于在窗口客户区右键弹出的菜单,如果弹出菜单归属View 类窗口,则菜单项只能响应View 和Doc 类消息点击。如果弹出菜单归属框架窗口,弹出菜单上的消息的路由遵循View -DOC-MainFrame-APP的响应顺序 。菜单的相关重要函数CMenu* GetMenu( ) ; // 得到菜单指针CMenu* GetSubMenu( ) ;// 得到子菜单指针,也就是弹出菜单指..
阅读全文
MFC中菜单的简单用法
摘要:当新建一个MFC SDI应用程序以后,会自动的添加一个菜单栏,在菜单栏中,会包含常规的菜单项:文件、编辑、查看、帮助等;理所当然的,我们可以轻松的编辑这些菜单项。 步骤/方法 添加菜单项:选择“ResourceView”;在树列表中找到“Menu” –> “IDR_MAINFRAME”,双击打开。这个就是我们要编辑的菜单。这个时候可以双击最后面的一个空白框,会打开一个窗口,输入名称和显示即可完成添加。要添加菜单中的项,选中菜单,会显示它所包含的所有项,在最先面同样有一个空白框,双击,输入名称和显示即可。 菜单的使用:添加完成后,运行程序,发现菜单项都是灰色的,这是因...
阅读全文
MFC框架原理以及消息运行机制
摘要:1,Windows程序内部运行机制 (1)windows程序设计是种事件驱动方式的程序设计,主要基于消息的。当用户需要完成某种功能时,需要调用OS某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。2,消息结构:typedef struct tagMSG { // msg HWND hwnd; //接收消息的窗口句柄。和哪个窗口相关联。 UINT message; //消息标识。消息本身是什么。 WPARAM wParam; //消息的附加信息。具体取决于消息本身。 LPARAM lParam; DWORD time; //消息投递时间..
阅读全文
Windows程序内部运行原理
摘要:Windows应用程序,操作系统,计算机硬件之间的相互关系 关于API:向下的箭头③表 示应用程序可以通知操作系统执行某个具体的动作,如操作系统能够控制声卡发出声音,但它并不知道应该何时发出何种声音,需要应用程序告诉操作系统该发出什 么样的声音。这个关系好比有个机器人能够完成行走的功能,但是,如果人们不告诉它往哪个方向上走,机器人是不会主动行走的。这里的机器人就是操作系统,人 们就是应用程序。 那 么,应用程序是如何通知操作系统执行某个功能的呢?有过编程经验的读者都应该知道,在应用程序中要完成某个功能,都是以函数调用的形式实现的,同样,应用 程序也是以函数调用的方式来通知...
阅读全文
MFC框架
摘要:讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个源代码生成工具,是计算机辅助程序设计工具,WinMain在MFC程序中是 如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个类的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口类的 PreCreateWindow和OnCreate两个函数的着重分析,Windows窗口与C++中的CWnd类的关系。1,寻找WinMain入口: 在安装目录下找到MFC文件夹下的SRC文件夹,SRC下是MFC源代码。 WinMain在APPMODUL.CPP中实现:_tWinMain(HINS..
阅读全文
MFC框架程序分析
摘要:1:WinMain函数定义在APPMODUL.CPP中。2:通过theApp全局对象联系起来。3:CWinApp类定义在appcore.cpp中。4:WinMain函数是通过AfxWinMain函数来完成它的功能的。5:AfxWinMain函数定义在WINMAIN.CPP中。6:在InitInstance函数中完成设计、注册窗口类,创建、显示及更新窗口。7:设计和注册窗口的是AfxEndDeferRegisterClass函数,实际是AfxRegisterClass函数完成注册工作。它定义在WINCORE.CPP中。8:创建窗口是Cwnd::CreateEx函数完成,它定义在AFXWin.h中
阅读全文
MFC框架程序剖析
摘要:3.2基于MFC的程序框架剖析 利用MFC AppWizard创建一个基于MFC的单文档界面(SDI)应用程序Test。图 3.10 图3.10是MFC AppWizard帮助我们生成的代码。在Class View(类视图)标签页,可以看到图 3.10所示的五个类。在MFC中,类的命名都以字母“C“开头。图 3.11 部分MFC类组织结构图CWnd类封装了与窗口相关的操作。 3.2.1 MFC程序中的WinMain函数在安装完Microsoft Visual Studio 6.0后,在安装目录下(C:\Program Files\Microsoft Visual Studio\VC98\MFC
阅读全文
windows程序消息机制
摘要:1. 窗口过程 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数) 2 消息类型 1) 系统定义消息(System-Defined Messages) 在SDK中事先定义好的消息,非用户定义的,其范围在[0x0000, 0x03ff]之间, 可以分为以下三类: 1> 窗口消息(Windows Message) 与窗口的内部运作有关,如创建窗口,...
阅读全文
MFC的消息机制
摘要:众所周知,windows是基于消息驱动的,作好消息处理是WINDOWS编程的关键任务之一,用VC制作WINDOWS程式同样离不开消息的处理。这就要求我们对 VC中消息的处理有一个比较清淅的认识。只有这样才可能在必要的时候亲自动手完成一些复杂的消息映射处理。 在MFC中消息是通过一种的消息映射机制来处理的。其实质是一张消息及其处理函数的一一对应表以及分析处理这张表的应用框架内部的一些程序代码.这样的好处是可以避免像早期的SDK编程一样需要罗列一大堆的CASE语句来处理各种消息。由于不同种类的消息其处理方法是不同的,所以我们有必要先弄清楚 WINDOWS消息的种类。 WINDOWS 消息的种...
阅读全文
Windows消息大全
摘要:表A-1 Windows消息分布消息范围说 明0 ~ WM_USER – 1系统消息WM_USER ~ 0x7FFF自定义窗口类整数消息WM_APP ~ 0xBFFF应用程序自定义消息0xC000 ~ 0xFFFF应用程序字符串消息> 0xFFFF为以后系统应用保留表A-2 常用Windows消息消息名称值说 明WM_NULL 0x0000空消息,此消息将被接收窗口忽略WM_CREATE 0x0001应用程序创建一个窗口WM_DESTROY0x0002一个窗口被销毁WM_MOVE0x0003移动一个窗口WM_SIZE0x0005改变一个窗口的大小WM_ACTIVATE0x0006一个窗口
阅读全文
MFC消息映射详解
摘要:消息:主要指由用户操作而向应用程序发出的信息,也包括操作系统内部产生的消息。例如,单击鼠标左按钮,windows将产WM_LBUTTONDOWN消息,而释放鼠标左按钮将产生WM_LBUTTONUP消息,按下键盘上的字母键,将产生WM_CHAR消息。消息处理:在MFC中,每个专门的处理函数单独处理每个消息。消息处理函数通常是某一类的成员函数,编写消息处理函数是编写框架应用程序的主要任务。可以使用ClassWizard创建消息处事函数,然后从Classwizard直接跳到源文件消息处理函数,编写处理代码。消息映射:可以接收消息和命令的所有框架类都有自已的消息映射。框架利用消息映射把消息、命令与它们
阅读全文
MFC消息响应机制及映射机制理解
摘要:一.MFC消息响应机制分析---- MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消息映射机制,更是涉及到很多低层的东西,我们在这里,对它的整个消息映射机制进行了系统的分析,可以帮助程序开发人员对MFC的消息映射机制有一个比较透彻的了解。---- 关键词:面向对象 消息映射 MFC 程序设计1.引言 ---- VC++的MFC类库实际上是Windows下C++编程的一套最为流行的类库。MFC的框架结构大大方便了程序员的编程工作,但是为了更加有效、灵活的使用MFC编程,了解MFC的体系结构往往可以使编程工作事半功倍。它合理的封装了WIN32 API函数,并设计
阅读全文
浙公网安备 33010602011771号