自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

原创 一种保持VC对话框布局的简便方法

   在窗口可缩放的VC应用程序中,在缩放时保持窗口的布局很重要。网上有很多复杂的布局控制代码可供参考。有些代码很强大,但如果你的窗口只是个简单的对话框,也许可以试试本文的方法。这个方法够简单。 别去管那些锚点、对齐之类的词汇了,强大的功能在某种程度上也意味着更多的代码。简单地记住当前的窗口布局,然后按比例缩放这些控件。这样的方法在很多应用中,效果也非常不错。 本着更简单的精神,我

2010-02-05 11:08:00 4371 11

原创 如何在全屏隐藏鼠标

鼠标是个好东西,指指点点的很方便,但有时候我们会有些特别的目的,需要想把它藏起来,就像它不存在一样。如何实现呢?网上提供最多的解决方法是使用ShowCursor函数。The ShowCursorfunction displays or hides the cursor. Syntaxint ShowCursor(          BOOL bShow);这

2009-05-07 11:59:00 10845 7

原创 子线程设置的钩子(HOOK)为什么钩不到消息?

其实无论在子线程还是主线程中,设置的钩子都是一样的。但是,如果只是像在主线程中那样调用完SetWindowsHookEx函数就以为没事了,那你有可能什么也钩不到。如果你设置的是鼠标钩子,你还会看到鼠标反应迟顿。这是为什么呢?前些日子我就遇到过这事,在网上搜了半天也没找到解决方案。无奈,自己仔细研究,找到原因了,非常简单,与大家分享。答案就是,调用完SetWindowsHookEx后,子

2009-04-30 12:19:00 4512 5

原创 谁在调用那些回调函数

在Windows应用程序开发中,有很多地方使用了回调函数。一般的开发并不关心谁来调用这些函数,但如果开发复杂的多线程协作处理程序,或者研究操作系统中程序的“操作权限”问题,您就需要知道您写的这段代码是由谁来调用的,在哪个线程或进程中执行的。最常见的就是Windows消息响应函数。一般的书本并不讨论这些函数是如何被调用的,只是说消息产生时,这些函数将会执行。初学者也许会以为,如果两个消息一起

2009-04-27 16:36:00 5676 5

原创 TCP连接connect等待时长控制的另一种方法

   在TCP网络应用开发中,作为客户端的程序经常需要主动连接服务器,这时你就需要建立一个Socket,然后调用connect函数连接到服务器地址。正常情况下,这并没有什么问题,但当服务器主机不存在的时候,connect函数可能会等待一分多钟才能返回。如果在主线程中调用connect函数,就会产生长时间无法响应的状况。   在现代的互联网硬件环境中,一分钟的等待有点太长了,我们需要缩短等待

2009-03-09 10:49:00 6608

原创 软件的开发效率、优秀结构和运行性能的关系和取舍

软件的开发效率、优秀结构和运行性能的关系和取舍软件设计确有好坏之分,但好坏的标准却很难制定,大多时候各人各看法,难以统一。项目经理们追求开发效率,他们大多时候只关心什么时候能把东西做完;技术员中有很多人更关注程序结构、复用性这样的东西,希望程序结构好看,而另一些人则是程序性能的狂热追求者,他们舍不得多花费哪怕一丁点的CPU。提高这些指标当然都是好事,但正如俗话说的,好事难两全,很多时候这些

2009-02-25 14:42:00 2687 3

原创 《C#图解教程》译书有感——有意义,不容易

2008<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">年前半年的时候,与别人合作翻译了一本C#<span style="font-family:宋体;mso-ascii-font-family:"Times New Roma

2009-01-07 11:05:00 3123 3

原创 滥用的单例模式有多少害处

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">大多数做软件设计的人都学习过设计模式,而看过《设计模式》那本书的人一定对单例模式有印象。在众多的设计模式中,单例模式显得很特别,清晰又简单,容易被人记住,所以使用的也相当多。然而

2008-11-19 11:45:00 4137 7

原创 C++程序员学习JavaScript的三道槛

 <span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">说实在的,JavaScript<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman"

2008-10-27 12:52:00 4753 14

原创 当Web成为应用程序,JavaScript会成为主流么

<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">时光无情,逝者如斯。编程语言从原始的汇编到现在的Java<span style="font-family:宋体;mso-ascii-font-family:"Times New

2008-09-26 10:53:00 5106 19

原创 Google浏览器抢先试用感受

 <span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"">今年的浏览器产品来势不小,IE<span style="font-family:宋体;mso-ascii-font-family:"Times New Roman";mso

2008-09-03 16:31:00 2826 13

原创 从实验室到山寨,技术发展的普遍道路

  Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font

2008-07-22 17:39:00 2942 19

原创 对比自行车,看手机的山寨时代

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Font

2008-07-14 13:30:00 8463 27

原创 Bug分析之画蛇添足的htmlEncode

Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:

2008-07-07 13:27:00 2399 2

原创 没有互联网,我不会写程序了

Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:

2008-07-02 11:35:00 10196 55

原创 JSON 还是 XML?

数据要传输,就需要把数据表示出来。用什么格式来表示数据,这是个问题。 JSON和XML都是非常成熟的结构化数据表示方法。大多有经验开发者都不愿意自己重新定义数据表示的格式,因为那样的确费力不讨好,毕竟很多人都看到了自己和天才之间的差距。但在选择数据的表示方法时,却是各执一词,为选择JSON还是XML争论不休。 先简要介绍一下这两种数据表达方法: JSON:JSON(Java

2008-05-13 13:49:00 14014 7

原创 C++中单例模式对象的释放控制

 单例模式也称为单件模式、单子模式。使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出等。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用

2008-04-09 17:23:00 6342 19

原创 Boost在C++自己的墙上打洞

   Boost是极有才华的程序员们编写的C++库。Boost中的编程技巧、对C++及泛型的使用方式、以及其最终实现的效果都令人吃惊,甚至叹为观止。C++是强类型语言,有严格的类型检查。而Boost使用C++实现了弱类型的效果,着实在C++的墙上打了一个洞。 C++的强类型特征曾被视为一种优点。至今它仍然也是优点。严格的类型检查可以帮助程序员检测出代码中的错误,可以提醒程序员注意到

2008-03-24 14:38:00 6650 21

原创 C++中使用基类指针操作子类数组的分析

看到CSDN上有人对C++中使用基类指针操作子类数据的问题进行了讨论。引经据点、代码实证,赞成者有之,反对者有之。其实只要仔细研究一下C++基础知识,就没有必要进行那么多争论了。本文试着分析一下这种操作的实际情况,仅供参考。  基础知识: Ø         数组:在C/C++中,数组是一块连续的内存,内存中数组元素紧密地排列在一起。内存的大小 = 元素个数 x 单个元素的大小。

2008-03-18 16:25:00 6095 16

原创 在C++中实现foreach循环

  使用过C#、PHP这些更高级语言的朋友一定知道foreach循环。foreach语句给编程带来了很大的方便,减少了代码,并增加了程序的可读性。C++虽然不支持foreach关键字, 但C++是一门强大的语言,只要稍微用一点小技巧,也可以在C++中使用foreach循环。在C#中,foreach语句的效果让人吃惊。foreach语句省去了复杂而又类似的循环控制语句,使代码非常简洁明了。下

2008-03-10 17:35:00 11168 9

原创 “IPv9十进制网络”的忽悠策略

 最近听到两个新词,一是“IPv9”,一是“十进制网络”。据说是一项技术,有很多很多好处云云。前些天还有个专利拥有人老谢,现身说法,声明这东西不是第二个汉蕊。本想看看到底是个什么技术,结果一头雾水,没看到网络技术,只看到一片忽悠。想这忽悠也是门技术,不如就分析一下这“IPv9十进制网络”的忽悠策略。 策略一:做好标题党。 做标题党很有学问。标题党有三个基本要求:一是吸引人;二是

2008-02-02 16:32:00 7025 43

原创 Bug分析之0减1到底等于几

        0减1等于几?小学生都知道,而计算机却常干傻事。本文介绍一种和数据类型相关的编程Bug,分析Bug现象和产生原理,做为小小的Debug经验与大家分享。  前几天用VC写了个程序,程序中有个遍历列表的功能。使用vector作为列表的数据结构,用一个整型数CurIndex记录当前记录。当用户点击向前按钮时,CurIndex减1,如果CurIndex已经是第一个元素了,就让Cur

2008-01-24 16:11:00 6225 15

原创 透过宏定义了解MFC的消息响应机制

  消息系统是MFC的重要组成部分。MFC的消息响应机制并不复杂,而且MFC的开发环境 Visual Studio来供了非常好的自动化工具,自动生成代码。MFC也定义了丰富的宏来简化消息响应的代码。这使得很多初学者都能快速开发出基于消息响应机制的应用程序。然后也正是这些带来方便的宏,使很多人摸不着头脑。当不小心的代码操作使自动化工具不好用的时候,看着那一组更像是一堆的宏,很多人只好一头雾水。

2008-01-15 17:57:00 3880 7

原创 MFC框架中WM_COMMAND消息响应顺序

 在MFC开发的程序中,菜单、工具条按钮等都会产生WM_COMMAND消息。而在MFC的Document/View框架中,有很多类可以响应WM_COMMAND消息,分别是框架类:CFrameWnd、CMDIChildWnd、CMDIFrameWnd;应用程序类CWinApp;文档类CDocument;以及视图类CView。当应用程序主菜单发送了一个WM_COMMAND消息时,WM_COMM

2008-01-11 11:35:00 4422

原创 DLL导出类避免地狱问题的完美解决方案

 DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到

2008-01-08 15:15:00 2586 4

原创 访问MySQL数据库时中文乱码问题分析及解决

 使用MySQL保存中文数据时,经常会遇到乱码问题。产生乱码的原因很多,在笔者以为对MySQL的字符集处理已经很有了解的时候,使用C#编程时,竟再一次遇到了乱码。联想到前几天一位同事在使用JDBC访问MySQL时遇到的中文乱码问题,决定对MySQL中文乱码问题的产生场景进行一次总结。一、错误读出现象:一个已经存在数据的MySQL数据库,该数据库的数据用系统中其它软件、网页查看均正常

2008-01-07 15:23:00 4985 1

原创 使用内存DC防止窗口闪烁

  在使用VC开发图形相关的应用程序时,常常需要使用MFC的CDC类直接把图形画在窗口上。这通常是通过响应Windows的WM_PAINT消息实现的。如果要画的图形比较复杂,或者比较大,那么画图过程可能会造成窗口的闪烁。当窗口调整大小时,这种闪烁由为明显。 解决窗口闪烁问题的有效办法就是使用内存DC,也称为缓冲DC。在内存中准备一个和窗口DC相同属性的DC,在这个内存DC上执行画图操作

2008-01-04 14:57:00 3130 2

原创 MFC框架中视图窗口全屏显示

  在MFC的视图文档结构中,视图永远在框架窗口的范围之内。本文介绍一种把视图全屏显示的方法,能使视图的大小占据整个显示器窗口。方法要点1:扩大主框架窗口。因为视图的大小是随主框架窗口的大小自动调整的,所以首先要把主框比显示器窗口还大,以给视图留下足够占满显示器的空间。方法要点2:把主框架窗口移到合适的位置,使视图的左上角正好在屏幕的左上角。注意:对于不能自动按框架大小自动调整的视

2007-12-27 11:49:00 2705

原创 简单实用的线程管理类

 在开发多线程程序时,常常碰到线程管理的问题。当有多种线程的时候,为了控制每个线程,编程工作也变得复杂。事实上,我们对线程的控制大多是相似的,所以把这些控制抽象出来,形成一个可复用的程序模块,将能大大提高开发效率和代码质量。首先我们对线程的使用目的进行分析和归纳。一般来说,有如下几种:1)              独立线程。执行一项在后台完成的工作,工作频率很低,线程的生命期里只完成

2007-12-24 17:52:00 2671 3

原创 使用VC实现可拖动窗口

 有很多漂亮的小程序,它们的窗口都是可以拖动的。鼠标在窗口的任意位置按下,即可把窗口拖动到其它位置。通常标准的Windows窗口只有在标题栏上按下鼠标才可以拖动,那么如何实现窗口的任意位置都可以拖动呢?稍有经验的程序员会立刻想到:响应鼠标按下消息,然后在鼠标移动时移动窗口。对于程序基础好的程序员,可以按这个思维很快实现,对于初学者,可能就要多调试一会儿了。有没有其它方法呢?仔细了解一下

2007-12-24 11:18:00 6386 2

原创 使用VC如何按一定斜角输出字符串

    使用VC开发时,常常需要在窗口上画一些图表。有时要把一些文字竖着写,有时需要倾斜一定的角度。对于老手们,这当然算不上什么问题,而新手却常常找不到方法。    新手们往往会在CDC的成员函数里四处寻觅,企图找到一个带斜角参数的TextOut之类的函数,当然是找不到的。输出角度虽然看起来应该是个“输出”行为,事实上却不在画图时决定,而是由字体决定的。    VC的字体由一个结构体定义:

2007-12-20 15:56:00 3303 2

原创 认证带不来能力

        现在很多企业都通过了一些认证,像ISO、CMM之类的,期望认证成功后一来能提高自己的资质,二来也能规范一下自己的生产流程,以提高自己的产品质量。当然认证成功后,就会有一堆流程、标准之类的要遵守。在大部分企业的软件开发团队中,这些规则的执行都会受到一定的阻力,即便强力推行下去,也很少有能收到良好效果的,这是为什么?        是这些认证的标准有问题么?仔细看这些标准中的条条框框,

2007-12-18 17:42:00 962

原创 在ToolBar上使用半透明图像

   MFC的CToolBar类中对图标的处理仅提供了三个函数:SetImageList()、 SetHotImageList()和SetDisabledImageList()。对于图像的透明,也仅支持镂空效果,即要么图标显示前景,要么显示背景。而PNG图像中的半透明效果、边缘羽化后的效果均无法表现。CToolBar没有提供图标自画功能,如何实现更漂亮的ToolBar呢?    答案就是:自已画!

2007-12-17 15:57:00 2038

原创 C++析构函数妙用-- 不会忘记的Unlock

在C++中,类的析构函数被解释为用于销毁 对象的代码块,在对象将被从内存中清除之前调用。而事实上,利用析构函数的调用时机,可以做很多普通的过程控制代码很难做到的 事情。比如在多线程程序中的锁。在加锁和开锁的过程中,必须非常小心地配对,稍有不慎就 会少了开锁次数,使资源锁得不到打开。在有复杂控制的程序体中,这种维护是很烦琐的。以Windows程序为例,在类 CWithLock中使用临

2007-12-14 17:55:00 1939 8

FreeKeyboard 八爪鱼多机操作辅助软件

多台电脑使用同一组键盘鼠标操作。 鼠标可以在多台电脑的屏幕间自由移动。 在任意屏幕上点击即可获得键盘输入。 个人使用,免费软件。 绿色版,无需安装。

2009-07-05

回城卷轴网络通讯架构源代码

一种新的网络应用开发架构,可同时用在客户端和服务器端,支持清晰的网络协议分层,可跨平台编译。我将在我的博客中编写相关文档。

2009-02-19

空空如也

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

TA关注的人

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