VC编程杂录
文章平均质量分 79
牧秦丶
C -->游戏--> 汇编--> Direct 3D记录生活、工作、学习、心情的点滴
展开
-
由C++绝对值函数想到的
这些天恰好要用到一个绝对值的函数。好吧,你会说这个直接用std::abs不就行了吗?对的,一开始我也是这样用的。但是如果去求最小的那个int的值的绝对值,就会导致输出不正确。如:int min_int = -2147483648;cout 得到的结果仍然是-2147483648!恰好我的程序有可能出现这样的情况。所以需要自己去完成一个。1、第一个版本:un原创 2012-05-09 14:16:23 · 2215 阅读 · 0 评论 -
事件对象Event的使用
最近使用到Event,做一下总结。1、对象的创建:创建了一个匿名的初始状态为“无信号”状态的Event。HANDLE _hEvent = ::CreateEvent(NULL, FALSE, FALSE, NULL);2、信号状态切换:::SetEvent(_hEvent); // 设置为有信号状态.::ResetEvent(_hEv原创 2012-06-18 16:42:30 · 1496 阅读 · 0 评论 -
Windows下遍历文件目录
最近用到遍历文件目录,总结一下:#include WIN32_FIND_DATA fndData;HANDLE hFnd = INVALID_HANDLE_VALUE;hFnd = ::FindFirstFile(_T("D:\\Program Files\\*.*"), &fndData);if (hFnd == INVALID_HANDLE_VALUE){ ret原创 2012-07-03 16:55:13 · 7892 阅读 · 0 评论 -
获取进程启动时间
我们有时候通过测试一个程序的启动时间来评估程序的性能,那么该怎么办呢?现在提出两种办法,各有优劣,请酌情采纳。1、通过一个辅助程序调用CreateProcess启动被测程序,在 CreateProcess命令行参数中传递当前TickCount,在被测程序的main 函数开头获取当前TickCount,并从命令行参数中解出启动进程的TickCount,执行减法即可;2、通原创 2012-07-16 17:22:05 · 4786 阅读 · 0 评论 -
WM_COMMAND 和 WM_NOTIFY 的区别
当我们按下一个菜单选项,或者一个控件需要通知父窗口一个事件发生(如鼠标单击、双击等),或者快捷键被按下时,Windows将会发送一个 WM_COMMAND 消息给父窗口。那么 WM_COMMAND 消息参数是什么呢?WM_COMMAND 消息来源WPARAM 高位WPARAM 低位LPARAM菜单0菜单 ID0快捷键1原创 2012-10-09 13:33:12 · 5869 阅读 · 0 评论 -
C++工具箱(二)——定时器
有时候我们需要用到定时器这样一个东西,但是我们如果去一个窗口里面 SetTimer,但我们又需要在一个非 UI 类(线程)里要用计时器,那么解耦就没有办法实现了。有没有更好的办法呢?答案是肯定的,我看可以写一个单件定时器类,用来管理定时控制,并且全局访问。你可能需要的知识有:单件模板类、Boost 等。我们期望的使用方式是:/** * \file timer.h * \au原创 2012-09-13 19:24:35 · 2679 阅读 · 1 评论 -
C++工具箱(三)——动画类之基类
OK,我们已经讨论了单件和定时器了,该来点真格的了。这次我们来看看如何通过前面所述的定时器实现动画。我目前想到的动画有大小更改、Alpha 透明度更改、窗口位置更改等几种,后续会逐步加上。我们先来思考动画的实质。动画其实就是通过定时器,一步步逼近一个期望结果的过程。我们期望的动画类是这样的:1、接口简单、使用方便;2、可扩展。比如我们后续加上新的动画类时不必太费力;3、添加原创 2012-09-13 20:13:09 · 1915 阅读 · 0 评论 -
C++工具箱(四)——动画类之透明度渐变 & 大小渐变
例程代码下载上一章介绍了如何基于计时器设计一个通用的动画基类,这次我们通过从 CFrameAnimation派生,得到两个动画类:透明度渐变动画类CFrameAnimation和窗口大小渐变类CFrameSizeAnimation类。首先假设我们有一个通用窗口CWnd:namespace Util{class CWnd{public: BOOL Initializ原创 2012-09-15 17:35:08 · 1777 阅读 · 0 评论 -
CString的部分实现剖析
该篇简要解析了ATL/MFC中CString的实现,以及CString中CopyOnWrite机制。并对GetBuffer和ReleaseBuffer的实现及正确使用做了深入探讨。原创 2013-09-03 19:45:13 · 2868 阅读 · 2 评论