返回首页 我的新博客
摘要: 以下说明几个消息循环中的常用函数进行对比 1 PostMessage 与 SendMessage 函数对比 SendMessage把消息直接发送到窗口,并调用此窗口的相应消息处理函数,等消息处理函数结束后SendMessage才返回!SendMessage发送的消息不进入系统的消息队列;SendMessage函数有返回值 PostMessage将消息发送到与创建窗口的线程相关联的消息队... 阅读全文
posted @ 2009-03-11 10:10 buffer的blogs 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静 态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束释放 4另外还有一个专门放常量的地方。 - 程序结束释放 在函数体中定义的变量通常是在栈上,... 阅读全文
posted @ 2009-03-11 10:07 buffer的blogs 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 如何屏蔽键盘的某些按键的消息(基于MFC库): 今天写程序的时候,突然用到要屏蔽Enter和ESC的键盘消息,就从网上搜了搜,发现一种比较简单的方法(不用用到钩子函数)。主要是在MFC工程中的PreTranslateMessage函数中实现。详细代码如下: BOOL Cumini_restoreDlg::PreTranslateMessage(MSG* pMsg) { // TODO: ... 阅读全文
posted @ 2009-03-11 09:57 buffer的blogs 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 前言 程序员最痛苦的事莫过于深陷于BUG的泥潭,我也没少在这上面摔跤。这里,我把自己的一些经验教训总结出来,涉及的内容包括死循环、死锁、内存泄漏以及内存访问错误等,如果能对朋友们有所帮助,那就再好不过了。不过,我不打算按照循序渐进的方式来撰写这些文章 ,而是想到哪写到哪,也许到最后才会形成一个完整的系列。 本节将以一个真实例子讲述如何在VC6环境下调试“Stack Overflow”错误。 问题浮... 阅读全文
posted @ 2009-03-11 09:56 buffer的blogs 阅读(3311) 评论(1) 推荐(0) 编辑
摘要: 微软在wincrypt.h中定义了大量的加解密算法的API,方便了软件加解密的实现,可以使我们不必关注密码学的算法,就可以实现高效率的软件加密。下面通过一个类,对API实现简单的封装。详细代码如下: 头文件:MyCryptOpt.h #pragma once #include "windows.h" #include "wincrypt.h" #define MY_ENCODING_T... 阅读全文
posted @ 2009-03-11 09:54 buffer的blogs 阅读(1471) 评论(0) 推荐(0) 编辑
摘要: TrackMouseEvent函数在鼠标离开某一窗口或在某一窗口上停留超过某一特定时间长度时发送消息。 原型:BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack); 参数: lpEventTrack:是一个指向TRACKMOUSEEVENT结构体的指针。 返回: 成功的话返回非零值(true),否则返回零(false)。 该函数可以发送的... 阅读全文
posted @ 2009-03-11 09:49 buffer的blogs 阅读(1677) 评论(0) 推荐(0) 编辑
摘要: 最近我发现我那个程序泄露严重,手动也查不出来。指针乱指。所以刚下了个BoundChecker 6.0 版的 嘿嘿ie 在网上看到了它的用法,感觉还不错。 BoundsChecker用法 http://blog.sina.com.cn/u/53d9f7e9010007fz BoundsChecker 是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。Bounds... 阅读全文
posted @ 2009-03-11 09:45 buffer的blogs 阅读(709) 评论(0) 推荐(0) 编辑
摘要: BoundsChecker采用一种被称为 Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后再执行原来的代码。BoundsChecker在做这些动作的... 阅读全文
posted @ 2009-03-11 09:43 buffer的blogs 阅读(884) 评论(0) 推荐(0) 编辑
摘要: 我学VC从VC知识库中得到不少好处,相来都是一些热心朋友们的帮助,在此表示感谢!本工程可分五步:1、建一个基于对话框的程序TipTest,在CTipTestDlg中增加成员变量:CToolTipCtrl m_tip[2],CWnd *m_pSub[2];2、在CTipTestDlg::OnInitDialog()函数中增加如下代码: pSub[0] = GetDlgItem(I... 阅读全文
posted @ 2009-03-11 09:39 buffer的blogs 阅读(372) 评论(0) 推荐(0) 编辑
摘要: 相信已经有很多人用过QQ2009了,自然也对其中的UI设计很感兴趣,觉得设计很是完美。但是这是怎么设计的呢?下面我介绍一个用来实现这种效果的设计库——DSkinLite(源于CodeProject)。下面通过一个演示程序来介绍使用过程: 程序中,我主要对主窗口和两个通用对话框(打开对话框和浏览对话框)进行了换肤,这里我所有的窗口都使用了同一个皮肤(定义在XML文件中),通常应该为每个对话框都定... 阅读全文
posted @ 2009-03-11 09:34 buffer的blogs 阅读(1934) 评论(1) 推荐(0) 编辑
摘要: Invalidate(false)不擦除背景,直接画 Invalidate(true)擦除背景 InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效 InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。 Invalidate()之后:(MFC的,顺便了)OnPaint()... 阅读全文
posted @ 2009-03-11 08:58 buffer的blogs 阅读(3823) 评论(0) 推荐(1) 编辑
摘要: 防 止 密 码 被 非 法 获 取 郝 峰 ----Windows 虽 然 是 一 个 功 能 强 大 的 操 作 系 统, 但 其 存 在 的 一 些 先 天 性 不 足 给 黑 客 留 下 ... 阅读全文
posted @ 2009-03-11 08:49 buffer的blogs 阅读(223) 评论(0) 推荐(0) 编辑