
vc++连载
文章平均质量分 69
love-xiao-forever
这个作者很懒,什么都没留下…
展开
-
VC多线程编程实例
MultiThread2该线程演示了如何传送一个一个整型的参数到一个线程中,以及如何等待一个线程完成处理。 1. 建立一个基于对话框的工程MultiThread2,在对话框IDD_MULTITHREAD2_DIALOG中加入一个编辑框和一个按钮,ID分别是IDC_COUNT,IDC_START ,按钮控件的标题为“开始”;2. 在MultiThrea原创 2013-06-03 10:54:02 · 1087 阅读 · 0 评论 -
Windows操作系统特点
Windows之所以取得成功,主要在于它具有以下优点: 直观、高效的面向对象的图形用户界面,易学易用:从某种意义上说,Windows用户界面和开发环境都是面向对象的。用户采用“选择对象-操作对象”这种方式进行工作。比如要打开一个文档,我们首先用鼠标或键盘选择该文档,然后从右键菜单中选择“打开”操作,打开该文档。这种操作方式模拟了现实世界的行为,易于理解、学习和使用。原创 2013-06-02 16:47:37 · 6046 阅读 · 0 评论 -
vc++笔记--Win 32的多媒体服务
Windows 95/NT提供了丰富的多媒体服务功能,包括大量从低级到高级的多媒体API函数。利用这些功能强大的API,用户可以在不同层次上编写多媒体应用程序。有关多媒体服务的内容完全可以写一本书,本节只是向读者简要地介绍一些最常用的多媒体服务。 在用Visual C++开发多媒体应用时,用户必须在所有要用到多媒体函数的源程序中包含MMSYSTEM.H头文件,并且该文件位置应在WINDOWS原创 2013-06-02 16:46:52 · 935 阅读 · 0 评论 -
MFC的ODBC类简介
MFC的ODBC类对较复杂的ODBC API进行了封装,提供了简化的调用接口,从而大大方便了数据库应用程序的开发。程序员不必了解ODBC API和SQL的具体细节,利用ODBC类即可完成对数据库的大部分操作。 MFC的ODBC类主要包括:CDatabase类:主要功能是建立与数据源的连接。CRecordset类:该类代表从数据源选择的一组记录(记录集),程序可以选择数据源中的某个原创 2013-06-01 09:06:09 · 1170 阅读 · 0 评论 -
ODBC基本概念---vc++学习笔记
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给OD原创 2013-05-31 20:06:19 · 1197 阅读 · 0 评论 -
vc++笔记---支持多个文档类型的文档视结构程序
上一页 下一页 返回 8.7 支持多个文档类型的文档视结构程序 要支持多种文档类型,可以在CWinApp派生类对象中创建和注册附加的CMultiDocTemplate对象。在MFC应用程序中,要增加附加的文档类型,步骤可分为五步。下面我们试着将上一章的文本编辑器加到绘图程序中。这样程序不仅支持绘图,还支持文本编辑功能。(1)使用ClassWizard创建新的文档类和视原创 2013-06-02 15:07:24 · 1075 阅读 · 0 评论 -
定制串行化
上一页 下一页 返回 7.4 定制串行化 前面编辑器的例子使用CString类的字符串来保存文本行,由于它是MFC类,因此可以串行化自己,将自己写入磁盘或从磁盘文件中读取二进制数据来建立对象。那么,如果不是标准的MFC类,比如用户自己定义的类,如何让它支持串行化呢?下面,我们结合前面第五章提到的就业调查表的例子来演示如何让用户定义的类支持串行化功能。 要让用户定义的类支持串行化原创 2013-06-02 15:06:40 · 800 阅读 · 0 评论 -
vc++笔记----用户模块
用户模块是由用户自己开发的、可以加入到最终用户(包括用户本人和其他使用该模块的人)应用程序中提供某一特定功能的函数和类的集合。 为了完成同样的工作,也可以向最终用户提供源程序。但是,使用用户模块有许多好处:首先是省去用户管理源代码的烦恼,用户许多情况下往往并不关心模块的内部实现,他只是想把它作为一个黑匣子使用。另外,模块的开发者有时候并不希望模块使用者看到源代码。还有,使用模块而不使用源代码原创 2013-06-02 15:05:43 · 843 阅读 · 0 评论 -
vc++笔记--Windows发展历史
Windows起源可以追溯到Xerox公司进行的工作。1970年,美国Xerox公司成立了著名的研究机构Palo Alto Research Center(PARC),从事局域网、激光打印机、图形用户接口和面向对象技术的研究,并于1981年宣布推出世界上第一个商用的GUI(图形用户接口)系统:Star 8010工作站。但如后来许多公司一样,由于种种原因,技术上的先进性并没有给它带来它所期望的商业上原创 2013-06-02 15:03:29 · 962 阅读 · 0 评论 -
vc++笔记---创建动态连接库
在一些情况下,必须使用动态连接库:1.多个应用程序共享代码和数据:比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态连接库实现的。2.在钩子程序过滤系统消息时必须使用动态连接库3.设备驱动程序必须是动态连接库4.如果要在对话框编辑器中使用自己定义的控件,也必须使用动态连接库5.动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成原创 2013-06-02 15:00:07 · 1022 阅读 · 0 评论 -
面向对象和Windows编程
面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法——结构化程序设计所不能解决的代码重用问题。 结构化程序设计从系统的功能入手,按照工程的标准和严格的规范将系统分解为若干功能模块,系统是实现模块功能的函数和过程的集合。由于用户的需求和软、硬件技术的不断发展变化,按照功能划分设计的系统模块必然是易变的和不稳原创 2013-06-02 16:50:10 · 1365 阅读 · 0 评论 -
应用程序执行机制
3.4.1 WinMain函数 在DOS下,程序的执行是从main函数开始的。在Windows下,对应的函数是WinMain。但是,如果浏览Hello程序的所有的方法和全局函数,是找不到WinMain函数的。MFC考虑到典型的Windows程序需要的大部分初始化工作都是标准化的,因此把WinMain函数隐藏在应用程序的框架中,编译时会自动将该函数链接到可执行文件中。程序员可以重写WinMai原创 2013-06-02 16:52:15 · 1128 阅读 · 0 评论 -
VC 编辑框
VC 编辑框 改变背景、字体、文本颜色、长度限制、英文 汉字判断 1。长度限制OnInitDialog()中:m_edit1.SetLimitText(8); //m_edit1为编辑框的成员变量或者CEdit*pEdt=(CEdit*)GetDlgItem(IDC_EDIT1);pEdt->SetLimitText(8)原创 2013-06-03 10:49:19 · 955 阅读 · 0 评论 -
定时器的基本使用方法
在编程时,会经常使用到定时器。使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数。1.1 用WM_TIMER来设置定时器先请看SetTimer这个API函数的原型 UINT_PTR SetTimer( HWND hWnd,原创 2013-06-03 16:17:12 · 2217 阅读 · 0 评论 -
CRichEdit
CRichEdit控件操作相关一般性问题1. 代码编译通过了,运行后RichEdit控件不显示,在InitInstance中添加BOOL CWinApp::InitInstance (){…AfxInitRichEdit(); - RichEdit 1.0或 AfxInitRichEdit2(); -RichEdit 2.0…} 2. 升级默原创 2013-06-03 10:52:39 · 1702 阅读 · 0 评论 -
listctrl
(要求不但能够在List Control中显示数据,而且能够动态修改选中的Item中的内容,其功能类似与在程序中插入一张可以随意修改的表(Table)。虽然整个过程很简单,却体现了MFC编程的灵活性。通过实现高级List Control控件,也可以从更深层次理解MFC界面编程。下面将实现步骤总结如下:这里我们来实现一个自己的类CEditTable,该类继承与CListCtrl。先说一下原创 2013-06-03 10:51:24 · 1015 阅读 · 0 评论 -
listbox
ListBox窗口用来列出一系列的文本,每条文本占一行。创建一个列表窗口可以使用成员函数:BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect,CWnd* pParentWnd, UINT nID = 0xffff );其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHIL原创 2013-06-03 10:50:28 · 931 阅读 · 0 评论 -
Combo Box
Combo Box (组合框)控件很简单,可以节省空间。从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。下面的例子简要说明如何利用 MFC CComboBoxClass来操作字符串列表。 1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将 Combo Box 控件拖原创 2013-06-03 10:23:52 · 1161 阅读 · 0 评论 -
Windows应用程序的开发工具
由于Windows是Microsoft的产品,因而在早期阶段,开发工具只有Microsoft C和SDK(Software Developer Kit:软件开发工具包)可供使用。利用SDK进行Windows程序的设计开发非常繁琐、复杂,代码可重用性差,工作量大,即便一个简单的窗口也需要几百行程序,令开发人员望而生畏。 随着Windows的逐渐普及,各大软件公司纷纷推出自己的Windows原创 2013-06-02 16:49:11 · 2833 阅读 · 0 评论 -
VC 单选按钮使用
先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButton原创 2013-06-03 10:21:36 · 1129 阅读 · 0 评论 -
几种窗口类型
框架窗口为应用程序的用户界面提供结构框架,它是应用程序的主窗口,负责管理其包容的窗口,一个应用程序的最顶层的框架窗口是应用程序启动时创建的第一个窗口。 MFC提供三种类型的框架窗口:单文档窗口,多文档窗口(MDI),对话框。在AppWizard的第一个对话框中,就提供了选项,让用户选择应用程序是基于单文档、多文档还是对话框的。MFC单文档窗口一次只能打开一个文档框架窗口,而MDI应用程序运行原创 2013-06-02 16:53:11 · 3889 阅读 · 0 评论 -
vc++ 笔记--串行通信与重叠I/O
Win 32系统为串行通信提供了全新的服务。传统的OpenComm、ReadComm、WriteComm、CloseComm等函数已经过时,WM_COMMNOTIFY消息也消失了。取而代之的是文件I/O函数提供的打开和关闭通信资源句柄及读写操作的基本接口。 新的文件I/O函数(CreateFile、ReadFile、WriteFile等)支持重叠式输入输出,这使得线程可以从费时的I/O操作中原创 2013-06-02 15:01:38 · 1464 阅读 · 0 评论 -
vc++笔记---CDatabase类
要建立与数据源的连接,首先应构造一个CDatabase对象,然后再调用CDatabase的Open成员函数.Open函数负责建立连接,其声明为virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC;”, BOOL bU原创 2013-06-01 11:46:09 · 1788 阅读 · 0 评论 -
vc++笔记----CRecordset类
CRecordset类代表一个记录集.该类是MFC的ODBC类中最重要、功能最强大的类。 动态集、快照、光标和光标库 在多任务操作系统或网络环境中,多个用户可以共享同一个数据源。共享数据的一个主要问题是如何协调各个用户对数据源的修改。例如,当某一个应用改变了数据源中的记录时,别的连接至该数据源的应用应该如何处理。对于这个问题,基于MFC的ODBC应用程序可以采取几种不同的处理办法,这将由原创 2013-06-01 11:47:31 · 2161 阅读 · 0 评论 -
下压按钮
在基于对话框的应用程序中,下压按钮是最常见的控件之一,如图6.10所示。图6. 10 下压按钮下面的步骤讲述如何向对话框中添加下压按钮控件。1. 在ResourceView中双击需要添加下压按按钮控件的对话框模板,Developer Studio将在资源编辑器中打开该对话框模板。如图6.11所示。2. 在图6.3所示的控件工具窗口中选择图标,直接使用鼠标在对话框中绘制出原创 2013-05-28 08:39:03 · 1444 阅读 · 0 评论 -
CWnd----4
15. 菜单函数(表6.16)表6. 16 类CWnd的菜单成员函数成员函数描述GetMenu获得指向指定菜单的指针SetMenu设置菜单为指定的菜单DrawMenuBar重绘菜单条GetSystemMenu允许应用程序访问控制菜单原创 2013-05-28 08:30:20 · 789 阅读 · 0 评论 -
CWnd---3
8. 坐标映射函数(表6.9)表6. 9 类CWnd的坐标映射函数成员函数描述MapWindowPoints从CWnd对象的坐标空间映射一系列点到另一窗口的坐标空间续表6.9成员函数描述ClientToScreen转换给定点的客户坐标或原创 2013-05-28 08:29:36 · 890 阅读 · 0 评论 -
CWnd类--1
在MFC中类CWnd是一个很重要的类,它封装了Windows窗口句柄HWND。在Windows编程中,窗口句柄唯一的标识了一个窗口。然而,尽管类CWnd的对象和窗口句柄之间有着如此紧密的联系,但两者并不是等同的概念。CWnd对象通过类CWnd的构造函数和析构函数创建和消毁,而Windows窗口是Windows内部的一种数据结构,在类CWnd中,它通过Create成员函数创建,通过其析构函数消毁。除原创 2013-05-28 08:27:35 · 942 阅读 · 0 评论 -
CString
CString操作指南CString 对象的连接格式化字符串(包括 int 型转化为 CString )CString 型转化成 int 型CString 型和 char* 类型的相互转化char* 转化成 CStringCString 转化成 char* 之一:使用LPCTSTR强制转化CString 转化成 char* 之二:使用CString对象的Ge原创 2013-05-28 09:07:05 · 740 阅读 · 0 评论 -
MFC窗口各控件的颜色和字体的设置
很多人定义了基于MFC的程序项目,当设计界面使用控件时,却不知道如何对各控件进行字体与颜色的设计;其实这些修改是需要动手添加代码的,这方面的修改在控件属性里是没有现成的,这不同于.net定义的项目,它的是有直接属性修改的。我在原文的基础上做了修改与完善,也可参见原文原文:http://www.study-code.com/visual-studio/vc/74759.htm1、改变对话框的原创 2013-05-28 09:01:45 · 1334 阅读 · 0 评论 -
单选钮
单选钮图6. 29 单选钮示例程序单选钮用来表示一系列的互斥选项,这些互斥选项常常被分成若干个组。下面的示例程序说明了单选钮的使用。1. 创建新的基于对话框的MFC应用程序,将工程名设置为RadioButton。2. 按图6.29绘制应用程序的主对话框。其中在Control工具箱中单选钮对应的图标是,组框控件对应的图标是。3. 单击Layout菜单下的TabOrde原创 2013-05-28 09:00:00 · 1370 阅读 · 0 评论 -
CWnd类---2
1. 类CWnd的数据成员(表6.2):表6. 2 类CWnd的数据成员数据成员描述m_hWnd与该CWnd对象相关联的Windows窗口句柄(HWND)2. 构造函数/析构函数(表6.3):表6. 3 类CWnd的构造函数和析构函数成员函数获得图标句柄原创 2013-05-28 08:28:42 · 1063 阅读 · 0 评论 -
使用对话框编辑器和ClassWizard(笔记二)
对于大多数Windows标准控件,我们一般都使用对话框编辑器来将它们添加到对话框中。图6. 1 在ResourceView中选择对话框IDD_DIALOGDEMO_DIALOG图6. 2 控件的Properties对话框图6. 3 对话框编辑器的Controls工具窗口在下面的过程中,我们将一个编辑框控件添加到在第四章创建的基于对话框的MFC框架应用原创 2013-05-27 08:44:30 · 2187 阅读 · 0 评论 -
位图按钮
位图按钮是由MFC提供的几种附加控件之一。在前一节的过程中,我们可以使用一个位图来代替文本作为下压按钮的标签。而在位图按钮中,我们可以使用多达四个位图来分别代表按钮处于四种不同的状态(凸起、按下、获得焦点或被禁止)下的显示。而且,使用位图按钮还可以去除掉令人讨厌的按钮黑边。而使用位图按钮并不复杂,但是相比起标准的按钮控件(它由Windows自身所提供)而言有一些特殊。下面的过程描述了位图按钮的使用原创 2013-05-28 08:42:18 · 2026 阅读 · 0 评论 -
组框
组框也是一种按钮控件。它常常用来在视觉上将控件(典型情况下是一系列的单选钮和复选框)进行分组,从而使对话框中的各个控件看起来比较有条理。图6. 28 组框(Group box)控件相对于其它控件来说,组框的使用非常之简单。这里我们需要强调的是,组框仅仅是在视觉上将控件进行分组,事实上控件在编程上的分组依赖于其Group属性的设置。组框也可以发送BN_CLICKED和BN_D原创 2013-05-28 08:56:57 · 944 阅读 · 0 评论 -
测试静态库
用AppWizard生成一个基于对话框的应用程序test。打开test资源文件,修改IDD_TEST_DIALOG对话框资源,加入两个按钮。按钮ID和文字为:IDC_SUM “&Summary”IDC_FACTORIAL “&Factorial”如图9-1所示。图9-1 修改test对话框用ClassWizard为上述两个按钮Click事件生成消息处理函数OnSum和O原创 2013-06-01 20:27:42 · 812 阅读 · 0 评论 -
创建静态库
现在以一个简单的数学函数库为例介绍静态库的创建和使用。要创建静态库,选择File->New菜单,弹出New对话框。选择Projects标签,在项目类型列表框中选择Win32 Static Library,在Name中输入mymath,表明要创建一个mymath.lib的静态库文件。然后用Project->Add to Project->Files菜单往mymath工程中加入以下两个文件:原创 2013-06-01 20:24:24 · 857 阅读 · 0 评论 -
vc++笔记-----MFC环境下的多任务、进程和线程
12.1.1 Windows 3.x的协同多任务 在16位的Windows 3.x中,应用程序具有对CPU的控制权。只有在调用了GetMessage、PeekMessage、WaitMessage或Yield后,程序才有可能把CPU控制权交给系统,系统再把控制权转交给别的应用程序。如果应用程序在长时间内无法调用上述四个函数之一,那么程序就一直独占CPU,系统会被挂起而无法接受用户的输入。原创 2013-06-01 09:09:47 · 1681 阅读 · 0 评论 -
数据库、DBMS和SQL---VC++笔记
数据库、DBMS和SQL 数据库是数据的集合,它由一个或多个表组成。每一个表中都存储了对一类对象的数据描述,一个典型的表如表10.1所示。表的每一列描述了对象的一个属性,如姓名、出生年月等,而表的每一行则是对一个对象的具体描述。一般将表中的一行称作记录(record)或行(row),将表的每一列称作字段(field)或列(column)。数据库通常还包括一些附加结构用来维护数据。表10.原创 2013-05-31 19:58:25 · 1212 阅读 · 0 评论 -
vc++笔记之绘图程序
在了解GDI的一些基本知识之后,我们就可以着手编写绘图程序了。这个绘图程序可以让读者用鼠标器在窗口内任意涂写,并可以保存所画的内容。这里我们参考了Visual C++的例子Scribble,并作了一些修改和简化。8.3.1 MDI应用程序框架首先用AppWizard生成绘图程序的基本框架:选择File->New,弹出New对话框,选择MFC AppWizard(exe),并指定项目文件原创 2013-05-31 14:16:48 · 2230 阅读 · 0 评论