摘要:
1,修改外观和图标可以在MainFrm中进行,而修改背景和光标只能在View中进行。为什么?因为view的显示挡在了MainFrame的前面。a.在MainFrame中PreCreateWindow()中,在窗口创建之前,用重新注册窗口类的方法,比较麻烦。在PreCreateWindow()中修改也可以用简单的方法,用全局函数//cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,0,0,// LoadIcon(NULL,IDI_WARNING));在窗口创建之后,在OnCreate()中修改//SetWindowLong(m_hW 阅读全文
摘要:
1. Windows应用程序工作的基本流程是从用户那里得到数据,经过相应的处理之后,现把处理结果输出到屏幕,打印机或者绵输出设备。这就需要用到Windows应用程序的用户接口对话框。对话框就是一个窗口,它不公可以接收消息,而且还可以被移动和关闭,甚至可以在它的客户区中进行绘图。相当于一个窗口,在它上面能够旋转各种标准控件和扩展控件。都是由CWnd类派生来2. 对话框的类型:模态(Model)对话框和非模态(Modeless)对话框模态对话框:指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其它任务。当一个模态对话框打开时,用户只能与该对话框进行交互,而其它用户界面对象 阅读全文
摘要:
1. MFC中的顶层菜单默认为弹出菜单(Pop-up),它是不能用来作命令响应的,当取消Pop-up选项后可接受命令响应。2. 消息的分类:标准消息,命令消息,通告消息。[标准消息]:除WM_COMMAND之外,所有以WM_开头的消息。从CWnd类派生的类都可以接收到这一消息;[命令消息]:来自菜单、加速键或工具栏按钮的消息。这类消息都以WM_COMMAND呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数识别。从CCmdTarget(CWnd的父类)派生的类都可以接收到这一类消息;[通告消息]:由控件产生的消息,例如,按钮的单击,列表框的选 阅读全文
摘要:
1,创建插入符:void CreateSolidCaret( int nWidth, int nHeight );//创建插入符void CreateCaret( CBitmap* pBitmap );//创建位图插入符void ShowCaret( );//显示插入符void HideCaret( );//隐藏插入符static void PASCAL SetCaretPos( POINT point );//移动插入符号说明:1)创建插入符要在窗口创建完成之后,CreateSolidCaret函数创建的插入符被初始化为隐藏,所以需要调用ShowCaret()将其显示。2)使用CreateC 阅读全文
摘要:
1. 在单文档中view挡在MainFrame的前面。此时如果编写针对MainFrame的mouseClick事件,将不会有反应。因为MFC视类窗口是覆盖在框架窗口上的,因此框架窗口不能感到鼠标消息。因为CWnd类中含有一个窗口句柄,所以可以不必传递窗口句柄参数,直接使用成员函数MessageBox(显示的内容)。2. MFC的消息映射机制:在每个能接收和处理消息的类中,定义一个消息和消息函数对照表,即消息映射表.在消息映射表中,消息与对应的消息处理函数指针成对出现.某个类能处理的所有消息及其对应的消息处理函数的地址都列在这个类所对应的静态表中.当有消息需要处理时,程序只要搜索该消息静态表,查 阅读全文
摘要:
1、课程内容: 讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个源代码生成工具,是计算机辅助程序设计工具,WinMain在MFC程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个类的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口类的PreCreateWidow和OnCreate两个函数的着重分析,Windows窗口与C++中的CWnd类的关系 在D:\Program Files\VisualSdudio\VC\atlmfc\src\mfc 目录下可以找到appmodul.cpp文件,WinMain函数就在这里。2 阅读全文