090912(星期六):MFC

一、        MFC中的Callback函数

1 如果类的成员函数是个Callback函数,必须将其置成static型以去掉隐藏的this指针。凡是由程序员设计而由Windows系统呼叫的函数,统称为Callback函数。某些Windows系统函数需要一个Callback函数作为它的一个参数,如SetTimerLineDDAEnumObjects。通常API在做完某种活动后或满足一定状态时调用Callback函数。

 

2 EnumObjects发现某个Device ContextGDI object符合指定的Type时,调用Callback函数。Callback函数必须是全局的函数或是类的一个static函数。

 

 

二、        Idle的处理

鉴于CThread::Run()中已经把MessageGetDispatchIdle都包容了,要使程序在Idle时做些事情,简单的做法就是重新实现virture函数OnIdle()

BOOL CMyWinApp::OnIdle(LONG lCount)

{

CMyFrameWnd* pWnd = (CMyFrameWnd*)m_pMainWnd;

pWnd->IdleTimeHandler(lCount);

return TRUE;

}

 

 

三、        Document Template的意义

Document一般是放置程序的Data StructureView是显示Document的内容,Data有体有面,View就是Document的面。在Document中数值的处理用各种设计结构,链表,树,图等等,而数值在表现时就必须使用绘图工具:坐标,画刷颜色,画弧线,字体等,这些都在View中完成。其次View还负责对UI Message的收集处理。

view的表现舞台时Frame,这样的切割是为了让View独立于各种视窗,比如对MDISDIOLE Document Frameview都不需要变化,只要有Frame的变化就可以了,提高了View的独立性。使Document/View结构更稳定得处理数据。

pDocTemplate = new CMultiDocTemplate(  //w6 CMultiDocTemplate规划Doc

                                                 //ViewDocFrame三者的关系

              IDR_SCRIBTYPE,

              RUNTIME_CLASS(CScribbleDoc),

              RUNTIME_CLASS(CChildFrame), // custom MDI child frame

              RUNTIME_CLASS(CScribbleView));

AddDocTemplate(pDocTemplate);

如果需要支持多种文件格式,如textbitmap,就需要多个CMultiDocTemplate对象和多个这样的链接操作。

View就是观看Document的镜头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值