摘要: 阅读全文
posted @ 2012-12-11 14:06 让代码飞一会儿 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1. 织网:分解软件技术的大块知识为多个小的知识点,各个击破,将新知识与老知识联系起来,构造一张完整的可动态扩充的知识之网2. 训练:将开发技能给拆分为多个小的步骤或子技能,针对每个步骤或子技能反复地严格地训练,然后再这些步骤或子技能组合起来,以达到职业的水准。3. 探究性的学习与实践:要将被动的学习转换为主动的探索,要通过开发实践把一切给“激活”。 阅读全文
posted @ 2012-11-23 23:08 让代码飞一会儿 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 关于工厂模式,抽象工厂的问题,工厂实例的创建问题我一直在纠结,纠结什么呢? 工厂创建了对象实例,那么谁创建工厂呢? 今天偶然间想通了,居然是源于一个汉堡。 首先,问题源自学习CleanCode时第11章系统, 在关于将系统的构造与使用分离时提出的抽象工厂的解决方法。 main模块创建实例,而使用者模块通过抽象工厂的接口决定何时创建实例,即main模块知道如何创建实例,而抽象工厂告知main何时创建,做到构造与使用分离。 然后,我的纠结就开始了, 使用者模块要调用抽象工厂的方法, 那么抽象工厂的实例怎么构造?是由main构造还是使用者模块构造? 引用书中例子,某个订单处理系统,应用程序必须创.. 阅读全文
posted @ 2012-11-16 16:34 让代码飞一会儿 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1.红黑树性质证明:从根到任意叶子的路径中,没有一条路径会比任何其他路径长到两倍红黑树是一个自平衡查找二叉树,每个节点都由颜色标识(红或黑), 具有如下性质:每个节点火或是红或是黑每个叶子节点是黑的如果一个节点是红的,则它如果有子节点则全是黑的从某一个节点到达其子孙节点的每一条简单路径上包含相同个数的黑节点根节点是黑色证明: 根到任一个叶子的最短可能的路径上全是黑节点, 而最长路径根据性质3最坏的情况就是红黑节点交替,而又根据性质4 最长和最短路径上的黑节点数目相同,则最长路径的长度应小于或等于最短路径的2倍引理:定义:从某个节点x出发(不包括该节点)到达一个叶节点的任意一条路径上,黑色节点的 阅读全文
posted @ 2012-11-01 16:19 让代码飞一会儿 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 动态链接库1.目标库与输入库 .lib扩展文件名 用于程序开发期间目标库在静态链接时将库中的代码加到程序中. 输入库不含代码,而是为链接程序提供信息,以便在引用程序中建立动态链接时提供重定位表2.动态链接库 .dll扩展文件名 用于程序运行期间.搜索顺序:使用者当前目录, 当前目录,Windows系统目录,Windows目录,环境变量PATH可以访问到的目录多个进程能够共享一个动态链接库中相同的代码,但是DLL为每个进程保存的数据都不同3.不使用输入库的动态链接首先,typedef return_value (*PFNNAME)(参数1,...,参数n),然后 HANDLE handle=Lo 阅读全文
posted @ 2012-06-21 15:05 让代码飞一会儿 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 多线程建议的体系结构:主线程创建程序所需的所有窗口,并在其中中包括所有的窗口过程,以便处理这些窗口的所有消息;其他的所有县城只进行一些后台处理,除了和主线程通讯,他们不和用户进行交流.方法:主线程处理用户输入(和其他消息),并创建进程中的其他县城,这些附加的线程完成与用户无关的任务(UI线程 WORK线程) 线程局部存储(TLS)CreateThread(&security_attributes, //安全令牌 一般为NULL dwStackSize, //默认为0, windows根据需要动态延长堆栈大小 ThreadProc, //指向线程函数指针 DWORD WIN... 阅读全文
posted @ 2012-06-21 14:15 让代码飞一会儿 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 文本和字体 windows支持两大类字体, GDI字体:存储再硬盘的文件中 设备字体:输出设备所固有的1.TextOut(hdc,xStart,yStart,pString,iCount), SetTextAlign() TA_LEFT,TA_RIGHT,TA_CENTER,TA_TOP, TA_BOTTOM, TA_BASELINETabbedTextOut(), ExtTextOut()DrawText(hdc,pString,iCount,&rect,iFormat) //pString如果是以null为结尾的字符串,则iCount可设为-1,windows会自动计算长度2.Se 阅读全文
posted @ 2012-06-21 14:15 让代码飞一会儿 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 位图和BitBlt1.位块传送BitBlt(bit-block transfer读作"bit blit"),函数实际上对像素执行了一次位运算操作BitBlt(hdcDest,xDst,yDst,cx,cy,hdcSrc,xSrc,ySrc,dwROP) //源设备描述表中将一个矩形区的像素传送到目标的另一个设备描述表中相同大小的矩形区.StretchBlt(hdcDst,xDst,yDst,cxDst,cyDst,hdcSrc,xSrc,yrc,cxSrc,cySrc,dwROP),SetStretchBltMode(hdc,iMode) //拉伸或压缩使用PatBlt(h 阅读全文
posted @ 2012-06-19 10:14 让代码飞一会儿 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 子窗口使用GetParent()可以获得父窗口的窗口句柄.然后SendMessage与父窗口通信,自定义窗口消息>=WM_USERWindows系统预定义了一系列控件(子窗口),在CreateWindow时指定WS_CHILD的window style,及设置父窗口句柄.指定子窗口ID时应强制转换为HMENU类型1.按钮控件 (10个按钮风格) buttonWM_COMMAND消息由父窗口捕获,wParam低字为子窗口ID,高字为通知码,lParam子窗口句柄具有BS_GROUPBOX的按钮,既不处理鼠标输入也不处理键盘输入也不向父窗口发送WM_COMMAND消息其中BS_OWNERDR 阅读全文
posted @ 2012-06-13 10:18 让代码飞一会儿 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 计时器1.SetTimer 时间间隔范围1~4294967295毫秒(约50天) 使用完之后应KillTimer 清除消息队列中未被处理的WM_TIMER消息 2.在SetTimer调用中指定的时间间隔总是结尾为时钟滴答的整数倍. 其参数除以54.925毫秒后取整数商.所以例如: SetTimer(1000); -> SetTimer(989); 对于每个小于55毫秒的间隔,每个系统时钟滴答都会产生一个WM_TIMER消息 注意:WM_TIMER并不是异步消息 它类似于WM_PAINT消息使用方式: 1.处理WM_TIMER消息 2.在SetTimer时指定第4个参数,设置回调函数Get 阅读全文
posted @ 2012-06-07 17:46 让代码飞一会儿 阅读(145) 评论(0) 推荐(0) 编辑