问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

CView虚函数

发布网友 发布时间:2024-10-01 10:20

我来回答

1个回答

热心网友 时间:2024-10-20 12:42

当文档数据发生变化时,CDocument对象会调用UpdateAllView()来通知所有视图,进而触发视图的OnUpdate()方法。这个方法应根据文档更新内容在视图中做出相应的反应。CView::OnUpdate()通常会让客户区无效并重新绘制,例如:


在CView::OnUpdate()的实现中,当接收到更新通知时,会简单地使客户区无效,并触发重绘过程,如:


void CView::OnUpdate(CView* pSender, LPARAM, CObject*){
ASSERT(pSender != this);
Invalidate(TRUE); // 重置客户区并使其重新绘制
}



OnInitialUpdate()方法在初次创建后或打开文件后被调用,基类CView::OnInitialUpdate()通常会调用OnUpdate()进行初始化。然而,它可能会被多次调用,需要注意。


void CView::OnInitialUpdate(){
OnUpdate(NULL, 0, NULL);
}



CalcWindowRect函数用于根据主框架窗口客户区尺寸变化或控件位置变动来重新计算视图窗口的尺寸。当主窗口客户区或控件布局更新时,CFrameWnd::RecalcLayout()会触发CalcWindowRect的调用。


代码示例:


void CView::CalcWindowRect(LPRECT lpClientRect, UNIT nAdjustType){
// ...根据窗口风格调整滚动条尺寸...
// 或在无需调整滚动条时,调用基类成员函数计算尺寸
CWnd::CalcWindowRect(lpClientRect, nAdjustType);
}



PostNcDestroy是视图关闭时最后调用的函数,它与CFrameWnd::PostNcDestroy有相同功能,即释放视图对象。代码如下:


void CView::PostNcDestroy(){
delete this;
}



OnCmdMsg函数在CFrameWnd::OnCmdMsg中已有讲解,略去详细代码,但其主要作用是处理命令消息,先在视图自身查找,如果未处理,则传递给文档对象。


OnActivateView在视图激活或失去活动状态时被调用,基础实现仅设置视图为焦点。具体如下:


void CView::OnActivateView(BOOL bActivate, CView* pActivateView, CView*){
UNUSED(pActivateView); // 在发布版本中忽略
if (bActivate) { // 视图处于活动状态
// ...设置焦点...
}
}


扩展资料

CView是视图是程序设计中使用率最高的窗口对象,它是用户的主要操作界面。因为它通常以某种形式表示文档数据,所以称之为视图。一个视图对象只关联一个文档对象;一个文档对象可以关联多个视图,每个视图对象以不同形式表示文档数据。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
猫咪丢了之后心里很难过,然后男友担心我就重新去领养了一只小花猫,可是... 有关名侦探柯南黑暗组织!! qq上删除的好友怎么找回来,六个月以上的。只要能找到QQ号就行,我可以... 六个月内删掉的qq好友能找回吗? 急!!因欠费而停机的手机能收到短信吗 手机关机之后停机信息是否可以收到 手机欠费后冲了钱但还是欠费会收到短信吗 手机停机了,包月的流量没用完,能收到微信吗? 德州到潍坊用不用隔离? 南都周刊2011年有一篇社论≪躺在时间的河流上怀念他们≫写得很棒... cpa考过了需要年检吗 注册会计师有继续教育吗 注会什么时候继续教育 秋季花卉主要的病虫害防治 觅帝堂真的可以看旋风少女吗 旋风少女会不会在几集后就可以在某个视频播放器的会员可以看全部 充了芒果tv的会员就可以看《旋风少女》全集了吗? 开芒果TV会员能够看旋风少女全集吗? 哪里能看到旋风少女电视剧的全集、 爱奇艺会员可以看旋风少女第五集莫 哪里可以看旋风少女二不用会员的免费直播 怎样才能看旋风少女完整版,不试看。试看只有15分钟,我想看的是,它有... 想问问英语四级370分 今年十二月考研 是不是差太多需要恶补了_百度知 ... 我是学习工科的 但是我想充实一下自己经济学方面的知识 请问我应该读... 有什么好玩的集体游戏吗?班级一起出去吃班饭,打算去日租屋,最好大家都... ...一个多月没发圈,现在有时间从新开始了怎么发圈? 亲早上好,我做微商三年了,一直发朋友圈,因为这一周身体不好,不能发圈... 之前做微商因为有事好久没做现在又开始做起来在朋友圈怎么说明还在做微... 云裳羽衣故事模式攻略 第二章普通完美搭配 云裳羽衣8-8怎么过 8-8完美通关攻略 高中生物:脂肪鉴定为什么要在盖盖玻片前滴加蒸馏水 盆栽的树木有哪些 如何在视频中使用自由构图或拼接功能合成两张照片? 沈清秋和洛冰河谁是受 绝世病娘(第五章)美男是皇后(下)_1200字 六招远离冬季暖气病 天气冷了,宅在屋里小心得了暖气病! 龙族幻想小怪兽的日记异闻任务怎么做_龙族幻想小怪兽的日记异闻... 龙族幻想小怪兽的日记异闻攻略介绍_龙族幻想小怪兽的日记异闻攻略... 龙族幻想青铜异闻大全介绍_龙族幻想青铜异闻大全是什么 龙族幻想异闻怎么触发(龙族幻想异闻怎么重新开始) 凭高中毕业考试准考证去买手机有优惠吗? 苹果教育优惠2024年时间对手机有优惠吗 苹果教育优惠入口可以买手机吗 茅台镇宴宾酒业价格 挖掘茅台镇酒文化的背后 男人性福的护肾方法有哪些 男人护肾吃什么好 养肾的中药材有哪些 帮助男人养肾的按摩方法 家中户外小鱼池水中亚硝酸盐含量超标,如何处理? 拉直头发后怎样护理?