半路出家之Windows编程
xiaqiang2006
这个作者很懒,什么都没留下…
展开
-
内存DC解决窗口闪烁问题
<br /> 在使用vc开发图形相关的应用程序时,常常需要使用MFC的CDC类直接把图形画在窗口上。这通常是通过响应windows的WM_PAINT消息实现的。如果要画的图形比较复杂,或者比较大,那么画图过程可能会造成窗口的闪烁。当窗口调整大小时,这种闪烁由为明显。<br /> 解决窗口闪烁问题的有效办法就是使用内存DC,也称为缓冲DC。在内存中准备一个和窗口DC相同属性的DC,在这个内存DC上执行画图操作。完成画图以后,把画图输出的内容整体复制到目标窗口DC上。因为画图操作不在窗口DC原创 2010-09-20 20:44:00 · 349 阅读 · 0 评论 -
互斥对象、事件对象、关键代码段的应用和比较
线程同步的方式主要有三种:互斥对象、事件对象和关键代码段。一. 互斥对象 互斥对象(mutex)属于内核对象,它能够确保线程拥有对单个资源的互斥访问权。互斥对象包含一个使用数量,一个线程ID和一个计数器。其中线程ID用于标识系统中的哪个线程当前拥有互斥对象,计数器用于指明该线程拥有互斥对象的次数。 创建互斥对象:调用函数CreateMutex。调用转载 2012-06-10 10:37:20 · 957 阅读 · 0 评论 -
关于创建工作者线程
工作者线程可以说是并行执行的一个函数,其一般用来完成那些不需要用户输入的后台任务。例如数据库备份功能和网络连接状态监视等功能。 比如,一个收费站的进口只有一个收费窗口在工作。该收费窗口正在处理正常的车辆收费工作,此时来了一个车队。该车队有许多车,需要花费很长时间来完成其收费工作。为了不使其他车辆阻塞,需要另外新开一个收费窗口,专门用于解决该车队的收费。如果把正常收费的窗口看做主线转载 2012-06-02 21:27:45 · 614 阅读 · 0 评论 -
关于安装MSDN时出现“/setup.exe不是有效的Win32应用程序。”问题的解决方法
<br /> 我安装的MSDN版本是MSDN_OCT_2001,安装时出现错误:/setup.exe不是有效的Win32应用程序。解决方法如下。<br /> 1.将安装文件目录 /MSDN_OCT_2001/x86/setup下的msdn.stf文件拷贝到/MSDN_OCT_2001下,并把msdn.stf文件改名为acmsetup.stf。<br /> 2.将/MSDN_OCT_2001/x86/setup目录下所有文件拷贝到安装文件目录/MSDN_OCT_2001下。<br />原创 2010-11-01 14:46:00 · 2093 阅读 · 0 评论 -
CDaoDatabase类及其成员函数
CDaoDatabase类简介 CDaoDatabase是MFC中的类。类CDaoDatabase代表了一个数据库连接。使用它可以操纵数据库中的数据。有关支持的数据库格式,请参阅成员函数GetName。在一个给定工作区(由CDaoWorspace对象代表)中,同时可以有多个活动的CDaoDatabase对象。工作区维护了一组开放数据库对象——数据库连接。 注意:MFC DAO数据库类与那些基于ODBC的MFC数据库类是不同的。所有的DAO数据库类的名字都有CDao前缀。类CDaoDatabase翻译 2010-10-08 21:37:00 · 2697 阅读 · 0 评论 -
JET数据库引擎
<br /> 引擎(engine)能够决定程序管理和数据操作的程序或程序段。数据库引擎就是操作数据库的一段程序或程序段。 <br /><br /> Microsoft Jet是Microsoft Access和Visual Basic使用的一种数据库引擎。在DAO3.1版本以前,数据访问对象DAO(data access object)被定义为“Microsoft Jet引擎的编程接口”,也就是说,DAO和Jet在历史上几乎是同义词。DAO访问数据库都要通过Microsoft Jet数据库引转载 2010-10-08 11:36:00 · 260 阅读 · 0 评论 -
CListCtrl类简介和使用技巧
<br />CListCtrl类简介<br />CListCtrl类封装“列表视图控件”功能,显示每个包含图标(列表视图中)和标签的收集。除图标和标签外,每一项还能有显示在图标和标签的右边的列中的信息。此控件(以及CListCtrl类)只适用于运行于Windows 95和Windows NT 3.51及更高版本的程序。<br />下面是CListCtrl类的主要概况。对于详细的、概念性的讨论,请参阅联机文档“Visual C++程序员指南”中的“使用ClistCtrl”和“控件主题”。<br /> <br转载 2010-10-07 14:12:00 · 1034 阅读 · 0 评论 -
Assert是你的朋友[摘录]
<br /><br /> 在C++的消息公告板上经常可以看到出现ASSERT错误的求助信息。虽然这通常是希望消除ASSERT错误的帮助请求,但是几乎所有的求助者都认为ASSERT本身是罪恶的。我完全能理解一个ASSERT错误给程序员新手带来的沮丧。你的程序正在运行,通常如你所愿,突然一声巨响——一个ASSERT错误!<br /> 那么就让我们来看看ASSERT们,为什么他们会出现在那里以及我们能从他们那里得到什么信息。我应该强调一下,这篇文章讨论MFC如何处理ASSERT。<br />打转载 2010-09-21 14:25:00 · 193 阅读 · 0 评论 -
VC++软件扉页的制作
<br /> 许多商品化应用软件(包括VC)在启动时都会显示一个封面(Splash Screen),给人以耳目一新的感觉下面介绍在VC++中怎么向程序中添加封面。 选择菜单Project|Add to Project|Component and Controls,出现Component and Control Gallery对话框,选择Visual C++ Components。在此目录下,选择组件Splash Screen,选择添加Splash Screen组件,此时工程中多了Spla转载 2010-09-21 08:41:00 · 341 阅读 · 0 评论 -
AfxBeginThread和CreateThread的区别
具体说来,CreateThread这个 函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过程中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁的因素,用起来比较繁琐一些,初学的人在用到的时候可能会产生不可预料的错误,建议多使用AfxBeginThread,是编译器对原来的CreateThread函数的封装,用与MFC编程(当然,只要修改了项目属性转载 2012-06-06 13:49:11 · 618 阅读 · 0 评论