- 博客(9)
- 资源 (7)
- 收藏
- 关注
原创 策略模式的扩展——策略枚举
策略枚举就是这样一个枚举:它是一个枚举。它是一个浓缩了的策略模式的枚举。public enum Calculator { //加法运算 ADD("+"){ public int exec(int a,int b){ return a + b; } }, //减法运算 SUB("-"){ p
2011-06-28 12:48:00
828
原创 策略模式的扩展——策略枚举
策略枚举就是这样一个枚举:它是一个枚举。它是一个浓缩了的策略模式的枚举。public enum Calculator { //加法运算 ADD("+"){ public int exec(int a,int b){ return a + b; } }, //减法运算 SUB("-"){ p
2011-06-28 12:48:00
517
原创 禁止或要求对象产生于堆中
有时候,需要将对象限制在堆中或者禁止在堆中生成。 1.禁止对象产生于堆中 将new和delete声明为private权限,禁止被调用即可。 2.禁止对象产生非堆对象 将析构函数声明为protected或者private权限。
2011-04-30 13:57:00
534
原创 详细解析i++与++i
i++与++i是特殊的自增运算,类似的还有自减操作运算i--与--i。下面从C与C++两个角度来比较这两种形式的运算方式。 1.C中 简单的地说,++i和i++,作为一个语句单独使用时(如i++;或者++i;),就是i = i + 1,它们之间没有区别。而在作为语句的一部分时,a = ++i相当于i = i + 1; a = i;通过表达式就可以看出,因为++在前,所以是先执行加1操作,再执行赋值操作。而a = i++相当于a = i; i = i + 1;++在后,所以是先执行赋值操作,再执行加1操作
2011-04-30 13:01:00
1812
原创 WinCE实现屏幕截图并保存为BMP文件
本文将在Windows Mobile上实现通过句柄获得HDC并保存为BMP文件,从而实现全屏截图以及窗口截图。效果图如下: 主要接口如下: BOOL SaveHwndToBmpFile(HWND hWnd, LPCTSTR lpszPath);传入句柄以及文件路径,如果句柄为空则截取整个屏幕。 LPCTSTR GetFil
2011-04-30 11:00:00
3172
原创 只有一列的CListCtrl如何保证无横向滚动条
在开发中有时需要一个只有一列的CListCtrl,但是在设置列宽之后再插入多项数据后,有时会因为出现纵向滚动条导致列宽过大而出现横向滚动条,下面我们就来消除横向滚动条。 具体代码如下: 主要原理是如果CListCtrl列数为不为1时返回;数据项为0或者全部数据项项高度不足以出现纵向滚动条时设置列宽为客户区宽度;如果出现纵向滚动条时设置列宽为客户区宽度减去滚动条宽度以及滚动条边框宽度。 使用时机 如果重载CListCtrl的InsertItem方法,加入此代码,那么会因为每次插入数据都
2011-04-29 00:08:00
2403
原创 ComboBox只接受数字,并限制数字范围
在MFC开发过程中使用ComboBox,有时会根据需求要求只能输入数字,并且要求数字在一定的范围内,例如一个用于选择小时的ComboBox,时间范围为00到23,那么该如何实现? 代码如下: 在Dialog.h中: …… CComboBox m_cbHour;// 声明CComboBox类型作为CDialog类的成员变量 …… afx_msg void OnCbnEditchangeCbHour(); afx_msg void OnCbnEditupdateCbHour();
2011-04-28 23:46:00
5491
原创 String类的C++实现
String类的C++实现是一个C++面向对象的经典例子,下面就来看看String类是如何实现的: String.h String.cpp 一个更为完整的String类C++实现: String.h String.cpp 写时拷贝(Copy On Write) 在C++程序中,经常会遇到多个对象具有相同值的情况。这个时候完全没有必要将这些值分开存储,而可以让这些对象共享同一分值。比如下面的字符串对象的例子:
2011-04-28 22:48:00
2844
原创 谈谈C语言的溢出
溢出是C语言中最常见的漏洞。最常见的溢出包括数组溢出、数溢出、缓冲区溢出、指针溢出以及栈溢出,下面笔者就对这些溢出做一个总结归纳。 1 数组溢出 数组溢出是最常见的一种溢出。因为在C语言中,含N个元素的数组下标是从0开始,到N-1结束,而且C语言没有提供数组越界检查的机制。 请看如下代码: int main (int argc, char* argv[]) { int nSum = 0; int nArray[] = {
2011-04-21 19:36:00
13443
1
WinCE实现屏幕截图并保存为BMP文件
2011-04-30
JAVA PPT课件(适合初学者的基础知识)
2008-12-25
电子商务案例分析笔记
2008-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人