代码改变世界

随笔档案-2011年11月

我的第一个MFC小项目(2)之 初涉位图

2011-11-23 18:24 by 捣乱小子, 1052 阅读, 收藏, 编辑
摘要: BitmapSize=bmp.bmWidthBytes*bmp.bmHeight; 在这一次实验当中,涉及到了比较多的BMP图片的学习,包括基本的组成和操作(放大缩小等)。下面是DIB的文件格式:这就是BMP图片的组成,可以当成是他的数据结构,这里面就存放了显示图片需要的数据。结构体内的数据比较复杂,但是在这里讲几点。offsetbit 为文件头到像素为的位移;imagesize为像素位的大小;size为整个DIB文件的大小。文件头当中,offsetbit 的计算其实很简单,就是文件头和信息头的大小加起来(当然默认是24位的位图),但是因为他们是固定大小的的所以比较简单。imagesize计算 阅读全文

我的第一个MFC小项目(1)之 初来咋到

2011-11-18 23:46 by 捣乱小子, 1953 阅读, 收藏, 编辑
摘要: 虽然是小项目,但是还是有点挑战性的,因为从来没有做过一个比较正式的项目;之前在编程过程当中,都是比较粗糙,想到什么就写什么,在没有一个系统的架构前提之下,虽可谓倚马可待,但bug很多,多到自己想法都没有了,最后不得不丢下个“四不像”的一堆代码。找个借口原谅自己就是自觉阅读之前写下的代码,然后认真总结和分析,谈谈自己的收获。其实也没什么,就一个处理图像的东西,很多的东西已经被sdk封装了,其实你能使用sdk到游刃有余的地步,那也是一种强的表现了,别被别人的闲言冷语冷落到“认为sdk没出息”。重要的不是你学会了sdk什么的,重要的是你在完成一个任务的过程当中的收获,more or less。 功能 阅读全文

MFC按钮CXPButton类,代码阅读起来还是挺不错的

2011-11-16 13:06 by 捣乱小子, 2073 阅读, 收藏, 编辑
摘要: 在操手MFC的时候,经常会抱怨MFC界面不如其他的框架或语言,比如VB,C#等等,面对MS在系统上的不断更新换代,我们也越来越追求软件的视觉效果,譬如我们会更喜欢win7下的玻璃效果,看起来很炫。在接触MFC的时候,实在忍不住对MFC的bulider的仰慕之情,因为他把之前的win32 c编程(注意,里面没有面向对象)和C++有机的结合起来了(这时OO跑进来了),让我们更多的专注于软件的功能设计方面,减少了程序繁杂(真心真诚的佩服win32走过来的那些来程序员们)。每天都有新的收获,当然不仅仅是软件方面的,因为最近讲师在教我们设计自己的U,其实这个看起来还是蛮有难度的,实际上也很有难度,但是讲 阅读全文

MFC中托盘(TRAYICON)实现

2011-11-12 20:42 by 捣乱小子, 3412 阅读, 收藏, 编辑
摘要: 写在最前面的将MFC中托盘功能模块抽象成一个类,把整个程序的功能模块细分了。这个想法在网上已经是俯拾即是了,但仍旧不能一下子明白其中的东西,特别是将其抽象之后。 在使用这个类的时候,需要注意:托盘菜单的ID要和图标资源的ID一样,否则会出错。具体实现代码添加新的类,选择父类是CCmdTarget,下面的代码中有足够的提醒:TrayIcon.h#pragmaonce//TrayIcon.h:头文件////继承自CCmdTarget才能接收消息,详见《深入浅出MFC》classCTrayIcon:publicCCmdTarget{DECLARE_DYNAMIC(CTrayIcon)public:C 阅读全文

基于顺序表哈夫曼树

2011-11-12 10:59 by 捣乱小子, 2407 阅读, 收藏, 编辑
摘要: 基于顺序表创建赫夫曼树说明:赫夫曼树在信息传输上有很多的用途,刚刚学习二叉树,就遇上了赫夫曼,在学习算法的时候学到了不少的的东西。代码实现: 1//哈弗曼节点数据结构2structHuffmanNode//数据结构的设计是本赫夫曼的一大败笔,我居然用了里面的很多东西我居然用了指针。3{4intweight;5chardata;6HuffmanNode*leftChild,*rightChild,*parent;7HuffmanNode():leftChild(NULL),rightChild(NULL),parent(NULL){}8HuffmanNode(intelem,HuffmanNod 阅读全文

sizeof运算符和strlen函数 ZeroMemory函数和memset函数

2011-11-10 22:53 by 捣乱小子, 915 阅读, 收藏, 编辑
摘要: strlen和sizeof在之前一直把两个东西在某种意义上混淆了,对它们的功能不是很熟悉。在逛了下谷歌之后,发现自己误解的东西很多。strlen与sizeof的区别1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。 该类型保证能容纳实现所建立的最大对象的字节大小。2.sizeof是算符,strlen是函数。3.sizeof可以用类型做参数,strlen只能用char*做参数,且必须是以''\0''结尾的。4.数组做sizeof的参数不退化,传递给strlen就退化为指针了。5.大部分编译程序在编译的时候就把 阅读全文