C/C++隐藏摘要
-
用VC制作可扩展对话框 (发布于 2007-06-25)
宋端智 为了说明用VC制作可扩展对话框的方法,我们将制作如图1效果的对话框。 创建一个基于对话框、名为Expand的工程。编辑工程中对话框的内容并不重要,重要的是必须添加一个作分界线的控件和一个“高级”按钮。我们使用Picture控件(也可换为其它控件)当作分界线。 类型 id property button idc_advan ...查看
-
Visual C++编程技巧四则 (发布于 2007-06-25)
宋端智 一、修改系统选单 当我们点击某窗口标题左侧图标时会激活一个系统选单,选单上一般有最小化、最大化、关闭等选项。如果希望对系统选单进行修改,我们可以在应用程序的InitInstance函数中使用CWnd::GetSystemMenu获取指向系统选单的指针,然后对其修改。 CMenu ?pMenu; pMenu=m_pMainWnd-〉GetSystemMenu(FALSE); pMenu-〉AppendMenu ...查看
-
VC编程实现个性化IE (发布于 2007-06-25)
冷山述 微软的浏览器IE虽然功能强大,但使用时间一长,其一成不变的微软模式:窗口、按钮等就令我们厌倦了,我们能否拥有一个自己喜欢的个性化IE浏览器呢?下面笔者将介绍利用VC++ 6.0编程,通过修改注册表来实现IE个性化的方法。 一、VC修改注册表的方法与函数 我们利用VC编程实现修改注册表时,需要分三个步骤来完成。 首先,我们要得到需修改键 ...查看
-
编写控制面板应用程序 (发布于 2007-06-25)
山东建行科技部 李 进 当我们打开控制面板时,会看到一些控制面板项目,如“添加/删除程序”、“调制解调器”、“系统”等。我们经常需要通过这些项目来对Windows进行配置。还有一些软件,如雅马哈声卡的驱动程序,会在控制面板中增加自己的配置项目。使用C++Builder 能方便快速地开发出自己的控制面板应用程序。 使用标准的控制面板程序 控制面板程序实际上就 ...查看
-
怎样旋转字体 (发布于 2007-06-25)
王克强 在Windows环境下编程时,我们有时可能希望能够让字体旋转显示,那么怎样实现它呢? 我们知道, Windows环境下的显示是GDI对象通过设备描述表进行的,而字体对象就是GDI对象之一。实际上,Windows下的不同字体就是通过选择不同的逻辑字体而输出的。所以,旋转字体不过是一类特殊的逻辑字体。如同其他的GDI对象(如画笔、调色板)一样,字体对象不但具有固有的字体 ...查看
-
在Visual C++中用ADO进行数据库编程 (发布于 2007-06-25)
蒋东宇 ActiveX数据对象(ADO)是OLE DB上面的高层数据库API。我们在C++程序中也可以调用ADO。本文将在VC 6.0环境下做一个小小的例子解释如何使用ADO。 1. 生成应用程序框架并初始化OLE/COM库环境 创建一个标准的MFC AppWizard(exe)应用程序,然后在应用程序类的InitInstance函数中初始化OLE/COM库(因为ADO库是一个COM DLL库)。 BOOL CADO ...查看
-
用C++5.0编制字符过滤程序 (发布于 2007-06-25)
刘茂忠 有些文件带有很多乱字符,如从Interent上Down下来的文件存储成文本文件后多含有太多的换行符,如果要重新编辑成文稿,需要单个去掉这些换行符。笔者为此用C++5.0编制了一个小的处理程序,能够自动地去掉文本中的乱字符(以换行符为例),下边详解一下该程序。 #include <iostream.h> #include <fstream.h> #include <stdlib.h> ...查看
-
改变对话框控件的字体 (发布于 2007-06-25)
李玉存 在应用VC++进行程序设计时,为了使界面美观,往往需要改变对话框控件中文本的字体及大小。 问题的提出 要改变对话框控制中文的字体及大小,可以采用多种方式,在基于资源模板的对话框中改变控件的字体更是一件很容易的事。点击对话框资源模板的属性页中的“字体”按钮,选择所需的字体即可改变对话框控制中文本的字体及大小,可是这种方法并非在任 ...查看
-
用C++Builder操纵Excel (发布于 2007-06-25)
赵天平 Microsoft Excel作为一个功能强大的电子表格处理软件,已经得到了广泛的应用。在数据库应用软件开发过程中,如果能实现数据库与Excel文件的数据交换,那么一方面能增加数据库数据的来源,另一方面也能方便用户对数据库数据的进一步处理。 C++ Builder是一个可视化快速应用程序开发工具,它提供的OLE Automation机制使得开发人员在应用程序中就能调用Excel, ...查看
-
处理内存泄漏的MFC方法 (发布于 2007-06-25)
信息产业部数据所多媒体室 廖 铮 Windows使用复杂的内存管理器控制优化内存的使用(包括磁盘缓冲)。一旦内存管理出现纰漏就会导致内存泄漏。内存泄漏的实质是因为在堆上分配了某块内存但以后不再对其重新分配,使得该部分内存失去重用性。出现这一问题的多数应用程序一开始往往正常运行,所以要检测出该类问题是较为困难的,要将其找出并得到正确的处理更麻烦。大多数MFC应用程 ...查看
-
批量发送电子邮件 (发布于 2007-06-25)
西南民族学院数学系 王翠梅 前几天读了《计算机世界》报的一篇文章“如何批量发送电子邮件”,写得较为详细,但用到了数据库,感觉不太利于别人“即拷即用”。现提出本人的邮件批发简易解决方案。 首先准备一含多个邮件地址的文本文件,运行时将其内容装入一个listbox控件中,再利用Nmsmtp控件,给其UserID、Host、PostMessage的诸个属性赋值,用Listbox中的地址逐次给PostMessa ...查看
-
字符界面 数据录入流程控制 (发布于 2007-06-25)
中国建设银行北京分行 陈德模 软件开发过程中,往往需要为录入数据而设计许多不同的录入界面,编写不同的录入控制程序,这不仅费时费力,而且使程序变得冗长。其实,认真分析就会发现他们有很多共同点,完全可以把这种编程工作简化。现介绍一种字符界面环境下数据录入流程控制的方法供大家参考。 数据录入流程控制简单说就是根据数据录入者的操作将光标定位于屏幕界面的不同 ...查看
-
VC++初学者常见问题解惑 (发布于 2007-06-25)
李 海 Visual C++是功能非常强大的工具,但也是公认比较难于入门的。这里,我们整理了一些初学者常见的问题,希望帮助那些刚刚接触Visual C++的朋友享受编程的乐趣。 问:我是一新手,请问我以前在TC++中写的C++程序,在VC中要建立一个什么样的工程来运行它(程序在TC++是正确的)? 答:在VC++中新建工程时,你可以选择Win 32 Console Application ...查看
-
如何用邮槽进行进程间通信 (发布于 2007-06-25)
蒋东宇 在Windows环境下,实现进程间通信的方式有很多种,如套接字、管道、远程过程调用和NETBIOS等,邮槽是其中实现单通道进程间通信的一种。创建邮槽的进程被称为邮槽服务器,而其它发送消息给邮槽的进程被称为邮槽客户端。邮槽客户端能发送消息给本机的邮槽,也可发送消息给局域网内其他计算机内的邮槽,所有这些消息都存储在邮槽内,直到邮槽服务器读取它。这些消息通常是以广 ...查看
-
VC中如何创建多个工具条 (发布于 2007-06-25)
粟利民 在实际的软件开发中,我们常常需要创建多个自定义的工具条,并且要象标准的工具条那样,允许用户通过鼠标将自定义的工具条移动到框架的其它地方,还可以根据需要显示或是隐藏该工具条。通过实践,我们在Visual C++ 6.0中编程实现了创建自定义的工具条,从而在应用程序中可并存多个工具条。 1. 在Visual C++ 6.0中用AppWizard以默认方式创建SDI或MDI的应用程序工 ...查看
-
BCB实现显示历史文件的功能 (发布于 2007-06-25)
孙航东 现在,许多Windows应用程序都具有在文件选单中显示历史文件的功能,这使用户很容易再次访问这些文件。笔者利用Borland C++ Builder(BCB)提供的TRegedit类,成功地在注册表中实现了上述功能。现介绍如下: 1.在C++ Builder中新建一个工程文件project1,并在Form1上添加如下控件: 控件名称 属性 值 TOpenDialog Name OpenDialog1 TMai ...查看
-
ADO VC++ Extensions使用详解 (发布于 2007-06-25)
吴 宁 ADO VC++ Extensions是ADO 2.0 版本提供的新接口,它支持不通过 VARIANT 便可将数据检索到本地的 C/C++ 数据类型中。此外,它还提供能简化接口使用过程的预处理宏,这些扩展程序使用简便并且性能良好。 ADO VC++ Extensions 可将 Recordset 对象的字段映射到 C/C++ 变量,字段与变量的映射称为绑定条目。预处理宏用来定义数值、定长和变长变量的绑定。 ...查看
-
建立静态嵌套式分栏窗口并实现其通信 (发布于 2007-06-25)
紫 瑗 我们在编写程序时,为了加强程序的易用性和获得良好的用户界面,很多时候会用到嵌套式窗口(Splitter window)。由于在含有分栏窗口的程序中,涉及的类将比较多,分栏窗口的各窗格间要进行相互通信,所经的途径也将会比较复杂,稍有不慎,便可能引起程序的错误。本文将介绍一种较安全的实现分栏窗口间相互通信的办法。 一、 程序原理 要实现嵌套式分栏 ...查看
-
增强VC编辑控件功能 (发布于 2007-06-25)
张淑贤 在VC编程中,如果用户在编辑控件中只允许接收数字,可以在编辑控件的属性中选定Number,当向编辑控件中输入非数字字符时,发出鸣叫声并拒绝该字符。但是假如我们希望用户向编辑控件中输入的字符有一定的限制但不仅仅是数字,比如要求用户在对话框中输入内容为带一个小数点的浮点数时,如何实现呢? 为此,我们需要创建一个基于CEdit的新类,并且为其添加监视输 ...查看
-
用C++Builder开发多任务多媒体播放器 (发布于 2007-06-25)
石油大学 木合塔尔 在市场上有功能强大的各种各样的多媒体播放器,但其中没有一个是真正的多任务多媒体播放器。您想像过在屏幕的一个角落里放映一个影碟而不管使用什么样的应用程序,这个小窗口都不会消失的情景吗?您的多媒体播放器能实现这样的功能吗?本文描述了用C++Builder编写具有这样功能的多媒体播放器的方法。 一、编程实现 第一步 新建一个工程,保存 ...查看
-
通过VC++调用MATLAB (发布于 2007-06-25)
中国科学院光电技术研究所 齐 波 董能力 一、引言 众所周知,MATLAB是功能非常强大的数学软件,它广泛应用于线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等领域。因此如果把 MATLAB的程序加入到自己的VC++、VB、POWER STATION及其他语言编制的程序中,将大大减少编程的工作量,保证程序的准确性,并且继承良好的用户界面。下面以VC++ ...查看
-
用VC++6.0制作简易浏览器 (发布于 2007-06-25)
重庆 黄文平 浏览器是我们上网时必须使用的软件,我们常用的浏览器有IE、Netscape等。面对它们,我们往往会感叹如此强大功能的软件是如何编写出来的呢?的确,要编写一个功能完善的浏览器是很不容易的。但是,利用当今的一些面向对象开发工具来编写一个简易的浏览器以实现它的主要功能却十分容易。用VC++,一支烟的功夫就能办到!不信,请跟我来。 实现原理: Ac ...查看
-
利用C++ Builder 实现网络连接检测程序 (发布于 2007-06-25)
沈洪波 在Windows系统中,我们经常用Ping.exe来测试网络的连通性。 Ping的实现过程很简单,该命令将引发IP层发送一个简单的IP包,一般是32字节。而目的方收到这个包后,将源地址和目的地址变换一下,重新发送这个包即可,当然还要加一些超时机制。 其实,我们也可用C++ Builder NetMaster中的NMEcho控件来实现网络连接检测功能。 首先定义以下控件: ...查看
-
在C++ Builder程序中控制Windows关机 (发布于 2007-06-25)
许锦新 我们在应用程序编制完成后,需要设计应用程序的包装和分发功能。在编写安装程序时,经常会遇到这样的问题:程序安装完成后需要重新启动计算机。那么在代码中如何控制Windows的关机或重新启动呢? 要实现这个功能,需要用到Windows API提供的一个ExitWindowsEx函数。我们可以通过查看C++ Builder提供的帮助文件得到这个函数的使用格式: BOOL ExitWindowsE ...查看
-
在C++ Builder程序中控制Windows关机 (发布于 2007-06-25)
紫 瑗 我们知道,Windows系统是建立在消息传递机制基础上的,几乎所有的程序活动都由消息来驱动。Windows的钩子机制可以看作是一个消息中转站,控制系统发出消息的处理和传递,利用钩子,我们可以截获系统发给应用程序的消息,经过处理后决定是否将消息再发给下一个应用程序。 利用钩子的这一特性,我们可以创建一个监控程序,用来收集和控制系统发出的消息。 ■ ...查看
-
C++B网络编程经验几则 (发布于 2007-06-25)
骆名群 一 、用C++Builder设计自己的浏览器 C++Builder5提供了一个浏览器控件CppWebBrowser,它位于internet控件栏,主要方法有: Navigate函数,用于浏览给定的url的资源; GoBack(),浏览上一页; GoForward(),浏览下一页; Stop(),停止浏览; Refresh(),刷新当前页面。 新建一个应用程序,将工程名保存为myie,设置Form1 的Name为 ...查看
-
用MFC编制Windows打印程序 (发布于 2007-06-25)
牛霜霞 文档打印是许多Windows程序所必需的,在DOS下进行图形方面的打印是件比较麻烦的事,幸好Windows提供了统一接口,将程序员与具体的硬件系统隔离开来。同时Visual C++ MFC(微软基础类库)则将Windows的API函数以类的形式封装了很多细节,使得许多烦琐的工作变得轻松起来。 一般来说,用Visual C++编制需要打印的程序时,在用AppWizard生成工程文件时就加入打印 ...查看
-
利用C++ Builder 5.0 开发自己的屏幕保护程序 (发布于 2007-06-25)
孙航东 在Windows系统中为用户提供了很多屏幕保护程序,如:“三维文字”、“三维变形物”等,其实用户完全可以开发一个有自己风格的屏幕保护程序。 屏幕保护程序是SCR文件,其实质就是一个标准的可执行文件。SCR文件由两部份组成:保护程序执行界面、保护程序设置界面。最后为了使保护程序能够按照用户以前设置的参数运行,笔者采用了注册表技术来保存用户的设置信息。现 ...查看
-
C++ Builder中消息处理过程及应用 (发布于 2007-06-25)
张道新 C++ Builder作为一种RAD方式的程序开发工具,其全新的可视化编程环境、面向组件的开发模式无疑会大大地提高编程效率。它对繁杂的Windows 消息及API作了较全面的封装,编程者在大多数情况下不需理会Windows消息的细节,只要将心思放在组件的事件处理函数上即可。然而,毕竟Windows操作系统是一个以消息驱动的系统,运行其上的应用程序,自然无法脱离系统之外,因此掌 ...查看
-
获取GDI对象的属性信息 (发布于 2007-06-25)
苏金国 要获得GDI对象的属性信息,可以调用GDIObject::GetObject函数,这个函数将指定图表设备的消息写入到缓冲区。 下面将设计几个有用的辅助函数: //字体是否加粗 BOOL IsFontBold (const CFont&&font) { //取得字体信息 LOGFONT stFont; font.GetObject (sizeof (LOGFONT), &&stFont); return (stF ...查看
-
用Chart控件绘制动态图表 (发布于 2007-06-25)
北京邮电大学 刘瑞芳 进行程序设计时,选用一个合适的ActiveX控件,有时可大大减少编程工作量。ActiveX 控件(又称OCX)基于COM技术,作为独立的软件模块,它可以在任何程序设计语言中插入使用。本文仅以VC++为例说明Chart控件的使用。 Chart控件指Mschart.ocx(5.0版)或Mschrt20.ocx(6.0 版),是Visual Studio自带的ActiveX控件之一,其属性、事件很多,功能非常强 ...查看
-
STRONG>WDM驱动程序设计 (发布于 2007-06-25)
苏金国 基础知识篇 WDM(Win32 Driver Model),即Win32驱动程序模型,是Microsoft力推的全新驱动程序模式,旨在通过提供一种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发的驱动程序的数量和复杂性。 除了通用的平台服务和扩展外,WDM还实现了一个模块化的、分层次类型的微型驱动程序结构(见图1)。类型驱动程序实现了支持 ...查看
-
InstallShield for Microsoft Visual C++ 6使用初探 (发布于 2007-06-25)
合肥 汪 涛 InstallShield for Microsoft Visual C++ 6 是一个非常好的制作安装程序的软件。从它的名称可以看出它是为Visual C++ 6定制的软件,但这并不说明它只能用于Visual C++ 6的安装程序制作。其他应用程序同样可以用它制作安装程序,只不过这时需要单独启动InstallShield for Microsoft Visual C++ 6,且需要人工加入一些代码。 一、在Visual C++ 6 ...查看
-
用VC设计托盘图标程序 (发布于 2007-06-25)
宋端智 在Windows操作系统中,任务栏的右边(托盘)会常驻几个图标,如输入法切换图标、音量控制图标等,此外我们还经常遇到具有托盘图标的软件,如金山词霸、实时监测功能的杀毒软件等。这些软件在后台运行,通常不占用太多的屏幕资源,只在通知栏上放一个小小的标志,必要时我们可以通过用鼠标点击图标对其进行选单操作或激活其主窗口。有时我们自己编写的程序也希望有类似的效果 ...查看
-
编程调整控件背景色 (发布于 2007-06-25)
苏金国 VC中由于没有直接的属性设置可以调整编辑控件的背景色,因此我们需要利用图形设备接口的有关操作来实现这一目标。 首先,利用Class Wizard为WM_CTLCOLOR 消息构造相应的消息映射,将得到以下的消息处理函数: HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor) ...查看
-
用VC实现在线订货 (发布于 2007-06-25)
紫 瑗 目前电子商务采用的处理模式大多是订货用户在网页上填写订单,发出订货请求,接着WEB服务器上运行CGI程序对用户填写的数据进行一定的处理后,发送到专用的电子商务服务器中,服务器则对发来的用户数据进行一系列校验,验证用户身份及证实所需的订货信息完整后,将订单写入数据库中,并向WEB服务器中的CGI程序发回一个交易成功的信息,证实交易完成。 我们利用VC++的 ...查看
-
在对话框中加入工具栏 (发布于 2007-06-25)
苏水荣 工具栏(ToolBar)是一种非常方便的控件,能大大增加用户操作的效率,但是基于对话框的程序,却不能像使用编辑框(Edit Box)和列表框(List Box)一样,方便地增加工具栏控件。本文将介绍一种在对话框中加入工具栏的方法。 一、 技术要点分析 所有的Windows控件(包括工具栏、编辑框等)都派生自CWnd类,这就意味着,我们可以用窗口类的Create()函数 ...查看
-
编程获取图标一法 (发布于 2007-06-25)
苏金国 在程序中,当需要获得其他程序的图标时,我们可以首先调用SDK函数 SHGetFileInfo获得应用程序的有关信息 ,并利用得到的hIcon句柄实现图标显示。 例如,如果需要在程序窗口左上角显示写字板图标(见图1),可以在相应视类的OnDraw中增加以下代码: void CSampleView: OnDraw(CDC ? pDC) { //获得图标信息 if( :: SHGetFileInfo(_T(C ...查看
-
实现网络的远程访问服务 (发布于 2007-06-25)
苏水荣 在现代复杂的大型计算机网络环境中,一台计算机常常需要通过电话线路登录到可能远在数千公里外的远程网络上,以取得网络资源,或与网络中的其它计算机进行通讯(拨号上Internet就是其中一例)。在设计有这样需求的网络程序时,我们应当为其集成远程访问服务(RAS,Remote Access Service)能力,以使我们的程序的功能上更完整,结构上更严谨。 为了方便程序员编写 ...查看
-
Win32串口编程 (发布于 2007-06-25)
金贝贝 一、基本知识 Win32下串口通信与16位串口通信有很大的区别。在Win32下,可以使用两种编程方式实现串口通信,其一是调用的Windows的API函数,其二是使用ActiveX控件。使用API 调用,可以清楚地掌握串口通信的机制,熟悉各种配置和自由灵活采用不同的流控进行串口通信。下面介绍串口操作的基本知识。 打开串口:使用CreateFile()函数,可以打开串口。有两种方法可 ...查看

