- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 Windows及VC编程命名规则
<br /> 匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述。其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。目前在Windows程序开发和MFC程序开发中常用的命名规则是匈牙利命名法。下面就是HN命名法的一般规则。 属性部分 <br />全局变量g_ <br />const常量 c_ <br />c++类成员变量m_ <br />静态变量s_ <br /><br />类型部分 <br />指针p <br />函数fn
2011-05-06 09:08:00 2277 1
转载 CString 操作指南
通过阅读本文你可以学习如何有效地使用 CString。 CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。 使用CString可以让你对字符串的操作更加直截了当。这篇文章不是CString的完全手册,但囊括了大部分常见基本问题。这篇文章包括以下内容: 1.CString 对象的连接 2.格式化字符串(包括 in
2011-05-06 09:00:00 389
转载 用VC操作ini配置文件
Windows操作系统专门为此提供了6个API函数来对配置设置文件进行读、写:GetPrivateProfileInt() 从私有初始化文件获取整型数值GetPrivateProfileString() 从私有初始化文件获取字符串型值GetProfileInt 从win.ini 获取整数值GetProfileString 从win.ini 获取字符串值WritePrivateProfileString 写字符串到私有初始化文件WriteProfileString 写字符串到win.ini我们可以把视图类的:
2011-05-06 08:33:00 673 1
原创 MFC动态库的生成文件lib和.dll讨论
<br /> 一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。静态编译的lib文件有好处:给用户安装时就不需要再挂动态库了。但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。 <br /> .dll是在你的程序
2011-05-05 17:46:00 5286
转载 新手入门:关于C++中的内联函数(inline)
<br />文章导读:在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。本文将介绍内联函数的相关知识。 <br /> 在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。 <br /><br /> 可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈
2011-05-05 17:16:00 475
转载 怎样使用CMenu类
<br /> CMenu类从CObject类派生而来。为什么要使用CMenu类呢?AppWzard不是把菜<br />单做好了吗?在资源编辑器上修改菜单不是很方便吗? <br /> 我是个vc++初学者,自从当斑竹以来,天天看贴子,也学到了不少东西。感<br />觉学vc++稍微深入一点好,至少要能搞清楚AppWizard在背后都干了些什么东西。<br />事实上mfc就是用CMenu类来生成菜单的。让我们就从CMenu开始吧。 <br /> CMenu生成的菜单有两种:Popup类型和非Pop
2011-05-05 16:26:00 445
原创 Listctrl 样式和LV_ITEM和LV_COLUMN
<br /> LVS_ALIGNLEFT 用来确定表项的大小图标以左对齐方式显示; <br /> LVS_ALIGNTOP 用来确定表项的大小图标以顶对齐方式显示; <br /> LVS_AUTOARRANGE 用来确定表项的大小图标以自动排列方式显示; <br /> LVS_EDITLABELS 设置表项文本可以编辑,父窗口必须设有LVN_ENDLABELEDIT风格; <br /> LVS_ICON 用来确定大图标的显示方式; <br /> LVS_LIST 用来确定列表方式显示; <br
2011-05-05 16:24:00 710
原创 双冒号::和单冒号:的使用
<br />::用来指定名称所属的空间,以::开头表示全局,以命名空间或类名、结构名等加::指定该空间范围内定义的名称,可以是函数、变量、常量、类型等名称。<br />:有多种用法,定义类时,在类名后面用:指定基类;在定义类的构造函数时,用:指定如何调用基类的构造函数和初始化成员变量;定义标号时后面要加:;此外还有:?表达式。<br /> <br />单冒号的作用有:<br />(1)构造函数初始化成员变量。比如类C的构造函数 C::C():param1(),param2(){}。<br />(2)指定基类
2011-05-04 17:41:00 6242
转载 回调函数
查看文章 回调函数2007年05月27日 星期日 16:07简介 对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数? 因为可以把调用者与被调用者分开。调用者
2011-05-04 13:46:00 357
转载 很幽默的讲解六种Socket I/O模型
一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型~~~一:select模型老陈非常想看到女儿的信。以至于他每隔10分钟就下楼检查信箱,看是否有女儿的信~~~~~在这种情况下,
2011-04-29 10:34:00 335
转载 MFC的进程和线程
Win32的进程和线程概念进程是一个可执行的程序,由私有虚拟地址空间、代码、数据和其他操作系统资源(如进程创建的文件、管道、同步对象等)组成。一个应用程序可以有一个或多个进程,一个进程可以有一个或多个线程,其中一个是主线程。线程是操作系统分时调度分配CPU时间的基本实体。一个线程可以执行程序的任意部分的代码,即使这部分代码被另一个线程并发地执行;一个进程的所有线程共享它的虚拟地址空间、全局变量和操作系统资源。之所以有线程这个概念,是因为以线程而不是进程为调度对象效率更高: 由于创建新进程必须加载代码,而线
2011-04-25 16:25:00 495
转载 理解EnterCriticalSection 临界区
<br />通俗解释就像上厕所: <br />门锁了,就等着,等到别人出来了,进去锁上,然后该干什么干什么,干完了,把门打开 <br />门没锁,就进去,锁上,然后该干什么干什么,干完了,把门打开 <br />-------------------------------------------------- <br />多线程中用来确保同一时刻只有一个线程操作被保护的数据 <br />InitializeCriticalSection(&cs);//初始化临界区 <br />EnterCriticalSe
2011-04-25 14:42:00 400
转载 客户区和非客户区指的什么?窗口客户区和视图客户区的区别
<br />转自:http://oliver258.blog.51cto.com/750330/2930841,什么是客户区/非客户区?2, 窗口(框架/frame)的客户区和视图(view)的客户区的区别? 1,在一个MDI(多文档)应用程序中每个概念如下图所标示:效果如下图1,窗口框架的客户区就是指图中的灰色部分:即蓝色方框内区域,框架的非客户区就是指蓝色方框之外的窗口区域,包括程序图标,标题栏,菜单,最大最小/关闭按纽,左右两个框和底下的状态条.2,视图的客户区就是指图中绿色部分:即红色方框内的区域,
2011-04-22 09:24:00 942
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人