`
qpb681wk
  • 浏览: 18697 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

MFC对话框程序基础复习001

 
阅读更多

MFC对话框程序基础复习001
2011年04月23日
  对话框基础复习一 2011.4.21
  对话框有两种:
  一种是模态对话框(Modal['məudl]),其中模态对话框显示时候,程序的其他的在对话框之外都不可操作,只有关闭了模态对话框才可以继续操作,例如文本工具的“打开对话框”。
  一种是非模态对话框(Modeless),非模态对话框跟用户对程序其他操作没有影响,例如文本工具的“查找对话框”。
  MFC中对资源的操作都是通过一个与资源相关的类来完成的。
  模态对话框用DoModal来显示,非模态对话框用Create来生成,用ShowWindow来显示。
  指针是在堆上分配内存的,和程序的整个生命周期一致(假设你不主动注销)。
  void CEasyDialogView::OnDialog()
  {
  // TODO: Add your command handler code here
  CTestDlg *pTestDlg = new CTestDlg();
  pTestDlg->Create(IDD_DIALOG1, this);
  pTestDlg->ShowWindow(SW_SHOW);
  }
  这样是可以显示出Modaless对话框的,但是,这个函数的生命周期结束之后,pTestDlg销毁了,你就找不到刚才分配出来的内存空间了。
  查MSDN可知道,在Modaless对话框的“OK”按钮并不会销毁窗口,要重写OnOK函数在其中加入DestroyWindow才能使得窗口销毁。
  其中IDC_STATIC 这个ID号是规定了用来标识一些静态的做标识的文本的,所以在ClassWizard中看不到它,所以要操作的话就要改成其他的ID号。想要静态文本响应鼠标的消息,就要在属性对话框中选中Notify选中。
  逗号表达式:用逗号来隔开多个表达式,整个逗号表达式的值就是最后一个表达式的值。
  获取一个Item里的文本或数据的信息的函数有如下:
  GetDlgItem()->GetWindowText();
  GetDlgItemText()
  GetDlgItemInt()
  可以用 关联控件值(value)变量 来对进行特定的操作,如文本输入框的文本。
  直接操作关联的控件值变量是没有效果的,因为没有进行控件的updata操作。
  所以要在头尾加上UpdateData(TURE)和UpdateData(FALSE)函数。
  UpdateData(TURE)表明当前函数正在获取控件的数据。
  UpdateData(FALSE)表名当前函数已经在初始化控件的数据了。
  关联控件控制(control)变量 是对控件本身的对象的关联,操作这个变量就是操作了控件的本身,所以不用Update也行。
  mfc提供了 DDX - Dialog Data Exchange 对话框数据交换
  DDX - Dialog Data Validation 对话框数据校验
  这些函数是一DDX_ DDV_作前缀的。
  可以用消息来对控件来进行操作。例如:文本框的操作
  WM_GETTEXT, WM_SETTEXT
  设置文本框的复选部分:EM_GETSEL, EM_SETSEL
  ①::SendMessage()
  ②用本身关联的空间控制变量来使用如:m_edit.SendMessage();
  ③SendDlgItemMessage()直接向Item发送消息
  SendMessage 与 PostMessage的区别
  PostMessage只负责将消息放到消息队列中,不确定何时及是否处理
  SendMessage要等到受到消息处理的返回码(DWord类型)后才继续
  PostMessage执行后马上返回
  SendMessage必须等到消息被处理后才会返回。
  GetWindowRect 是用来获取窗口的矩形区域。
  IsRectNull 判断区域是否为空
  SetWindowPos/DeferWindowPos 设置窗口的位置
  BingWindowToTop 把窗口置于顶层
  SetForegroudWindow 设置前台窗口
  SetWindowLong 可以用来设置窗口的属性
  LONG SetWindowLong(
  HWND hWnd,       // handle to window
  int nIndex,      // offset of value to set
  LONG dwNewLong   // new value
  );
  当 nIndex 为 GWL_WNDPROC就可以重设一个窗口过程,返回先前的窗口过程,设置一个窗口过程,就可以响应一些别的消息
  SetFocus 设置窗口的焦点
  GetNextWindow 可以获取下一个窗口的句柄
  GetWindow 获取特定关系的窗口句柄,包含上面的
  GetNextDlgTabItem 获取下一个 可获取tab键转移的 Item
  在控件属性页里 有个 Tab Stop 可以选,转中后就可以转移到这个按键
  在 Layout菜单 中的TabOrder 选项选中,就可以设置tab的顺序了,很方便。
  编辑框 不选中 多行 MultiLine 是不会响应回车消息的。
  在MFC生成的对话框程序里,默认OK 按钮,默认回车按钮的ID就是IDOK(指没有设置DefaultButton的时候)。
分享到:
评论

相关推荐

    MFC课程复习——基础——

    本篇文章主要涵盖了MFC的基础知识,包括面向对象概念、对话框、消息处理、计时器、绘图操作、程序设计以及特定代码的功能分析。 1. 面向对象概念: 面向对象编程是MFC的核心,主要涉及类的封装性、继承性和多态性。...

    基于MFC的计算器程序

    【标题】:“基于MFC的计算器程序” 在编程领域,MFC(Microsoft Foundation Classes)是微软为Windows应用程序开发提供的...这是一个基础但全面的实践项目,适合初学者入门,也对有经验的开发者具有复习和巩固价值。

    MFCWindows应用程序设计复习题2[归类].pdf

    在MFC(Microsoft Foundation Classes)Windows应用程序设计中,文件处理机制和对话框是两个重要的知识点。下面是关于这两个主题的详细说明: **文件处理机制** 1. **序列化(Serialization)**:序列化是MFC中...

    MFC-Windows应用程序的设计复习题2.doc

    【MFC-Windows应用程序设计复习题】主要涵盖了MFC(Microsoft Foundation Classes)框架下Windows应用程序的文件处理机制和对话框操作。MFC是Microsoft提供的一套C++库,用于简化Windows应用程序开发。 1) **文件...

    mfc资料全集 九本书详解mfc

    5. **Visual C++MFC入门教程**:适合初学者,可能包含MFC的基础知识,如创建第一个MFC应用、控件的使用、对话框编程、菜单和工具栏的创建等,为读者构建扎实的MFC编程基础。 6. **CHM格式的孙老师VC笔记和一些资料*...

    MFC教程与实例(带一些典型例子)

    1. **框架类**:MFC中的框架类是整个应用程序的基础,它们提供了事件处理、消息映射等关键功能。例如,CWinApp类代表一个应用程序,CWnd类代表窗口,CDialog类代表对话框。 2. **消息映射**:MFC使用消息映射机制将...

    MFC 计算器 (VC++)

    本计算器项目是基于MFC和Visual Studio 2008进行开发的,它展示了如何利用MFC对话框来构建一个功能完备的计算器应用。本文将深入探讨这一项目中的关键技术和知识点。 首先,MFC对话框是用户界面的核心。在MFC中,...

    c++基础复习-期末复习总结

    此外,还涉及了MFC(Microsoft Foundation Classes)程序设计框架,包括对话框、菜单、工具栏和状态栏的设计,这些都是实际应用中常见的界面元素。 学习C++需要理解和掌握课程内容,认真完成作业和实验,频繁的上机...

    Windows应用程序设计(C#)mfc mcp考证题库

    总之,"Windows应用程序设计(C#)mfc mcp考证题库"是一个针对MCP认证考试的复习资源,涵盖了C#编程、Windows应用程序设计和相关理论知识。考生可以通过深入学习和实践,提升自己的技能水平,顺利通过考试,成为微软...

    Visual C++MFC专题讲座C语言程序设计教程

    4. **MFC框架**:MFC提供了一系列的类,用于构建Windows应用程序,包括窗口、对话框、控件、文档/视图架构等。通过学习MFC,你可以快速创建具有专业外观的Windows GUI程序。 5. **MFC编程实践**:学习如何使用MFC...

    VS2010 MFC经典教程

    VS2010 MFC经典教程是一套全面的教程,涵盖了在Visual Studio 2010环境中使用Microsoft Foundation Classes (MFC)进行C++程序设计的基础和深入知识。MFC是一个为简化Windows应用程序的开发而提供的一个C++库。下面将...

    2007 VC++ MFC复习Beta版——加强理解Graduate精髓

    学习MFC不仅可以提升Windows程序设计能力,还能够为理解其他微软技术如ATL(Active Template Library)和COM(Component Object Model)打下坚实基础。在实际项目开发中,结合MFC的灵活性和Windows API的强大功能,...

    Windows程序设计复习资料.doc.doc

    《Windows程序设计复习...以上内容涵盖了Windows程序设计的基本概念和MFC库的使用,包括程序启动、用户交互、绘图、资源管理等方面,是复习和学习的关键点。理解并掌握这些知识点,对于编写Windows应用程序至关重要。

    Windows程序设计复习题

    【Windows程序设计】知识点详解 ...这些知识点涵盖了Windows程序设计的基础,包括项目文件管理、MFC框架、消息处理、设备上下文、绘图对象、以及对话框和菜单的使用等方面,是学习Windows程序设计的重要组成部分。

    超级简单调色板程序(MFC VS2008开发)

    《超级简单调色板程序——基于MFC与VS...对于想要学习或复习MFC和Windows GUI编程的开发者,这是一个不错的实践项目。通过分析和改进这个程序,可以进一步掌握MFC类库的应用,以及提高在图形用户界面设计方面的技能。

    MFC常识,复习必用

    ### MFC基础知识与应用 #### 1. 类与成员访问控制 在MFC(Microsoft Foundation Classes)及VC++开发环境中,类是程序设计的基本单元。类中的成员分为`public`(公有)、`protected`(受保护)和`private`(私有)...

    VC++程序设计复习题

    从给定的VC++程序设计复习题中,我们可以提炼出一系列关键知识点,这些知识点涵盖了C++面向对象编程的基础,特别是与Microsoft Visual C++ (VC++) 和 Microsoft Foundation Classes (MFC) 相关的重要概念和技术。...

    VC编程指南--一本介绍VC和MFC的书

    2. **C++基础**:复习C++语言的基础知识,如变量、数据类型、控制结构、函数、类和对象等,这是使用VC进行编程的基础。 3. **MFC库介绍**:讲解MFC库的设计理念和架构,它是微软为简化Windows应用程序开发而创建的...

    MFC.zip_MFC任务书_mfc编程作品

    MFC,全称为Microsoft Foundation Classes,是微软提供的一套C++类库,用于构建Windows应用程序。...对于初学者来说,这是一个很好的学习资源,对于有经验的开发者来说,这也是一个复习和提升MFC技能的好材料。

Global site tag (gtag.js) - Google Analytics