高手请进!困扰我多日的大难题!谢谢相助!

quchunyu 2001-12-05 10:35:46
正在做一个VBA的宿主程序,现在需要为内嵌的VBE环境中的PropertiesWindow做一个Custom Property Value Picker,却一直无从下手!
  下面我把问题详细说明一下,恳请各位大侠帮忙,或指引相关资料及连接!
  我所说的VBA宿主程序,是指集成了微软的VBE环境、支持VBA(Visual Basic for Application)语言的程序,就像微软公司的Office系列中的WinWord.exe和Excel.exe一样。VBA宿主程序可以在运行时,让用户使用VBA语言编写自己的宏,制作自己的窗体,构造自己的VB类。而且,VBA宿主程序还可以把自己内部的元件对象按照一定的体系暴露给用户,供用户的VBA代码来支配(调用方法、改变属性、响应事件),这样,就可以把程序内部的各种对象用VBA代码粘连起来,并为用户提供最大可能的“可定制化”。
  我的程序对VBE的集成,是通过使用微软的VBA SDK以MFC、ATL混合COM编程的方式实现的,其中集成相关的工作,已接近完成,却遇到了这个新的问题。
  在普通的Visual Basic的编程环境下,以及VBA宿主程序的VBE环境下(就是用户为宿主程序编写宏代码或构造窗体的环境),都有一个PropertiesWindow(属性窗),用户可以在这个窗口的Grids中修改被选择对象的属性,当用户修改的属性的值是字符型时,可以在格子中的Edit中完成;当用户修改的属性的值是布尔型时,属性窗会在属性值对应的格子下面拉出一个下拉式列表框供用户选择;当用户修改的属性的值是颜色型时,属性窗会在属性值对应的格子下面拉出一个颜色选择框(可能是个多Tab页的模式对话框)供用户选择;属性窗出现的这些为用户提供对属性值进行方便修改的元素被称为是Property Value Picker。
  现在我的问题是,如何让VBE的属性窗(PropertiesWindow)使用自己做出的Picker,以方便用户对某一些特定类型的属性的修改,如对IP地址型的属性值我需要MASK;对日期型的属性值,我需要下拉出一个日历控件;等等。。。
  解决了以上问题,不仅对我所做的这类程序有帮助,对ActiveX控件的设计者也是有利的,因为这项技术可以使VB程序员更好更方便的使用你的控件。


...全文
32 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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