- 博客(41)
- 资源 (2)
- 收藏
- 关注
原创 孙鑫VC学习笔记:第十讲画图 改变对话框及控件的文字/背景颜色
◆改变对话框及对话框上控件的背景颜色及文字颜色1.增加WM_CTLCOLOR消息处理2.自定义一个画刷m_brush,让WM_CTLCOLOR消息处理函数OnCtlColor返回, 对话框就会用这个画刷去绘制对话框和子控件◆如何改变一个BUTTON的颜色要改变一个BUTTON的颜色,不能像其他控件一样利用OnCtlColor方法,而需要从CButton类派生一个自己的类(CTestBt
2006-08-23 21:39:00 4243 2
原创 孙鑫VC学习笔记:第十讲画图 在窗口中贴上位图
要拷贝一张图片到窗口上,可以先用兼容的DC在内存中准备图像,再将图像拷贝到实际DC当中,步骤如下:1.创建位图2.创建兼容DC : CDC dcCompatible; dcCompatible.CreateCompatibleDC(pDC);3.将位图选到兼容DC中4.将兼容DC中的位图贴到当前DC中。窗口绘制分为两个步骤:1.擦除窗口背景, 此时会发送一个WM_ERASEBK
2006-08-23 21:33:00 2561
原创 孙鑫VC学习笔记:第十讲画图 创建颜色/字体对话框
画图软件要经常改变当前画笔的颜色,创建一个颜色对话框让用户选择颜色是最方便的;我们也可以弹出一个字体对话框让用户方便地选择要显示的字体。这一节讲一下如何创建颜色对话框和字体对话框。
2006-08-23 21:27:00 2034
转载 Windows API函数大全 分类速查
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCl
2006-08-23 20:34:00 4535 1
原创 孙鑫VC学习笔记:第十八讲 ActiveX 控件
基本概念:容器和服务器程序 容器应用程序时可以嵌入或链接对象的应用程序。Word就是容器应用程序。 服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序。Excel就是服务器应用程序。 ActiveX控件不能独立运行,它必须被嵌入容器应用程序中,和容器应用程序一起运行。 ----------------------------------------------------------
2006-08-23 08:41:00 3395 3
原创 孙鑫VC学习笔记:第十七讲 用邮槽实现进程间的通信
用邮槽实现进程间的通信:邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输。邮槽是一种单向通信机制,创建邮槽的服务器进程读取数据,打开邮槽的客户机进程写入数据,为保证邮槽在各种Windows平台下都能正常工作,我们传输消息的时候,应将消息的长度限制在424字节以下。 要创建邮槽,可以使用函数HANDLE CreateMailslot(LPCTSTR
2006-08-22 23:02:00 2288
原创 孙鑫VC学习笔记:第十七讲 用命名管道实现进程间的通信
用命名管道实现进程间的通信: 命名管道概念:命名管道是通过网络来完成进程间的通信,它屏蔽了地称的网络协议细节。我们在不了解网络协议的情况下,也可以利用命名管道来实现进程间的通信。命名管道充分利用了Windows NT和Windows2000内建的安全机制。将命名管道作为一种网络编程方案时,它实际上建立了一个客户机/服务器通信体系,并在其中可靠的传输数据。命名管道是围绕
2006-08-22 22:52:00 3740
原创 孙鑫VC学习笔记:第十七讲 用匿名管道实现进程间的通信
用匿名管道实现进程间的通信: 匿名管道只能在本地主机上,父子进程之间完成通信: 步骤:1.新建一个项目Parent 2.增加“匿名管道”子菜单以及“创建管道”、“读取数据”与“写入数据”三个菜单项。3.在CParentView 中添加两个成员句柄:HANDLE m_hWrite;HANDLE m_hRead;4.为“创建管道”菜单项实现创建管道的
2006-08-22 22:34:00 3316
原创 孙鑫VC学习笔记:第十七讲 用剪贴板实现进程间的通信
孙鑫教学视频笔记(17)进程间通信---------------------------------------------------------------------------------进程间通信的四种方式剪贴板匿名管道命名管道邮槽 --------------------------------------------------------
2006-08-22 22:21:00 2034
原创 孙鑫VC学习笔记:第十六讲 用异步套接字编写聊天程序
基于消息的异步套接字 Windows套接字在两种模式下执行I/O操作,阻塞和非阻塞。在阻塞模式下,在I/O操作完成前,执行操作的Winsock函数会一直等待下去,不会立即返回程序(将控制权交还给程序)。而在非阻塞模式下,Winsock函数无论如何都会立即返回。 Windows Sockets为了支持Windows消息驱动机制,使应用程序开发者能够方便地处理网络通信,它对网络事件采用了基于消息的异步
2006-08-21 09:13:00 2717 1
原创 孙鑫VC学习笔记:第十六讲 利用关键代码段实现线程间的同步
关键代码段 1.关键代码段(临界区)工作在用户方式下。 2.关键代码段(临界区)是指一个小代码段,在代码能够执行前,它必须独占对某资源的访问权。利用关键代码段实现线程间的同步的一个实例互斥对象、事件对象与关键代码段的比较 互斥对象和事件对象属于内核对象,利用内核对象进行线程同步,速度较慢, 但利用互斥对象和事件对象这样的内河对象,可以在多个进程中的各个线程间进行同步。 关键代码段时工作在用户方式下
2006-08-21 09:06:00 2250
原创 孙鑫VC学习笔记:第十六讲 利用事件对象实现线程间的同步
事件对象基本概念事件对象:事件对象与互斥对象都属于内核对象,事件对象包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是为通知状态的布尔值。有两种不同类型的事件对象:一种是人工重置的事件,另一种是自动重置的事件。当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程;当一个自动重置的事件得到通知时,等待该事件的
2006-08-21 08:58:00 3940
原创 孙鑫VC学习笔记:第十五讲 编写一个基于MFC对话框的聊天程序
编写一个基于MFC对话框的聊天程序:1.新建一个基于MFC项目工程Chat2.加载套接字库,有下面两种方法,在这里选择第二种方法,因为更方便。方法一、使用WSAStartup()加载套接字库 参考MSDN中的范例代码,拷贝到自己的程序中修改即可。 注意不再使用套接字后调用WSACleanup()。方法二、使用AfxSocketInit()加载套接字库(MFC) BOOL AfxSocketIn
2006-08-20 09:24:00 5824 3
原创 孙鑫VC学习笔记:第十五讲 增加互斥条件实现线程同步
增加互斥条件,实现线程同步。一、创建互斥对象 : HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,// 安全性 BOOL bInitialOwner, // flag for initial ownership, LPCTSTR lpName // pointer to mutex-object name );打
2006-08-20 09:17:00 2684
原创 孙鑫VC学习笔记:第十五讲 线程创建方法
一、创建一个线程创建线程使用CreateThreadThe CreateThread function creates a thread to execute within the address space of the calling process. HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD
2006-08-19 11:42:00 2437
原创 孙鑫VC学习笔记:第十五讲 进程和线程基本概念
程序、进程和线程基本概念——程序和进程程序是计算机指令的集合,它以文件的形式存储在磁盘上。进程:通常被定义为一个正在运行的程序的实例, 是一个程序在其自身的地址空间中的一次执行活动。进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,也不能作为独立的运行的单位, 因此,他不占用系统的运行资源。进程由两个部分组成: 1、操作系统用来管理进程
2006-08-19 11:38:00 1845
原创 孙鑫VC学习笔记:第十四讲 网络编程
基于TCP服务器端编程步骤//1.加载套接字库//2.创建套接字//3.将套接字绑定到本地地址与端口上//4.设置监听//4.接收服务器端发送的数据,并且向服务器端发送数据//5.关闭套接字,释放资源,并且终止对套接字库的使用基于TCP客户端编程见下面,TCP和UDP编程代码大致相同,不同之处在于,TCP使用send/recv发送与接收数据;UDP使用sendto/recvfrom;
2006-08-18 09:37:00 2163
原创 孙鑫VC学习笔记:第十四讲 网络的基本概念
介绍一下网络的基本概念------------------------------------------------------------------------ISO/OSI七层参考模型OSI(Open System Interconnection)参考模型将网络的不同功能划分为7层。应用层--->处理网络应用表示层--->数据表示会话层--->主机间通信传输层--->端到端的连接网络层--
2006-08-18 09:21:00 1642
原创 孙鑫VC学习笔记:第十三讲 关于释放内存
关于释放内存不管是新建文档还是打开另外一份文档,文档对象都是被重复使用的,我们应该在这个时候去释放先前分配的内存。在打开或者新建一个文档时都会调用Cdocument::OnOpenDocument方法,而这个方法又会调用DeletContents成员函数删除文档数据,该函数在文档被销毁之前或文档被重复使用之前被调用,用来删除对象的数据(但并不消除对象本身),从而确保文档数据是空的。这对于一个单
2006-08-17 08:59:00 3259 3
原创 孙鑫VC学习笔记:第十三讲 保存可串行化的类对象 如何获取文档与视类指针
如何获取视类指针:1.首先要获得第一个视类对象在视类对象列表中的位置,用GetFirstViewPosition方法virtual POSITION GetFirstViewPosition( ) const; A POSITION value that can be used for iteration with the GetNextView member function. POSITIO
2006-08-16 22:08:00 2969 1
原创 孙鑫VC学习笔记:第十三讲 生成可串行化的类
生成可串行化的类:如果要用CArchive来保存一个对象,那么这个对象的类必须支持串行化。要生成一个可串行化的类,需要下面5个步骤:(以生成第11讲中用过的CGraph类为例)1 . Deriving your class from CObject (or from some class derived from CObject). 从CObject派生你的类 class CGraph :
2006-08-16 21:59:00 1510
原创 孙鑫VC学习笔记:第十三讲 WM_FILE_NEW消息响应原理
WM_FILE_NEW消息响应原理当点击“新建”按钮时,会发送WM_FILE_NEW消息,按照消息响应函数的命名规则,它的响应函数应该叫OnFileNew(),但是在代码中找不到,通过调试发现,当新建按钮时,程序会调用CGraphicDoc::OnNewDocument(),WM_FILE_NEW的消息是如何响应的呢?我们可以在VC++的安装目录下找到一个文件../Microsoft Visu
2006-08-16 21:57:00 1600
原创 孙鑫VC学习笔记:第十三讲 设置文档标题
设置文档标题:前面我们讲过如何去修改一个程序的图标(在CMainFrame类中)、光标、背景(在View类中),没有讲如何修改程序的标题(在前面两个类中都修改不了)。方法一: 在程序启动的时候,会调用OnNewDocument创建一个“无标题”文档, 所以我们可以在这个方法中调用CDocument类的SetTitle成员函数修改标题。方法二: 也可以在String Table中修改标题,
2006-08-16 21:47:00 1629 1
原创 孙鑫VC学习笔记:第十三讲 用CArchive类读取与保存文件
介绍一种利用CArchive类读取与保存文件的方法: 首先:构造一个CFile对象 然后构造一个CArchive对象, 接着就可以用CArchive对象的">"操作符提取数据 注意:提取数据时应按照保存的顺序提取。
2006-08-16 21:39:00 1985
原创 孙鑫VC学习笔记:第十二讲 读写注册表
修改注册表对注册表的操作是通过几个函数完成的。在注册表中,值包含三个部分:值的名称,值的类型,值的本身即数据使用RegSetValue()向注册表写入数据:注意:RegCreateKey只能建立REG_SZ型数据,要建立其他数据需要调用RegCreateKeyEx使用RegSetValueEx()向注册表写入数据:使用RegQueryValue读取注册表:要获得其他数据类型数据,调用Reg
2006-08-15 16:11:00 1590
原创 孙鑫VC学习笔记:第十二讲 往win.ini的文件中写入数据
往win.ini的文件中写入数据在实际开发程序时,我们经常要把一些初始化信息写入到一个配置文件中,当程序启动的时候读入这些初始化的信息。早期的软件会将这些信息写入一个叫win.ini的文件中(当然现有很多软件将这些信息写到注册表中)。如果我们也想在win.ini文件中写入信息,可以利用WriteProfileString函数。我们在CFileApp::InitInstance()函数中,调
2006-08-15 16:00:00 2022 1
原创 孙鑫VC学习笔记:第十二讲 用API函数、CFile类操作文件
用Win32API函数操作文件:1.保存文件 首先用CreateFile 打开文件,然后调用WriteFile将数据写入到文件当中。 2.读取文件 首先用CreateFile 打开文件,然后调用ReadFile读取数据到ch字符数组中。----------------------------------------------------------------------------
2006-08-15 15:41:00 2441
原创 孙鑫VC学习笔记:第十二讲 用C++函数读写文件
C++读写文件方法在C++中,可以用ofstream类来写入文件,这个类的头文件是 可以用ifstream类来读取文件,ifstream类的用法与ofstream类似
2006-08-15 15:36:00 1863
原创 孙鑫VC学习笔记:第十二讲 用C语言函数读写文件
C语言中文件写入操作FILE *pFile=fopen("1.txt","w"); //w方式,会销毁打开文件中原先的内容fwrite("I Love You",1,strlen("I Love You"),pFile); //写入数据---------------------------------------------------------------------------------
2006-08-15 15:28:00 2531
原创 孙鑫VC学习笔记:第十二讲 介绍常量指针、指针常量,文本、二进制文件
◆指向常量的指针它指向的内容是常量,不能修改;但是指针本身存放的是指针值,可以修改。char ch[5]="list" 这种赋值形式只能在数组定义的同时进行。 常量字符串会自动加上/0,所以字符串长度为五通常,如果想用指针传参,通常会将形参声明的指向常量的指针类型当实参传入之后,形参无法修改实参指向的内容,从而保证了数据的一致性---------------------------------
2006-08-15 15:16:00 1998
原创 选美,为我妹妹投一票,5号选手
2006年33届环球国际小姐中国福建区总决赛,我妹妹是5号选手陈小燕,短信投票占40%啊!感谢您编写短信V5发送到发送至880866(移动:全国有效)、960666(联通:全国有效)、936899(小灵通福建省有效),投出决定性的一票!一个手机号可以投15次。参赛说明:http://www.73110.com/hq2006/index3.asp这里给出她一些图片:http://photo.16
2006-08-15 11:02:00 1072
原创 孙鑫VC学习笔记:第十一讲 图形重绘方法二 利用元文件
介绍两种保存图形与重绘图形的方式第一种,要利用要一个类 CMetaFileDC第一步创建一个CMetaFileDC 对象。接着调用CMetaFileDC 构造器,然后再调用Create 函数 创建一个设备上下文与CMetaFileDC 对象关联起来。下一步给CMetaFileDC 对象发送一系列的CDC命令在为元文件发送完命令之后,调用Close成员函数关闭元文件的设备上下文,并返回一个元
2006-08-14 10:31:00 1984
原创 孙鑫VC学习笔记:第十一讲 如何使窗口具有滚动条
如何使窗口具有滚动条?本程序的CGraphicView 类是从View类继承的 class CGraphicView : public Cview首先将基类改成CScrollView class CGraphicView : public CScrollView然后将源文件cpp文件中的CView全部替换成CScrollView在文件中替换字或词的步骤, 从菜单中选择 Edit->Replace,
2006-08-14 10:24:00 4180
原创 孙鑫VC学习笔记:第十一讲 图形重绘方法三 利用兼容DC
介绍利用兼容DC保存图形与重绘图形的方式1.构造兼容DC对象:CDC m_dcCompatible2.在CGraphicView::OnLButtonUp写下面代码3.在CGraphicView::OnDraw中写入下面代码:CBitmap::CreateCompatibleBitmap 通过指定的宽高创建一个兼容位图。初始化一个与指定设置相兼容的位图 BOOL CreateCompatible
2006-08-14 10:20:00 1811
原创 孙鑫VC学习笔记:第十一讲 如何把元文件保存到文件当中
如何把元文件保存到文件当中1.为“打开”,“保存”添加命令相应函数。2.用 CopyMetaFile 拷贝元文件到指定文件中CopyMetaFile 将windows格式的元文件拷贝到指定的文件当中。首先我们在“保存”命令响应函数OnFileSave()中完成保存元文件到文件的功能,执行之后在项目工程文件夹中增加了一个meta.wmf的文件,用ACDsee可以打开。--------------
2006-08-14 10:05:00 1628
原创 孙鑫VC学习笔记:第十一讲 图形的保存与重绘方法一
图形的保存和重绘编写画图代码,设定一个标识,在OnLButtonDown中保存鼠标按下去的点,在OnLButtonUp中捕获鼠标弹起的点,利用switch语句分别画图。这是上节课的内容,上节课还讲了窗口重绘的原理,实际上分为两步,首先擦除以前的背景,然后再进行窗口重绘。所以当拖动窗口改变窗口大小时,窗口要发生重绘,首先会擦除以前的背景,于是先前所画图像会消失。解决办法是将画图代码写在OnDr
2006-08-14 09:49:00 2603
原创 孙鑫VC学习笔记:第十一讲 坐标空间与各种转换的概念
孙鑫VC学习笔记:第十一讲 坐标空间与各种转换的概念介绍一下坐标空间、逻辑空间、映射方式等概念MicroSoft Windows 下的程序运用坐标空间和转换来对图形输出进行缩放,平移,旋转,斜切和反射。一个坐标空间是一个二维空间,通过使用连个相互垂直并且长度相等的轴来定义二维对象 坐标空间API使用四种坐标空间:世界坐标系空间,页面空间,设备空间,和物理设备空间。基于Win32的应用程
2006-08-14 09:36:00 2015 1
原创 孙鑫VC学习笔记:第九讲外观
在网上搜索了很久都没有找到孙鑫VC视频教学第九讲的笔记,只好自己写了 九、外观1 http://img584.photo.163.com/goodmoood/61588745/1785749078.jpg九、外观2 修改窗口的图标、光标和背景.jpg http://img584.photo.163.com/goodmoood/61588745/1785749281.jpg九
2006-08-11 08:54:00 2800 1
原创 孙鑫VC学习笔记:第七讲
七、对话框 2006年8月5日14:25因为笔记是用OneNote做的,上传以后为看不到图片,于是我截图放到相册上面,相册地址为:http://photo.163.com/photos/goodmoood/61588745/ 如何创建一个对话框1.先插入一个对话框,对话框本身也是一个窗口Insert->resouce 2.我们需要
2006-08-06 21:50:00 5699 1
飞扬热键V1.05 --优化电脑操作提高工作效率的小工具集合
2012-04-18
窗口快捷控制器--让大显示器中控制窗口更容易
2010-11-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人