TForm类用于描述Windows应用程序中的所有窗体对象,它同样是一个非常重要并且具有特殊性的类。TForm类继承于TControl,所以它是可视的,但TForm并没有像其他可视组件那样出现在C++ Builder的组件选项板上。如果要向程序中添加一个窗体,只能通过菜单或工具栏来完成--选择[File/New Form]菜单项或单击工具栏的相应按钮。

TForm类对应的窗体是C++ Builder中各种组件的容器,并且是可视化设计时所有组件的最终容器(一些可视组件,如Panel、ToolBar也是组件的容器)。同时,每一个应用程序的窗体(TForm类的派生类对象)对应一个单元(Unit),C++Builder会为每个单元生成对应的头文件和CPP文件。

一般来说,没有窗体直接是TForm类的实例。在C++Builder中所创建的所有窗体,实际上都是创建了一个继承于TForm类的新类,这个新类的定义可以在相应的头文件中看到。实际编程中,程序员所面对的就是一些TForm类的派生类,并且会为这个TForm类的派生类添加变量成员、属性和方法,以实现窗体所需要的特定功能。

窗体与窗口是一个不同的概念。窗口是一个广泛的概念。在Windows中,用户界面的大多数元素都是窗口。用VCL的概念来解释,窗口是继承于TWinControl类的各种元素。更具体的说,窗口具有以下的一般特点:

(一)具有窗口句柄, Windows系统可以识别它们,并为窗口引用函数。

(二)当系统中有事件发生,消息会发往相应的窗口。每个窗口都具有一个隐含的窗口函数(WindowsProc)处理系统发给窗口的各种消息。

窗体也是窗口,但它特指那些一般来说具有标题栏、边框、可以进行最大最小化的窗口。这类窗口也就是用户见到的一般意义的应用程序窗口。所以,窗体是应用程序中必不可少的重要组成部分。

转载于:https://blog.51cto.com/hthinker/1743085

C++Builder 2010深入TForm类之窗口与窗体相关推荐

  1. C++Builder 2010深入TApplication类之属性

    TApplication类用于封装Windows应用程序对象.TApplication类包含一系列属性和方法反映Windows应用程序的一些基本操作,包括应用程序的创建.运行.维持和销毁.TAppli ...

  2. C++Builder 2010深入TApplication类之事件

    TApplication类的重要事件 Application对象的事件具有一定的特殊性,因为它不能像组件那样在设计时指定处理事件的函数,而只能在程序中进行设定. (1)OnHint事件. 当鼠标指针移 ...

  3. 窗口类、窗口类对象与窗口 三者之间关系

    本文摘自孙鑫<VC++深入详解3.3.1> 3.3.1  三者之间关系 很多开发人员都将窗口类.窗口类的对象和窗口之间的关系弄混淆了.为了使读者能更好地理解它们之间的关系,下面我们将模拟C ...

  4. win32开发(窗口类和窗口)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 之前虽然也编写win32代码,比如使用visual studio自动生成的win32框架.但是对 ...

  5. Tkinter类之窗口部件类

    Tkinter类之窗口部件类 Tkinter支持15个核心的窗口部件,这个15个核心窗口部件类列表如下: 窗口部件及说明: Button: 一个简单的按钮,用来执行一个命令或别的操作. Canvas: ...

  6. 作为window对象属性的元素 多窗口和窗体

    作为窗口对象属性的文档元素 如果html文档中用id属性为元素命名.并且如果window对象没有此名字的属性,则window对象会赋予一个属性,其名字为id属性的值,其值指向该元素 html < ...

  7. MFC在其他类中访问主窗体的成员

    在其他类中访问主窗体的成员: CPMAgentManageDlg* pF = (CPMAgentManageDlg*)AfxGetApp()->m_pMainWnd; 这样用pF这个指针就可以指 ...

  8. Python Qt GUI设计:QScrollBar类实现窗口水平或垂直滑动条效果(拓展篇—4)

    使用QScrollBar可以在窗口控件提供了水平的或垂直的滚动条,这样可以扩大当前窗口的有效装载面积,从而装载更多的控件. QScrollBar类中的常用信号如下表所示: 通过示例,了解QScroll ...

  9. 写个类操作窗口(句柄操作)

    前言:本店绝不含地沟油 顾客:"老板,你这油怎么这么亮呀,跟我平常吃的不一样,不会是地沟油吧?" 回答:"你平常吃的是地沟油!" 继续缅怀逝去的程序员生涯 倒腾 ...

  10. EXCEL 2010如何分屏/多窗口显示多文件

    工作或学习中同时处理多个EXCEL表格,常在窗口间切换? 总是找不到2010版 EXCEL的解决办法? 那么看向这里,教你最简单的分屏方法! 方法/步骤 1你打开了2个表格,需同时处理,如下图: 2[ ...

最新文章

  1. SuperMap iDesktop Cross 8C 开源桌面GIS下载与扩展开发
  2. python socket tcp客户端_python网络编程socketserver模块(实现TCP客户端/服务器)
  3. 习题10-6 递归求Fabonacci数列 (10 分)
  4. android luajava,android嵌入lua
  5. 写过Mybatis插件?那说说自定义插件是如何加载的吧?
  6. ols残差_python数据关系型图表散点图系列残差分析图
  7. Web常见攻击手段总结
  8. PAT (Advanced Level) 1035. Password (20)
  9. json数据格式 穗康码_Json数据格式
  10. [转]用 ASP.NET 2.0 改进的 ViewState 加快网站速度
  11. java使用xsd校验xml样例
  12. 大数据的趋势走向如何
  13. Colaboratory使用教程
  14. 重磅 | 2022年第三季度Web3.0行业安全报告
  15. ML Note 3.4 - 数据降维算法 PCA / t-SNE
  16. 网络历史之金融投资三剑客01
  17. 系统集成十大项目管理(1)
  18. CSAPP_Chapter1
  19. WaaSMedicAgent是什么程序?又叫Windows更新医生服务
  20. pip升级到最新版本

热门文章

  1. atitit.《金刚经》与it软件项目管理的启发 读后感attilax
  2. Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践
  3. paip..net DATAGRIDVIEW表格里边加PROCESSBAR进度条控件总结
  4. paip.php debug 调试---与OPTIMIZER共存
  5. 在没有源代码的情况下调试JAR包..
  6. Apache基金会获得Pineapple基金88.34比特币捐赠
  7. 【优化覆盖】基于matlab虚拟力算法求解无线网络传感覆盖优化问题【含Matlab源码 1187期】
  8. 【TSP】基于matlab粒子群算法求解旅行商问题【含Matlab源码 445期】
  9. 【基础处理】基于matlab语音信号预处理【含Matlab源码 364期】
  10. 二项分布python实现_初级概率分布的Python实现