对话框ActiveX控件的退出问题

MrFool 2003-08-19 07:56:00
我用CAxDialogImpl写了一个对话框ActiveX控件。这个对话框似乎不能响应WM_CLOSE事件,导致我在关闭ActiveX Control Container和直接退出控件时,因为建立的网络连接和其他一些指针没有释放,而出错。我应该在什么地方释放网络连接和这些指针呢?是在对话框的析构函数里吗?
...全文
81 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MrFool 2003-08-20
  • 打赏
  • 举报
回复
to warmchang(风滑过的痕迹):
我dubug过,发现在关闭ActiveX Control Container时,对话框不会响应WM_CLOSE消息。
我的程序是这样建立的:com工程-->添加full control-->添加missicellaneous(即CAxDialogImpl对话框)。整个控件就是一个对话框程序,对话框的属性设置成:chiild, none border。
我想问问,你能肯定在控件运行时,直接关闭ActiveX Control Container或IE时,对话框会响应WM_CLOSE消息吗?
这个问题快把我弄疯了,请大家帮忙!!!
MrFool 2003-08-20
  • 打赏
  • 举报
回复
to forlongtime(forlongtime),我没有试过添加到别的工程中去。但是,添加到网页上肯定可以运行,我觉得那添加到别的工程也应该可以。
MrFool 2003-08-20
  • 打赏
  • 举报
回复
to warmchang(风滑过的痕迹)
我debug了,发现根本就不会进入OnClose()事件啊
我的工程是这样建立得:com工程-->添加一个full control-->添加一个miscellaneous(即CAxDialogImpl对话框)
实际上,整个控件就是一个对话框程序。
那在直接关闭ActiveX Control Container和IE时,你能肯定这个对话框会响应WM_CLOSE消息吗?
warmchang 2003-08-20
  • 打赏
  • 举报
回复
就象一般的对话框一样啊,可以响应WM_CLOSE消息。
forlongtime 2003-08-19
  • 打赏
  • 举报
回复
不是回答你
想请问你一下你做的对话框ActiveX控件Insert到别的工程中可以吗?
能不能告诉我怎么做的?非常感谢!
说明文档:制作类似windows画笔的程序 功能: 文件—— 新建 打开 保存 另存为 页面设置——画布大小变化 退出 编辑—— 剪切 复制 粘贴 删除选定区域(但是背景变成黑色的了?!) 查看—— 工具栏、状态栏、颜料盒的显示与隐藏 大尺寸、常规尺寸、自定义尺寸的缩放 图像—— 翻转功能实现(包括水平、垂直翻转,以及180度旋转,90与270度旋转理论上亦实现了,只是速度有些慢,只能适用于小图形) 图像反色 颜色—— 编辑颜色功能实现 帮助—— 弹出信息框 界面: 突出显示按件 鼠标移动显示坐标 使用铅笔在画布上任意绘画,且可以变化颜色 橡皮擦功能实现(橡皮擦大小的变化可以通过改变笔刷粗细后改变) 拾色器功能实现 油漆桶功能实现 直线、笔刷功能实现 屏幕输入文字 放大镜功能实现!!(——强烈注意:它又名奇异镜> <……即使用之后,所有画图功能(比如颜色反色出现,橡皮变成铅笔……填充的色块可以叠加……,O(∩_∩)O哈哈~所以使用之后,记得退出程序,重新开启……) 可以画空心或实心的矩形 可以画空心或实心的椭圆和圆 喷枪功能实现(只是在画笔变粗时,效果会有些恶心……,建议通过笔刷,选择1,然后使用) 另:支持各种快捷键,如ctrl+S/ctrl+x 等,详情请见菜单栏。 使用的API函数与ActiveX控件: API函数: GetCursorPos GetDC GetPixel RoundRect ActiveX控件: 通用对话框控件, 位于“Microsoft CommonDialog Control 6.0” 中
中文名: VB程序设计及应用 作者: 李淑华图书分类: 软件 资源格式: PDF 版本: 文字版 出版社: 高等教育出版社书号: 7-04-014767-X发行时间: 2004年04月 地区: 大陆 语言: 简体中文 简介: 内容简介: 本书是新世纪高职高专教改项目成果教材,由教育部高职高专教育专业教学改革试点院校编写。全书共分 17 章。主要介绍了 VisualBasic6.0 系统的基础知识,程序设计的常用函数、程序设计语句、数组,简单介绍了面向对象程序设计的基本概念,详细介绍了基本控件对话框、图形、菜单等设计方法,多文档界面、工具栏、状态栏的程序设计方法,数据库、对象的链接和嵌入、多媒体控件以及常用的 ActiveX 控件的应用,最后介绍了打字练习、画板、学生成绩管理系统等应用程序实例。本书配有大量的实例和测试题,并配有 CAI课件、电子教案。本书由浅入深、通俗易懂,适用于高等职业学校、高等专科学校、成人高校、示范性软件职业技术学院、本科院校使用,还适用于本科院校举办的二级职业技术学院、教育学院以及民办高校使用,也可供参加全国高等学校计算机考试二级 VisualBasic语言程序设计的考生学习参考,同时也适应各类工作人员学习参考。 内容截图: 目录: 第1章 VisualBasic概述 1.1 VisualBasic6.0 1.1.1 VB的发展 1.1.2 VB6.0版本简介 1.1.3 VB的特点 1.2 VB的集成开发环境 1.2.1 启动 VB集成开发环境 1.2.2 用户界面 1.3 各种窗口简介 1.3.1 窗体窗口 1.3.2 工程资源管理器窗口 1.3.3 工具箱窗口 1.3.4 属性窗口 1.3.5 代码窗口 1.3.6 调色板窗口 1.3.7 窗体布局窗口 1.3.8 立即窗口 1.3.9 对象浏览器窗口 习题9 第2章 VB基本概念与操作 2.1 可视化编程基础 2.2 VB应用程序的开发步骤 2.2.1 创建或打开新工程 2.2.2 建立用户界面 2.2.3 设计用户界面 2.2.4 添加程序代码 2.2.5 运行调试程序 2.2.6 保存文件 2.2.7 生成可执行文件 2.3 修改和定制窗体 2.3.1 选择控件 2.3.2 控件的操作 2.4 工程的管理 2.4.1 工程的组成 2.4.2 习题 第 3章 VB程序设计的基础 3.1 命名规则和语法规则 3.1.1 命名规则 3.1.2 语句及语法规则 3.2 数据类型 3.2.1 基本数据类型 3.2.2 用户自定义类型 3.3 常量与变量 3.3.1 常量 3.3.2 变量 3.3.3 变量的作用域 3.3.4 变量作用域的关系 3.4 常用函数 3.4.1 内部函数 3.4.2 字符串函数 3.5 运算符和表达式 3.5.1 算术运算符与算术表达式 3.5.2 关系运算符与关系表达式 3.5.3 逻辑运算符与逻辑表达式 习题 第 4章 数据的输出与输入 4.1 数据的输出 4.1.1 Print方法 4.1.2 与 Print有关的函数 4.1.3 Cls方法 4.2 数据输入函数 InputBox 4.3 MsgBox函数和 MsgBox语句 4.3.1 MsgBox函数 4.3.2 MsgBox语句 实训 习题 第 5章 VB程序设计语句 5.1 赋值语句 5.2 条件语句 5.2.1 分支结构 5.2.2 情况语句 5.3 循环语句 5.3.1 For循环 5.3.2 Do循环 5.3.3 多重循环 5.3.4 GoTo语句 5.3.5 End语句 5.3.6 应用举例 习题一 5.4 数组 5.4.1 数组的概念 5.4.2 静态数组的定义 5.4.3 数组下标界的测试函数 5.4.4 动态数组的定义 5.4.5 数组的清除和重新定义 5.4.6 数组的基本操作 5.4.7 数组应用举例 5.5 控件数组 5.5.1 控件数组的概念 5.5.2 控件数组的建立 习题二 5.6 过程 5.6.1 过程的定义 5.6.2 过程的调用 5.6.3 退出过程 5.6.4 SubMain过程 5.7 函数 5.7.1 函数的定义 5.7.2 函数的调用 5.7.3 退出函数语句 实训 习题三 第6章 窗体 6.1 对象的基本属性 6.1.1 属性的分类 6.1.2 对象的基本属性 6.2 窗体的属性、事件和方法 6.2.1 窗体的常用属性 6.2.2 窗体的常用事件 6.2.3 窗体的常用方法 6.2.4 控件的常用事件 6.2.5 LoadPicture函数 6.3 多窗体 6.3.1 加载窗体 6.3.2 显示窗体 6.3.3 隐藏窗体 6.3.4 卸载窗体 6.3.5 建立多窗体 6.4 鼠标事件与键盘事件 6.4.1 鼠标事件 6.4.2 键盘事件 实训 习题 第 7章 常用控件的使用 7.1 标签框与文本框 7.1.1 标签框 7.1.2 文本框 7.2 命令按钮与计时器 7.2.1 命令按钮 7.2.2 计时器 7.3 单选按钮与复选框 7.3.1 单选按钮 7.3.2 复选框 7.4 框架与滚动条 7.4.1 框架 7.4.2 滚动条 7.5 列表框与组合框 7.5.1 列表框 7.5.2 组合框 7.6 图片框与图像框 7.6.1 图片框 7.6.2 图像框 7.7 设计简单的动画 实训 习题 第 8章 对话框程序设计 8.1 概述 8.1.1 对话框的分类 8.1.2 对话框的特点 8.2 通用对话框 8.2.1 通用对话框控件 8.2.2 通用对话框的属性与方 8.3 通用对话框的使用 8.3.1 打开(Open)对话框 8.3.2 另存为(SaveAs)对话框 8.3.3 颜色(Color)对话框 8.3.4 字体(Font)对话框 8.3.5 打印(Printer)对话框 8.3.6 帮助(Help)对话框 8.4 自定义对话框 8.4.1 自定义对话框的外观 8.4.2 自定义对话框的规则 实训 习题 第9章 图形操作 9.1 图形操作基础 9.1.1 标准坐标系统 9.1.2 自行定义坐标系 9.2 绘图属性 9.2.1 当前坐标 9.2.2 线宽 9.2.3 线型样式 9.2.4 填充 9.2.5 颜色函数 9.3 图形控件1 9.3.1 直线控件 9.3.2 形状控件 9.4 图形方法 9.4.1 PSet方法 9.4.2 Line方法 9.4.3 Circle方法 9.5 画图应用 实训 第10章 菜单程序设计 10.1 概述 10.1.1 下拉菜单 10.1.2 弹出式菜单 10.1.3 设计菜单的步骤 0.1.4 菜单编辑器 10.2 下拉菜单的设计 10.3 菜单项的控制 10.3.1 有效性控制 10.3.2 菜单项标记 10.3.3 菜单项的增减 10.4 弹出式菜单 实训 习题 第 11章 文件 11.1 文件系统控件 11.1.1 驱动器列表框 11.1.2 目录列表框 11.1.3 文件列表框 11.2 文件基本操作 11.3 文件概述 11.3.1 文件结构 11.3.2 文件分类 11.3.3 文件的打开与关闭 11.3.4 文件操作语句和函数 11.4 顺序文件 11.4.1 顺序文件的写操作 11.4.2 顺序文件的读操作 11.5 随机文件 11.5.1 随机文件的打开与关闭 11.5.2 随机文件的写操作 11.5.3 随机文件的读操作 实训 习题 第 12章 界面设计 12.1 多文档界面 12.1.1 多文档界面的特性 12.1.2 创建和设计 MDI窗体 12.1.3 创建和设计 MDI子窗体 12.1.4 MDI窗体与子窗体的交互 12.1.5 MDI应用程序的菜单 12.1.6 应用 MDI窗体注意事项 12.2 图像列表框、工具栏和状态栏 12.2.1 图像列表框 12.2.2 工具栏 12.2.3 状态栏 12.3 高级文本框控件 12.4 应用程序向导 12.4.1 生成多文档编辑器 12.4.2 生成WWW浏览器 12.4.3 生成资源管理器 实训 第13章 VisualBasic与数据库 13.1 数据库概念 13.2 数据库管理器 13.3 数据控件 13.3.1 数据控件属性 13.3.2 数据网格控件 13.3.3 数据控件的事件 13.3.4 数据控件的常用方法 13.3.5 记录集的属性与方法 13.3.6 数据库记录的增删改操作 13.4 结构化查询语言(SQL) 13.4.1 SQL的常用命令 13.4.2 Select语句格式与功能 13.4.3 使用SQL 13.5 ADO数据控件 13.5.1 ADO对象模型 13.5.2 ADO控件的常用属性 13.5.3 ADO控件连接数据库 13.5.4 ADO控件上新增绑定控件 13.5.5 数据窗体向导 实训 第14章 对象的链接与嵌入 14.1 OLE控件概述 14.1.1 使用OLE控件 14.1.2 对象链接与嵌入的区别 14.2 OLE控件常用属性与方法 14.2.1 OLE控件的属性 14.2.2 编辑OLE对象 实训 第15章 多媒体 15.1 多媒体控件 15.1.1 多媒体控件的常用属性 15.1.2 多媒体控件的常用事件 15.2 多媒体控件的使用 15.2.1 利用多媒体控件播放CD 15.2.2 利用多媒体控件播放VCD 15.2.3 利用多媒体控件播放有声的 AVI文件 实训 第 16章 常用 ActiveX控件应用 16.1 滑块控件 16.2 日历控件 16.2.1 日历控件的常用属性 16.2.2 日历控件的常用方法 16.3 动画控件 16.3.1 动画控件的常用属性 16.3.2 动画控件的常用方法 16.4 进程条控件 16.4.1 进程条控件的常用属性 16.4.2 进程条控件的常用事件 16.5 浏览器控件 16.5.1 浏览器控件的常用属性 16.5.2 浏览器控件的常用方法 16.6 多选项卡控件 16.6.1 多选项卡控件的常用属性 16.6.2 多选项卡控件的常用事件 16.7 综合应用 16.7.1 状态栏控件和形状控件 16.7.2 多媒体控件和滑块控件 实训 第 17章 综合应用 17.1 打字系统的设计 17.1.1 打字系统的主要功能 17.1.2 打字系统的程序设计 17.2 画板系统的设计 17.2.1 画板系统的主要功能 17.2.2 画板系统的程序设计 17.3 学生档案管理系统的设计 17.3.1 系统结构图 17.3.2 数据库的建立 17.3.3 主窗体的设计 实训 参考文献
第一课: Windows程序运行原理及程序编写流程,窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与cdecl调用规范的比较,初学者常犯错误及注意事项。我们通常不必要知晓每一个函数和消息。但另一方面,也不得不记住其中的一部分,否则很难将VC++运用自如。到底该记住哪些,这在我们的课程中都会涉及到。 第二课: C++经典语法与应用,类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数、析构函数先后调用顺序,如何在派生类构造函数中向基类的构造函数传递参数,this成员变量,类型转换的内幕,虚拟函数与奇妙多态性。VC工程的编译原理与过程,将工程中不同的类拆分到不同的原文件中,每一个类由一个.h和.cpp文件共同完成,然后解决头文件重复定义问题,培养了学员良好的编程习惯,也为以后分析MFC Appwizard生成的工程奠定了良好基础。 第三课: 讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个原代码生成工具,是计算机辅助程序设计软件,Winmain在MFC程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个类的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口类的PreCreateWidow和OnCreate两个函数的着重分析,Windows窗口与C++中的CWnd类的关系。 第四课: 讲述如何运用ClassWizard及对MFC消息响应函数机制的分析,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。掌握设备描述表及其封装类CDC的使用,CDC是如何与具体的设备发生关联的,融合具体的画图程序进行分析。如何设置封闭图形的填充刷子(位图画刷与透明画刷的使用)。 第五课: 掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。通过对kala ok程序的编写,讲解定时器的使用和DrawText函数的巧妙运用。讲解如何使用CDC的裁减功能。 第六课: 菜单的工作原理及编写应用,菜单命令消息在MFC框架程序的几个类中的传递顺序和处理过程。标记菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)。 第七课.: 动态菜单的编写,如何让程序在运行时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。 第八课.: 对话框用户界面程序的编写,如何向对话框控件联接数据成员及其实现机理,如何向对话框控关联控件类,如何利用对话框类的成员函数向控件发送消息和获取对话框控件的类指针,如何直接利用对话框控件类操纵对话框控件(发送消息和直接调用成员函数)。如何在程序运行时产生和销毁控件对话框控件的几种操作方式的优劣比较分析。 第九课: 如何让对话框上的文本框在程序启动后立即获得焦点,如何利用SetWindowLong改变窗口的回调函数,通过改变文本框的默认回车处理方式进行演示。实现多个输入文本框间通过回车逐一向下传递焦点的另一种巧妙方法(用缺省按钮来处理)。利用SetWindowLong和定时器轮回改变窗口的图标。如何实现对话框的部分收缩和展开。如何在主对话框程序启动时立即隐藏对话框的巧妙实现方式与精妙思想(不能直接在OnInitDialog处理。包括自定义消息的实现) 第十课: 如何制作属性页对话框和向导对话框,融合讲解组合框(如何调整组合框的大小)、列表框、单选按钮、复选按钮 等常用对话框控件的多种使用方法。如何限制用户在不满足设定的条件时切换到其他属性页和向导页。 第十一课: 如何修改MFC AppWizard向导生成的框架程序的外观,包括修改标题栏的多种方式及原理,修改图标、光标、背景的两种方法。如何给应用程序增加工具栏和删除工具栏按钮。定制状态栏,在CView中获取状态栏对象的几种方式,在状态栏中添加时钟显示(掌握CTime类和静态成员变量和函数的用法),鼠标坐标显示,进度条(主窗口产生后立即产生进度条的巧妙思想,不能在OnCreate函数中直接处理,要用到自定义消息的方法)。如何为窗口添加背景位图。 第十二课: 如何使用自定义画笔(颜色,线宽,线形),画刷(形状,颜色)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,窗口重绘原理,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。 第十三课: 如何让CDC上输出的文字、图形具有保持功能,元文件设备描述表的使用,CpaintDC与CClientDC的区别与应用,OnPaint与Ondraw在CView中的关系及实现内幕,集合类CObArray的使用,滚动窗口的实现,设备坐标与逻辑坐标的转换。 第十四课: 文件读写,CFileDialog,CFile,fstream,CArchive类的使用与比较。在应用中讲解const char *与char * const的区别,字符串的使用原理,如何使用CString的内存缓冲区。注册表与win.ini文件的读写方式及相关知识点。 第十五课: 如何利用CDocument类的串行化存储功能及MFC框架程序提供的文件打开与保存功能的实现原理。如何实现类对串行化的支持,CObArray的串行化实现内幕。MFC框架程序的几个主要类之间如何获得相互的指针引用。 第十六课: 网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP+Port相关的数据后,由驱动程序交给Socket,应用程序便可从该Socket中提取接收到的数据。网络应用程序就是这样通过socket进行数据的发送与接收的。UDP与TCP的工作原理与编写过程,包含如何在程序中连接库文件,telnet工具软件在编写网络程序中的用途 第十七课: 多线程程序的编写,如何通过互斥来保证多线程的安全。如何利用命名互斥保证只有一份程序实例被运行,结合多线程,网络编程,自定义消息,数据类型转换,如何改变文本框对回车的默认处理方式等技术编写网络聊天程序。 第十八课: 动态连接库程序的编写,库函数的两种输出方式。调用程序对动态连接库的静态连接与动态连接方式,如何利用工具查看动态连接库里的函数,C/C++连接规范中的命名转变问题分析,如何获得动态连接库里的函数 的指针,如何用typedef声明指向函数的指针类型。如何调试动态连接库。 第十九课: ActiveX控件的应用与工作原理,ActiveX控件的编写,如何为控件安排属性,方法,事件,属性页,持久性存储。如何注册控件与取消控件注册。如何测试与调试控件。 第二十课: 综合答疑与一些高深主题的介绍,包括如何安装系统钩子函数,dll连接库里的全局变量数据共享问题分析,ADO数据库编程,如何将数据库记录显示在Clistview网格中。 以上内容为作者对课件的初步整理,还有很多课堂上要讲到,但在本大纲中还没有被撰稿的内容,以后将逐渐完善本大大纲。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧