当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 追根究底,剖析MFC六大关键技术题外话:我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。
 

 

    摘要: cprogressctrl类提供了少量的成员函数用来设置进度条: void setrange( int nlower, int nupper );该函数用来设置进度条的范围.参数nlow和nupper分别指定了最小和最大值,缺省时进度条的范围是0-100. int setpos( int npos );用来设置进度条的当前进度.函数返回的是进度条的前一个进度. int stepit......
    摘要: 1.内核对象: 1).符号对象 2).事件对象 3).文件对象 4).文件影象对象 5).i/o完成对象 6).作业对象 7).信箱对象 8).互斥对象 9).管道对象 10).进程对象 11).信标对象 12).线程对象 13).等待计时器对象 2.内核对象只能由内核所拥有,而不是由进程拥有.3.内核对象的数据结构有计数器,进程调用时,计数器增1,调用结束,计数器减1,内核对象计数器为零时,......


追根究底,剖析MFC六大关键技术(第一部分)

追根究底,剖析mfc六大关键技术

我并不认为mfc减轻了程序员们的负担,mfc出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在mfc里徘徊了很久很久(因为那时没有书本详细介绍mfc的原理),毫无收获.可能朋友们会说,怎么一定要了解mfc的具体呢,“黑箱”作业不行吗?这不是微软的初衷吗? 【程序编程相关:使用DUMPBIN命令

题外话: 【推荐阅读:在Windows中从DC读取文本行高的问

我们怎么能忍受“黑箱”作业?我们选择c++,就是因为它够自由,够艺术,我们可以在此放飞幻想.所以,我们要攻克mfc. 【扩展信息:数据库连接池的设计考虑

不行!!!如果这样,我宁愿永远不选择mfc!在学电脑之前,本人学习的东西大都与艺术不无关系,小学时参加过全国书画比赛获银奖.儿时的爱好就是在一张纸上随心所欲地画画!mfc“黑箱”就象一幅硕大的抽象画(抽象到你不能理解),它用铅笔勾画好线条,然后请你填颜色.

伟大孙老师在剖析mfc的时候虽然尽心尽力,但可能由于篇幅所限,说得并不大清楚(我相信许多学员都有这方面的感受).在此,我突发奇想,想与大家一同分享一下著名的mfc六大关键技术.

从什么地方开始讲起好呢?我觉得回到最初摸索mfc的时候,从基本谈起最好.

因为我知道,一个走过来程序员,总是忘记了当初自己是怎么走过来的,忘记了一个学员最想知道的是什么.一个小小的问题(一两句话就可以解释的),足学以令手无寸铁的学员头大半个月,所以,我努力回忆当初是怎么让自己豁然开朗的.

转入正题:

mfc的六大关键技术包括:

mfc程序的初始化过程.

运行时类型识别(rtti).

动态创建.

永久保存.

消息映射.

消息传递.

mfc程序的初始化过程

1.设计一个简单完整mfc程序,产生一个窗口.当然这不能让appwizard自动为我们生成.我们可以在win32 application工程下面那样写:

#include <afxwin.h>

class myapp : public cwinapp

{

public:

 bool initinstance()  //②程序入点

 {

  cframewnd *frame=new cframewnd();//构造框架

  m_pmainwnd=frame; //将m_pmainwnd设定为frame;

  frame->create(null,"最简单的窗口");//建立框架

  frame->showwindow(sw_show);  //显示框架

  return true;         //返回

 }

};

myapp theapp;  //①建立应用程序.

设定链接mfc库,运行,即可看见一个窗口.

从上面,大家可以看到建立一个mfc窗口很容易,只用两步:一是从cwinapp派生一个应用程序类(这里是myapp),,然后建立应用程序对象(theapp),就可以产生一个自己需要的窗口(即需要什么样就在initinstance()里创建就行了).

整个程序,就改写一个initinstance()函数,创建那么一个对象(theapp),就是一个完整的窗口程序.
...   下一页
 ·微软c/c++ 编译器选项    »显示摘要«
    摘要: 微软c/c++ 编译器选项 -优化- /o1 最小化空间 /op[-] 改善浮点数一致性 /o2 最大化速度 /os 优选代码空间 /oa 假设没有别名 /ot 优选代码速度 /ob<n> 内联展开(默认 n=0) /ow 假设交叉函数别名 /od 禁用优化(默认值) /ox 最大化选项。(/ogityb2 /gs) /og 启用全局优化 /oy[-] 启用框架指针省略 /oi 启用......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE