自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦想---软件设计师

凡事尽其自我,一切悠然对待。

  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

转载 孙鑫VC学习笔记:第二十讲 (二) ado数据库编程

数据库编程:COM[计] 小型可执行程序的扩展名, 串行通讯端口[域] Commercial organizations,商业组织,公司The Component Object Model组件对象模型ADO的三个核心对象Connection对象Connection对象表示了到数据库的连接,它管理应用程序和数据库之间的通信。Recordest和Comm

2007-12-29 13:30:00 3960 2

转载 孙鑫VC学习笔记:第二十讲 (一) Hook编程

通过安装Hook过程,可以用来屏蔽消息队列中某些消息The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types o

2007-12-29 13:28:00 1679

转载 孙鑫VC学习笔记:第十九讲 动态链接库

动态链接库Windows API中的所有函数都包含在DLL中。其中有三个最重要的DLL,Kernel32.dll,它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数;GDI32.dll,它包含用于画图和显示文本的各个函数。--------------------------------------------

2007-12-29 13:26:00 1634

转载 一位软件设计师对程序员的忠告

     我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院

2007-12-29 12:25:00 1418

转载 程序员的成长从开窍开始

      写程序是一个复杂的边思考边打字的过程,笔误和一时糊涂都是难以避免的。程序员一般把这种问题叫做低级问题,因为这类问题跟你的智商完全无关,任何人都可能犯。但是有时候即使是很优秀的程序员,也会被一个低级错误困扰,可能会几天都解决不了。所以,关键在于,如何找到问题。遇到问题的时候:1,不要怨天怨地。出了问题,当然有可能是系统的bug,API的问题,但是那些几率往往比你犯低级错误的几率要

2007-12-29 12:20:00 816

转载 孙鑫VC学习笔记:第十讲画图 创建设置画笔的对话框 并且可以预览效果

  

2007-12-25 15:29:00 1033

转载 孙鑫VC学习笔记:第十一讲 (一) 坐标空间与各种转换的概念

孙鑫VC学习笔记:第十一讲 坐标空间与各种转换的概念介绍一下坐标空间、逻辑空间、映射方式等概念MicroSoft Windows 下的程序运用坐标空间和转换来对图形输出进行缩放,平移,旋转,斜切和反射。一个坐标空间是一个二维空间,通过使用连个相互垂直并且长度相等的轴来定义二维对象 坐标空间API使用四种坐标空间:世界坐标系空间,页面空间,设备空间,和物理设备空间。基于Win32的应用程

2007-12-25 15:24:00 1186

转载 孙鑫VC学习笔记:第十一讲 (二) 图形的保存与重绘方法一

图形的保存和重绘编写画图代码,设定一个标识,在OnLButtonDown中保存鼠标按下去的点,在OnLButtonUp中捕获鼠标弹起的点,利用switch语句分别画图。这是上节课的内容,上节课还讲了窗口重绘的原理,实际上分为两步,首先擦除以前的背景,然后再进行窗口重绘。所以当拖动窗口改变窗口大小时,窗口要发生重绘,首先会擦除以前的背景,于是先前所画图像会消失。解决办法是将画图代码写在OnDra

2007-12-25 15:23:00 1082

转载 孙鑫VC学习笔记:第十一讲 (三) 如何把元文件保存到文件当中

如何把元文件保存到文件当中1.为“打开”,“保存”添加命令相应函数。2.用 CopyMetaFile 拷贝元文件到指定文件中CopyMetaFile 将windows格式的元文件拷贝到指定的文件当中。首先我们在“保存”命令响应函数OnFileSave()中完成保存元文件到文件的功能,执行之后在项目工程文件夹中增加了一个meta.wmf的文件,用ACDsee可以打开。--------------

2007-12-25 15:22:00 1035

转载 孙鑫VC学习笔记:第十一讲 (四) 图形重绘方法三 利用兼容DC

介绍利用兼容DC保存图形与重绘图形的方式1.构造兼容DC对象:CDC  m_dcCompatible2.在CGraphicView::OnLButtonUp写下面代码3.在CGraphicView::OnDraw中写入下面代码:CBitmap::CreateCompatibleBitmap 通过指定的宽高创建一个兼容位图。初始化一个与指定设置相兼容的位图 BOOL CreateCompatible

2007-12-25 15:21:00 980

转载 孙鑫VC学习笔记:第十一讲 (五) 如何使窗口具有滚动条

如何使窗口具有滚动条?本程序的CGraphicView 类是从View类继承的 class CGraphicView : public Cview首先将基类改成CScrollView class CGraphicView : public CScrollView然后将源文件cpp文件中的CView全部替换成CScrollView在文件中替换字或词的步骤, 从菜单中选择 Edit->Replace,

2007-12-25 15:19:00 1135 1

转载 孙鑫VC学习笔记:第十一讲 (六) 图形重绘方法二 利用元文件

介绍两种保存图形与重绘图形的方式第一种,要利用要一个类 CMetaFileDC第一步创建一个CMetaFileDC 对象。接着调用CMetaFileDC 构造器,然后再调用Create 函数 创建一个设备上下文与CMetaFileDC 对象关联起来。下一步给CMetaFileDC 对象发送一系列的CDC命令在为元文件发送完命令之后,调用Close成员函数关闭元文件的设备上下文,并返回一个元

2007-12-25 15:05:00 921

转载 孙鑫VC学习笔记:第十二讲 (一) 介绍常量指针、指针常量,文本、二进制文件

◆指向常量的指针它指向的内容是常量,不能修改;但是指针本身存放的是指针值,可以修改。char ch[5]="list"   这种赋值形式只能在数组定义的同时进行。 常量字符串会自动加上/0,所以字符串长度为五通常,如果想用指针传参,通常会将形参声明的指向常量的指针类型当实参传入之后,形参无法修改实参指向的内容,从而保证了数据的一致性---------------------------------

2007-12-25 15:02:00 921

转载 孙鑫VC学习笔记:第十二讲 (二) 用C语言函数读写文件

C语言中文件写入操作FILE *pFile=fopen("1.txt","w");  //w方式,会销毁打开文件中原先的内容fwrite("I Love You",1,strlen("I Love You"),pFile); //写入数据---------------------------------------------------------------------------------

2007-12-25 15:01:00 1127 3

转载 孙鑫VC学习笔记:第十二讲 (三) 用C++函数读写文件

C++读写文件方法在C++中,可以用ofstream类来写入文件,这个类的头文件是 可以用ifstream类来读取文件,ifstream类的用法与ofstream类似 

2007-12-25 15:00:00 804

转载 孙鑫VC学习笔记:第十二讲 (四) 用API函数、CFile类操作文件

用Win32API函数操作文件:1.保存文件  首先用CreateFile 打开文件,然后调用WriteFile将数据写入到文件当中。    2.读取文件   首先用CreateFile 打开文件,然后调用ReadFile读取数据到ch字符数组中。----------------------------------------------------------------------------

2007-12-25 14:58:00 1222 1

转载 孙鑫VC学习笔记:第十二讲 (五) 往win.ini的文件中写入数据

往win.ini的文件中写入数据在实际开发程序时,我们经常要把一些初始化信息写入到一个配置文件中,当程序启动的时候读入这些初始化的信息。早期的软件会将这些信息写入一个叫win.ini的文件中(当然现有很多软件将这些信息写到注册表中)。如果我们也想在win.ini文件中写入信息,可以利用WriteProfileString函数。我们在CFileApp::InitInstance()函数中,调

2007-12-25 14:57:00 888

转载 孙鑫VC学习笔记:第十二讲 (六) 读写注册表

修改注册表对注册表的操作是通过几个函数完成的。在注册表中,值包含三个部分:值的名称,值的类型,值的本身即数据使用RegSetValue()向注册表写入数据:注意:RegCreateKey只能建立REG_SZ型数据,要建立其他数据需要调用RegCreateKeyEx使用RegSetValueEx()向注册表写入数据:使用RegQueryValue读取注册表:要获得其他数据类型数据,调用Reg

2007-12-25 14:56:00 728

转载 孙鑫VC学习笔记:第十三讲 (一) 用CArchive类读取与保存文件

介绍一种利用CArchive类读取与保存文件的方法: 首先:构造一个CFile对象 然后构造一个CArchive对象, 接着就可以用CArchive对象的">"操作符提取数据 注意:提取数据时应按照保存的顺序提取。   

2007-12-25 14:55:00 817

转载 孙鑫VC学习笔记:第十三讲 (二) 设置文档标题

设置文档标题:前面我们讲过如何去修改一个程序的图标(在CMainFrame类中)、光标、背景(在View类中),没有讲如何修改程序的标题(在前面两个类中都修改不了)。方法一: 在程序启动的时候,会调用OnNewDocument创建一个“无标题”文档, 所以我们可以在这个方法中调用CDocument类的SetTitle成员函数修改标题。方法二:  也可以在String Table中修改标题,

2007-12-25 14:54:00 979

转载 孙鑫VC学习笔记:第十三讲 (三) WM_FILE_NEW消息响应原理

WM_FILE_NEW消息响应原理当点击“新建”按钮时,会发送WM_FILE_NEW消息,按照消息响应函数的命名规则,它的响应函数应该叫OnFileNew(),但是在代码中找不到,通过调试发现,当新建按钮时,程序会调用CGraphicDoc::OnNewDocument(),WM_FILE_NEW的消息是如何响应的呢?我们可以在VC++的安装目录下找到一个文件../Microsoft Visu

2007-12-25 14:52:00 824

转载 孙鑫VC学习笔记:第十三讲 (四) 生成可串行化的类

生成可串行化的类:如果要用CArchive来保存一个对象,那么这个对象的类必须支持串行化。要生成一个可串行化的类,需要下面5个步骤:(以生成第11讲中用过的CGraph类为例)1 . Deriving your class from CObject (or from some class derived from CObject). 从CObject派生你的类 class CGraph :

2007-12-25 14:51:00 595

转载 孙鑫VC学习笔记:第十三讲 (五) 保存可串行化的类对象 如何获取文档与视类指针

如何获取视类指针:1.首先要获得第一个视类对象在视类对象列表中的位置,用GetFirstViewPosition方法virtual POSITION GetFirstViewPosition( ) const; A POSITION value that can be used for iteration with the GetNextView member function.  POSITIO

2007-12-25 14:50:00 1090

转载 孙鑫VC学习笔记:第十三讲 (六) 关于释放内存

关于释放内存不管是新建文档还是打开另外一份文档,文档对象都是被重复使用的,我们应该在这个时候去释放先前分配的内存。在打开或者新建一个文档时都会调用Cdocument::OnOpenDocument方法,而这个方法又会调用DeletContents成员函数删除文档数据,该函数在文档被销毁之前或文档被重复使用之前被调用,用来删除对象的数据(但并不消除对象本身),从而确保文档数据是空的。这对于一个单

2007-12-25 14:49:00 889

转载 孙鑫VC学习笔记:第十四讲 (一) 网络的基本概念

介绍一下网络的基本概念------------------------------------------------------------------------ISO/OSI七层参考模型OSI(Open System Interconnection)参考模型将网络的不同功能划分为7层。应用层--->处理网络应用表示层--->数据表示会话层--->主机间通信传输层--->端到端的连接网络层--

2007-12-25 14:47:00 619

转载 孙鑫VC学习笔记:第十四讲 (二) 网络编程

基于TCP服务器端编程步骤//1.加载套接字库//2.创建套接字//3.将套接字绑定到本地地址与端口上//4.设置监听//4.接收服务器端发送的数据,并且向服务器端发送数据//5.关闭套接字,释放资源,并且终止对套接字库的使用基于TCP客户端编程见下面,TCP和UDP编程代码大致相同,不同之处在于,TCP使用send/recv发送与接收数据;UDP使用sendto/recvfrom; 

2007-12-25 14:46:00 820

转载 孙鑫VC学习笔记:第十五讲 (一) 进程和线程基本概念

程序、进程和线程基本概念——程序和进程程序是计算机指令的集合,它以文件的形式存储在磁盘上。进程:通常被定义为一个正在运行的程序的实例, 是一个程序在其自身的地址空间中的一次执行活动。进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,也不能作为独立的运行的单位, 因此,他不占用系统的运行资源。进程由两个部分组成: 1、操作系统用来管理进程

2007-12-25 14:45:00 830

转载 孙鑫VC学习笔记:第十五讲 (二) 线程创建方法

一、创建一个线程创建线程使用CreateThreadThe CreateThread function creates a thread to execute within the address space of the calling process. HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,   DWORD

2007-12-25 14:43:00 809

转载 孙鑫VC学习笔记:第十五讲 (三) 增加互斥条件实现线程同步

增加互斥条件,实现线程同步。一、创建互斥对象 : HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,// 安全性 BOOL bInitialOwner,  // flag for initial ownership, LPCTSTR lpName     // pointer to mutex-object name );打

2007-12-25 14:42:00 859

转载 孙鑫VC学习笔记:第十五讲 (四) 编写一个基于MFC对话框的聊天程序

编写一个基于MFC对话框的聊天程序:1.新建一个基于MFC项目工程Chat2.加载套接字库,有下面两种方法,在这里选择第二种方法,因为更方便。方法一、使用WSAStartup()加载套接字库 参考MSDN中的范例代码,拷贝到自己的程序中修改即可。 注意不再使用套接字后调用WSACleanup()。方法二、使用AfxSocketInit()加载套接字库(MFC) BOOL AfxSocketIn

2007-12-25 14:41:00 2802 7

转载 孙鑫VC学习笔记:第十六讲 (一) 利用事件对象实现线程间的同步

事件对象基本概念事件对象:事件对象与互斥对象都属于内核对象,事件对象包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是为通知状态的布尔值。有两种不同类型的事件对象:一种是人工重置的事件,另一种是自动重置的事件。当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程;当一个自动重置的事件得到通知时,等待该事件的

2007-12-25 14:39:00 703

转载 孙鑫VC学习笔记:第十六讲 (二) 利用关键代码段实现线程间的同步

关键代码段 1.关键代码段(临界区)工作在用户方式下。 2.关键代码段(临界区)是指一个小代码段,在代码能够执行前,它必须独占对某资源的访问权。利用关键代码段实现线程间的同步的一个实例互斥对象、事件对象与关键代码段的比较 互斥对象和事件对象属于内核对象,利用内核对象进行线程同步,速度较慢, 但利用互斥对象和事件对象这样的内河对象,可以在多个进程中的各个线程间进行同步。 关键代码段时工作在用户方式下

2007-12-25 14:38:00 860

转载 孙鑫VC学习笔记:第十六讲 (三) 用异步套接字编写聊天程序

基于消息的异步套接字 Windows套接字在两种模式下执行I/O操作,阻塞和非阻塞。在阻塞模式下,在I/O操作完成前,执行操作的Winsock函数会一直等待下去,不会立即返回程序(将控制权交还给程序)。而在非阻塞模式下,Winsock函数无论如何都会立即返回。 Windows Sockets为了支持Windows消息驱动机制,使应用程序开发者能够方便地处理网络通信,它对网络事件采用了基于消息的异步

2007-12-25 14:37:00 1069

转载 孙鑫VC学习笔记:第十七讲 (一) 用剪贴板实现进程间的通信

孙鑫教学视频笔记(17)进程间通信---------------------------------------------------------------------------------进程间通信的四种方式剪贴板匿名管道命名管道邮槽 --------------------------------------------------------------

2007-12-25 14:33:00 732

转载 孙鑫VC学习笔记:第十七讲 (二) 用匿名管道实现进程间的通信

用匿名管道实现进程间的通信: 匿名管道只能在本地主机上,父子进程之间完成通信: 步骤:1.新建一个项目Parent 2.增加“匿名管道”子菜单以及“创建管道”、“读取数据”与“写入数据”三个菜单项。3.在CParentView 中添加两个成员句柄:HANDLE m_hWrite;HANDLE m_hRead;4.为“创建管道”菜单项实现创建管道的功能 

2007-12-25 14:31:00 2082

转载 孙鑫VC学习笔记:第十七讲 (三) 用命名管道实现进程间的通信

用命名管道实现进程间的通信: 命名管道概念:命名管道是通过网络来完成进程间的通信,它屏蔽了地称的网络协议细节。我们在不了解网络协议的情况下,也可以利用命名管道来实现进程间的通信。命名管道充分利用了Windows NT和Windows2000内建的安全机制。将命名管道作为一种网络编程方案时,它实际上建立了一个客户机/服务器通信体系,并在其中可靠的传输数据。命名管道是围绕Win

2007-12-25 14:30:00 2566

转载 孙鑫VC学习笔记:第十七讲 (四) 用邮槽实现进程间的通信

用邮槽实现进程间的通信:邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输。邮槽是一种单向通信机制,创建邮槽的服务器进程读取数据,打开邮槽的客户机进程写入数据,为保证邮槽在各种Windows平台下都能正常工作,我们传输消息的时候,应将消息的长度限制在424字节以下。 要创建邮槽,可以使用函数HANDLE CreateMailslot(LPCTSTR lpN

2007-12-25 14:27:00 626

转载 孙鑫VC学习笔记:第十八讲 ActiveX 控件

基本概念:容器和服务器程序 容器应用程序时可以嵌入或链接对象的应用程序。Word就是容器应用程序。 服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序。Excel就是服务器应用程序。 ActiveX控件不能独立运行,它必须被嵌入容器应用程序中,和容器应用程序一起运行。 ----------------------------------------------------------

2007-12-25 14:23:00 941

转载 VC 6.0 “fatal error LNK1104: cannot open file "mfc42u.lib"”问题解决

两种解决办法:1。从VC的安装盘中拷贝文件“MFC42U.LIB”、“MFC42UD.LIB”、“MFCS42U.LIB”、“MFCS42UD.LIB”几个对Unicode支持的代码“VC的安装目录/VC98/MFC/Lib”下即可2。build -> set active project configuration...  then select      Win32 Release o

2007-12-24 14:32:00 2077

转载 MFC技术内幕系列之(五)---MFC文档序列化内幕

引言:     引入“文档序列化”的概念会让许多人感到迷惑,什么是“文档序列化”?其实说白了就是将数据(广义上的概念)从硬盘中读出或将数据写入硬盘中。其稍正规的定义可以看看MFC文档如下:The CArchive class allows you to save a complex network of objects in a permanent binary form (usually dis

2007-12-20 15:17:00 785

MFC中文帮助

这是MSDN的部分中文译本.

2008-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除