« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
| 公告 |
☆★☆★☆★☆★☆★☆ 生活的点点记录,以及一些体会...........
喜欢是淡淡的爱,爱是深深的喜欢.
时间会见证一切.......................
欢迎大家指出错误,共同进步..........
期待中..............................
☆★☆★☆★☆★☆★☆ |
Blog信息 |
blog名称: 日志总数:162 评论数量:312 留言数量:0 访问次数:939667 建立时间:2005年5月17日 |

| |
[读书笔记]写程序是一种态度(一)strcmp 文章收藏
oceanblue 发表于 2009/4/27 15:37:01 |
写程序正如做人,是一种态度。在写一个商业级的程序,从写代码的层次来说是否遵守默认的代码风格(code convention)?是否遵循简单、易读和效率?是否防范了预期的错误?是否检查了内存泄漏?是否考虑会有多线程重入?等等。从设计的层次来说是否引入了软件工程的思想?是否采用了OO的模式分析?是否使用UML来主导了整个流程?是否考虑单元测试和集成测试的QA同步?是否定期生成 |
|
[读书笔记]mfc小结 原创空间
oceanblue 发表于 2009/4/6 22:26:44 |
两个都要设置才能去掉help button:
Sheet:
CPropertySheet bb;
bb.m_psh.dwFlags |= PSH_NOAPPLYNOW|PSH_HASHELP; bb.m_psh.dwFlags &= ~PSH_HASHELP;
Page:
m_psp.dwFlags &= ~PSP_HASHELP; |
|
[读书笔记]解决窗口刷新闪烁 文章收藏
oceanblue 发表于 2009/4/5 19:20:33 |
一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。
先来谈谈闪烁产生的原因
原因一: 如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕 上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。
一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。
这样问题就来了,一般画图都是先画背景色,然后再把内容画上去,如果这两次操作不在同一个 刷新周期内完成,那么给人的视觉感受就是,先看到只有背景色的图像,然后看到画上内容的图像, 这样就会感觉闪烁了。
解决方法:尽量快的输出图像,使输出在一个刷新周期内完成,如果输出内容很多比较慢,那么采用 内存缓冲的方法,先把要输出的内容在内存准备好,然后一次输出到显存。要知道一次API调用一般可以 在一个刷新周期内完成。
对于GDI,用创建内存DC的方法就可以了
原因二: |
|
[读书笔记]GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen 文章收藏
oceanblue 发表于 2009/4/4 11:50:45 |
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。
GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。 用GetClientRect返回的RECT结构上左为零, 右下分别对应客户区的宽度和高度;
ScreenToClient把屏幕坐标系下的RECT坐标转换为客户区坐标系下的RECT坐标. 我们对同一个窗口先GetWindowRect取得一个RECT,再用ScreenToClient转换到客户坐标系。 然后GetClientRect取得一个RECT,再用ClientToScreen转换到屏幕坐标系。 显然,GetWindowRect取得的矩阵不小于GetClientRect取得的矩阵。因为前者包含了非客户区,而后包括了客户区。
对GetWindowRect取得的矩 |
|
[读书笔记]C#:代表(delegate)和事件(event) (转) 文章收藏
oceanblue 发表于 2009/3/22 21:01:06 |
代表(delegate):
它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现。下面来看看它的实现步骤:
声明一个delegate对象。
实现和delegate具有相同参数和返回值的函数实现(可以是静态和非静态的)。
产生一个delegate对象的时候,把你刚刚实现的函数作为参数传给他的构造函数。
请看下面例子:
using System; using System.Collections.Generic; using System.Text;
namespace UsingDelegate { public delegate void MyDelegate(string mydelegate);//声明一个delegate对象
|
|
[读书笔记]enum类型的本质 文章收藏
oceanblue 发表于 2009/1/17 20:30:58 |
enum类型的本质 至从C语言开始enum类型就被作为用户自定义分类有限集合常量的方法被引入到了语言 当中,而且一度成为C++中定义编译期常量的唯一方法(后来在类中引入了静态整型常量)。 根据上面对enum类型的描述,到底enum所定义出来的类型是一个什么样的类型呢?作为 一个用户自定义的类型其所占用的内存空间是多少呢?使用enum类型是否真的能够起到有限 集合常量的边界约束呢?大家可能都知道enum类型和int类型具有隐示(自动)转换的规则, 那么是否真的在任何地方都可以使用enum类型的变量来代替int类型的变量呢?下面会逐一 回答这些问题。 |
|
[读书笔记]qt study 文章收藏
oceanblue 发表于 2008/12/19 15:42:23 |
Meta-Object System
Qt's Meta-Object System provides the signals and slots mechanism for
inter-object communication, run-time type information, and the dynamic
property system.
The Meta-Object System is based on three things:
The QObject class provides a base class for objects that can take advantage of the meta-object system.The
阅读全文(1930) | 回复(0) | 编辑 | 精华 | 删除 |
| | |
[读书笔记]C/C++ 字符串处理函数 文章收藏
oceanblue 发表于 2008/11/1 22:45:54 |
C:
char st[100]; 1. 字符串长度 strlen(st);
2. 字符串比较 strcmp(st1,st2); strncmp(st1,st2,n); 把st1,st2的前n个进行比较。
3. 附加 strcat(st1,st2); strncat(st1,st2,n); n表示连接上st2的前n个给st1,在最后不要加'\0'。
4. 替换 strcpy(st1,st2); strncpy(st1,st2,n); n表示复制st2的前n个给st1,在最后要加'\0'。
5. 查找 strchr(st,ch) ch为要找的字符。
< |
|
[读书笔记]数据结构 文章收藏
oceanblue 发表于 2008/5/14 9:12:27 |
第一章 概 论
1.数据:信息的载体,能被计算机识别、存储和加工处理。
2.数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。
3.数据结构:数据之间的相互关系,即数据的组织形式。 它包括:1)数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机; 2)数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言。 3)数据的运算,定义在逻辑结构上,每种逻辑结构都有一个运算集合。常用的运算:检索/插入/删除/更新/排序。
4.数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。数据的存储结构是逻辑结构用计算机语言的实现。
5.数据类型:一个值的集合及在值上定义的一组操作的总称。分为:原子类型和结构类型。
6.抽象数据类型:抽象数据的组织和与之相关的操作。优点:将数据和操作封装在一起实现了信息隐藏。
7. |
|
|