现在位置: 首页 > 自动控制 > 工业·编程 > 文章
    有时候,需要保持分割窗口中每个小窗口的尺寸或者比例,不允许用户拖动分割条。我考虑了有两种方法可以实现。效果如下,鼠标在分割条上,没有出现可以改变大小的箭头。 方法1: ================================================ //CMySplitter.h #pragma once #include "stdafx.h" class CMySplitter:public CSplitterWnd { DECLARE_DYNAMIC(CMySplitter) public: DECLARE_...
阅读全文
    大家都知道默认的CSplitterWnd的拖动条很宽,看起来占地方,也不美观。怎么改变它呢?研究CSplitterWnd的构造函数发现,拖动条的宽度是可以设置的。下面是我写的一个简单的CMySplitter类。 下面是CMySplitter的代码: ========================================================= //MySplitter.h #pragma once #include "stdafx.h" class CMySplitter : public CSplitterWnd { ...
阅读全文
2012-08-26 07:40 工业·编程 ⁄ 共 2079字 暂无评论
说明:这些是我在编程中碰到和处理过的一些问题和经验。这是第一篇(看看效果,先)。 一,PostMessage和SendMessage 1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMessage的返回值表示其他程序处理消息后的...
阅读全文
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 、 ...
阅读全文
    众所周知,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()   -...
阅读全文