现在位置: 首页 > 所有2012年发表的文章
2012-08-26 07:38 工业·编程 ⁄ 共 13341字 暂无评论
    首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是从应用程序的消息队列中读取消息,并把它派送出去(::DispatchMessage)。而消息路由是指消息派送出去之后,系统(USER32.DLL)把消息投递到哪个窗口,以及以后消息在窗口之间的传...
阅读全文
一般的做法是在 C**App::InitInstance()中,修改成这样: { //... m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); m_pMainWnd->UpdateWindow(); //... } 或者,还在 CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中,添加: { //... cs.style |= WS_MAXIMIZE; //... }     这种做法能产生窗口最大化,但效果是显示的时候窗口从普通大小"闪"到最大化...
阅读全文
1 必备基础知识概述 1.1 MFC 文档视图结构程序结构总揽     当我们使用 MFC AppWizard 生成一个 MFC 程序,选用所有默认的设置(当然也是 Multiple Documents ,本文讨论主要基于 Multiple Documents ,对于 Single Document 情况仅以简单表述提及,皆因后者和前者很多相似相同之处,但前者更为复杂,并且更加常用。),假设你的程序名称为 A ,则你会得到 CMainFrame 、 CChildFrame 、 CAboutDlg 、 CADoc 、 ...
阅读全文
中国现代化过程中的许多具体做法不一定具有普遍意义,但这些做法背后的思想,特别是“实事求是”、“和谐中道”、“循序渐进”、“标本兼治”、“和而不同”等,则可能有相当的普遍意义。沿着这样的思路,中国应该能够沉着地应对,并最终有效地处理和解决自己所面临的各种严峻挑战。这些思想同时也构成了中国的政治软实力。 我们常说:中国硬件进步很大,软件跟不上。这个说法,一般地讲,笔者完全同意。我们的地铁这么新、这么漂亮,但大...
阅读全文
    移动互联网会带来九大创新性的领域,这些领域有些是传统行业,但是因为无线互联网整个行业模型和产品形态发生正在发生比较大的变化。智能手机的成长在过去几年当中是非常高速的形态,如果今天没有手机这样的业态,传统的PC互联网应该讲已经进入了夕阳期,互联网进入到传统行业的状态,移动互联网是一个很大的促进。     移动互联网有很新的应用,比如说有传感器,你可以跟手机相关联,相信各...
阅读全文
    众所周知,MFC提供了一个非常强大的,但是又不太容易理解的编程模型叫做文档/视图结构。它的基本思想就是将数据的表现和数据的存在分开管理。MFC提供了很多现在的类来达成这个目标,通常,利用CFrameWnd,CView和CDocument这三个类,再利用CSingleDocTemplate的魔法将它们串联起来,就可以很容易的构建出一个单文档的Doc/View应用程序。     但是,随着互联网的发展,一切东西都跃然于网络上。我...
阅读全文
    文档/视图结构是MFC中最有特色而又有难度的部分,在这当中涉及了应用、文档模板、文档、视图、MDI框架窗口、MDI子窗口等不同的对象,如果不了解这些部分之间如何关联的话,就可能犯错误,也就很难编出有水平的文档/视图程序。比如我在初学VC编程的时候,为应用程序添加了两个文档模板,两个模板公用一个文档类,只是视图不一样,期望当一个模板的文档的视图改变了文档后,调用UpdateAllViews后也能更新另一...
阅读全文
    很多人,大部分是公司的小员工,在维护代码时,都会想,看到以前别人写的乱七八糟的代码,是要复用代码还是重构代码呢,公司给你的时间也充足。但是代码写的再好公司是不关心的,不论你用1000行代码实现还是100行代码实现,只要你能实现不犯错误就行,在这种情况下多数的人还是会选择复用这些乱七八糟的代码,因为这样代码很好理解,也让自己更容易修改,但是很快就遇到挫折了,这些代码和其他模块的代码耦...
阅读全文
2012-08-26 00:19 工业·编程 ⁄ 共 2417字 暂无评论
获得CWinApp:   -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp   -在其它类中只能用AfxGetApp()   获得CMainFrame:   -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd   -在CChildFrame中可用GetParentFrame()   -在其它类中用AfxGetMainWnd()   获得CChildFrame:   -在CView中用GetParentFrame()   -...
阅读全文
    动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。 一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。 静态控件不需要调用Cr...
阅读全文