技术文档
编程杂记
友情链接
VC++获取程序的版本号
[原创] [shenjk] [2008-11-11 16:48:03]首先要加入:#pragma comment(lib,"version.lib") 获取程序的版本号Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com///获取程序版本号 CString CMainFrame::GetAppVersion(LPCTSTR ExeName) ...{ VS_FIXEDFILEINFO *VInfo; unsigned int i; char* buf; int ma, mj, r, b; CString s
Windows消息值列表
[转载] [佚名] [2008-11-6 0:41:48]1. 4. 5. #define WM_NULL 0x0000 6. #define WM_CREATE 0x0001 7. #define WM_DESTROY 0x0002 8. #define WM_MOVE 0x0003 9. #define WM_SIZE 0x0005 10
VC常用数据类型转换
[转载] [佚名] [2008-11-6 0:39:51]刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。我们先定义一些常见类型变量借以说明:1. int i = 100; 2. long l = 2001; 3. float f=300.2; 4. double d=12345.119; 5. char username[]="程佩君"; 6. char temp[200]; 7. char *buf; 8. CString str; 9. _variant_t v1
SQLite的原子提交原理
[原创] [佚名] [2008-11-5 23:33:54]3.5 生成一个回滚日志文件在修改数据库文件之前,SQLite会生成一个单独的回滚日志文件,并在其中写进将会被修改的页的原始数据。回滚日志文件意味它将包含了所有可以将数据库文件恢复到原始状态的数据。回滚日志文件有一个小的头部(图中绿色标记部分)记录了数据库文件的原始大小。因此,如果一旦即使数据库文件变大,我们还是会知道它原始大小。数据库文件中被修改的页码及他们的内容都被写进了回滚日志文件中。当一个新文件刚被创建,大部分的桌面操作系统(windows,linux,macOSX)实际并不会马上写入数据到硬盘。此文件还只是存在于操作系统磁盘缓存中。这个文件还不会立即写到存储设备中,一般都会有一些延迟
PostMessage和SendMessage的区别
[转载] [佚名] [2008-11-3 13:42:18]1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他程序处理消息后的返回值。这点大家应该都明白。 2, 如果在同一个线程内,PostMessage发送消息时,消息要先放入线程的消息队列,然后通过消息循环Dispatch到目标窗口。SendMessage发送消息时,系统直接调用目标窗口的消息处理程序,并将结果返回。Send
在VC++中实现无标题栏对话框的拖动
[转载] [佚名] [2008-11-3 9:51:21]目前,很多基于对话框的应用程序中对话框都是不带框架的,也就是说对话框没有标题栏。众所周知,窗口的移动都是通过鼠标拖动窗口的标题栏来实现的,那么现在应用程序中的对话框没有了标题栏,用户如何移动对话框呢?本实例针对这个问题提出解决的办法。程序编译运行后的界面效果如图一所示:图一、无标题栏的对话框界面一、实现方法解决无标题栏窗口的拖动问题有两种方案,一种方案是使用常规思路来处理鼠标拖拽事件,当窗口获得WM_LBUTTONDOWN(OnLButtonDown)时,通过设置标志并调用CWnd::SetCapture()函数来让当前窗口捕捉鼠标消息,应用程序进入移动模式,此时只要有WM_MOUSEMOVE
BitBlt()双缓冲解决图象闪烁
[转载] [佚名] [2008-11-2 9:45:37]BitBlt()双缓冲解决图象闪烁显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序。我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈我的一些观点。1、显示的图形为什么会闪烁?我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背
vs2008中vc++中strcpy
[原创] [佚名] [2008-10-31 19:10:56]在vc++6.0时,做系统托盘,用到了strcpy(nd.szTip, "中国"); 程序正常,编译通过;最近用vs2008新建了一个项目,直接将代码copy过来,居然报错:error C2664: 'strcpy' : cannot convert parameter 1 from 'WCHAR [128]' to 'char *' 百思不得其解,后来搜索发现:vs2008默认是unicode编码的,unicode编码的字符串每个字符两个字节的,不能简单的"info",要用TEXT()宏转换下。 到项目属性-〉配置属性-》c/c++-》命令行可以看到有