========================================================================
MICROSOFT FOUNDATION CLASS LIBRARY : DynamicControl
========================================================================
AppWizard has created this DynamicControl application for you. This application
not only demonstrates the basics of using the Microsoft Foundation classes
but is also a starting point for writing your application.
This file contains a summary of what you will find in each of the files that
make up your DynamicControl application.
DynamicControl.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
DynamicControl.h
This is the main header file for the application. It includes other
project specific headers (including Resource.h) and declares the
CDynamicControlApp application class.
DynamicControl.cpp
This is the main application source file that contains the application
class CDynamicControlApp.
DynamicControl.rc
This is a listing of all of the Microsoft Windows resources that the
program uses. It includes the icons, bitmaps, and cursors that are stored
in the RES subdirectory. This file can be directly edited in Microsoft
Visual C++.
DynamicControl.clw
This file contains information used by ClassWizard to edit existing
classes or add new classes. ClassWizard also uses this file to store
information needed to create and edit message maps and dialog data
maps and to create prototype member functions.
res\DynamicControl.ico
This is an icon file, which is used as the application's icon. This
icon is included by the main resource file DynamicControl.rc.
res\DynamicControl.rc2
This file contains resources that are not edited by Microsoft
Visual C++. You should place all resources not editable by
the resource editor in this file.
/////////////////////////////////////////////////////////////////////////////
AppWizard creates one dialog class:
DynamicControlDlg.h, DynamicControlDlg.cpp - the dialog
These files contain your CDynamicControlDlg class. This class defines
the behavior of your application's main dialog. The dialog's
template is in DynamicControl.rc, which can be edited in Microsoft
Visual C++.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named DynamicControl.pch and a precompiled types file named StdAfx.obj.
Resource.h
This is the standard header file, which defines new resource IDs.
Microsoft Visual C++ reads and updates this file.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
If your application uses MFC in a shared DLL, and your application is
in a language other than the operating system's current language, you
will need to copy the corresponding localized resources MFC42XXX.DLL
from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,
and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation.
For example, MFC42DEU.DLL contains resources translated to German.) If you
don't do this, some of the UI elements of your application will remain in the
language of the operating system.
/////////////////////////////////////////////////////////////////////////////
VC动态控件演示 VC动态控件演示
5星 · 超过95%的资源 需积分: 0 40 浏览量
更新于2009-01-13
收藏 3.54MB RAR 举报
在VC++(Visual C++)开发环境中,动态控件是一种重要的技术,允许程序在运行时创建、修改或删除控件,极大地增强了用户界面的灵活性和交互性。动态控件主要涉及MFC(Microsoft Foundation Classes)库,它是微软提供的C++类库,用于简化Windows应用程序的开发。
动态控件的实现通常基于以下几个关键概念:
1. **COleControl** 类:这是MFC为创建ActiveX控件提供的一种基础类。ActiveX控件是可以在不同应用程序之间共享的组件,可以嵌入到网页、应用程序或其他支持ActiveX的环境中。通过继承自`COleControl`,你可以创建自己的定制控件,这些控件可以在运行时动态加载。
2. **CWnd** 类:所有窗口对象,包括控件,都是`CWnd`的派生类。在动态创建控件时,首先需要创建一个`CWnd`的实例,然后调用它的`Create`函数来指定控件的类型、位置、大小等属性。
3. **RegisterClass** 和 **CreateWindowEx** 函数:`RegisterClass`用于注册控件的窗口类,定义其外观和行为。`CreateWindowEx`则用于实际创建控件,它需要窗口类的名称、风格、位置、大小等参数。
4. **消息映射**:MFC中的消息映射机制将Windows消息与成员函数关联,使得当控件接收到消息时,可以调用相应的处理函数。例如,点击按钮时,可以响应`BN_CLICKED`消息并执行相应的操作。
5. **属性页和事件**:在动态控件中,属性页允许用户在运行时修改控件的属性,而事件则是控件状态改变时触发的回调函数。通过`BEGIN_PROPPAGEIDS`和`END_PROPPAGEIDS`宏,以及`ON_EVENT`宏,可以定义和处理这些属性和事件。
6. **ATL(Active Template Library)**:ATL是另一个微软提供的C++库,专为构建轻量级、高性能的COM(Component Object Model)组件设计。ATL可以简化ActiveX控件的实现,减少代码量,提高效率。
7. **资源脚本**:在VC++项目中,控件的外观通常由资源脚本(.RC文件)定义,包括控件的ID、类型、大小、位置等。动态控件可能需要在运行时解析资源脚本来创建控件。
8. **内存管理**:动态创建的控件需要正确地管理其生命周期,包括创建、显示、隐藏、移动、删除等操作。在不再需要控件时,必须调用`DestroyWindow`函数释放资源。
9. **容器和宿主**:动态控件可以被其他应用程序(容器)嵌入和使用。容器负责管理和显示控件,而控件则作为独立的组件提供服务。
通过以上技术,开发者可以在VC++中创建出功能丰富、交互性强的动态控件,提升软件的用户体验。在实际开发中,还需要考虑线程安全、性能优化、错误处理等方面的问题,以确保程序的稳定性和可靠性。动态控件的应用广泛,常见于各种专业软件、数据库应用、工业控制等领域。
superstarchen
- 粉丝: 0
- 资源: 1
最新资源
- 云计算,搭建分布式,然后实现Titantic数据集训练、分类的的代码
- 同城宠物照看-JAVA-基于Spring Boot的同城宠物照看系统的设计与实现(毕业论文)
- 云计算,实现中文字频统计代码,课程设计
- weixin138社区互助养老+ssm(论文+源码)-kaic.zip
- 扶贫助农系统-JAVA-基于spring boot扶贫助农系统设计与实现(毕业论文)
- 母婴护理知识共享-JAVA-基于SpringBoot+vue 的母婴护理知识共享系统(毕业论文)
- 番茄叶片图像病害多标签分类,约5600张数据
- 影音互动科普网站-JAVA-基于SpringBoot的哈利波特书影音互动科普网站设计与实现(毕业论文)
- 航空散货调度-JAVA-基于SpringBoot的航空散货调度系统设计与实现(毕业论文)
- 基于Python Scrapy的贝壳找房爬虫程序
- zigbee CC2530无线自组网协议栈实现一个协调器+多个终端的通讯及控制.zip
- 校园二手物品交易-JAVA-基于springBoot的校园二手物品交易系统的设计与实现(毕业论文)
- 计算机视觉项目:Swin-Transformer 【tiny、small、base】模型实现的图像识别项目:番茄病害图像分类
- 功能完善的电商数据智能爬虫采集系统项目全套技术资料.zip
- 青少年心理健康教育网-JAVA-基于springboot的青少年心理健康教育网站的设计与实现(毕业论文)
- 密评流程及商密应用方案解析