抱歉,除了“高级自定义属性”之外,我不知道如何命名。如果我知道,我会先搜索它。
我正在处理使用第三方控件的遗留代码。
在VB6中,将该控件拖到窗体上时,可以在“属性”窗口中看到该控件支持的所有属性。如MarginLeft,MarginRight等等。
这没问题。
在“属性”窗口中,最顶层的属性通常是“(名称)”字段,它是控件的名称。
但是我正在使用的第三方控制,在“(名称)”之上还有另外两个“虚假属性”,即“(关于)”和“(自定义)”。
单击“(关于)”时,会出现一个显示公司信息的对话框。单击“(自定义)”时,将出现另一个显示更多属性的对话框。这些对话框显示在VB6中。
在“(自定义)”对话框中,您可以修改常规属性(与在“属性”窗口中直接修改相同)。你可以做得更多。还有更多属性不是普通属性(至少在“属性”窗口中找不到任何内容)。
保存此表单时,对于普通属性,所有内容都保存到.FRM文件中。例如,
Control1.MarginLeft = 5
Control1.Text = "I am a control"
但是,对于在(自定义)对话框中编辑的“高级属性”,它们不保存在.FRM中,它们以二进制格式保存在.FRX中。
例如,在(自定义)对话框中,您可以编辑名为“标题”的属性,其中包括此标题的文本,字体,重量,显示样式以及标题的许多类似属性。在.FRM中,它就像是, Control1.Caption = "frmForm1.frx":013F
Caption的所有文本和相关属性都以二进制格式保存在.FRX文件中。
请注意,普通属性窗口中没有Caption属性,您只能在“(自定义)”对话框中编辑它。
我的问题如下,
如何实现可以在VB6中显示的(自定义)对话框?
如何让VB6的属性窗口显示(关于)和(自定义)?
如何告诉VB6标题属性不会显示在属性窗口中,但您可以直接在代码中使用Control1.Caption = xxxx.frx:offset
?
如何告诉VB6这个Caption属性应该保存在.FRX中,以及如何告诉VB6数据的大小,以便VB6可以自动管理偏移?
如何通过VB6自动加载数据,以便在(自定义)对话框中显示正确的值?
据我所知,.frx格式是秘密,对于标准控件,如二进制(图像),列表和文本,有很多人正在挖掘各种.frx。我很好奇第三方如何控制利用.frx,第三方控制是否应该定义自己的.frx格式?包括例如,前面有多少字节用于Length(或者根本没有长度字段,它是固定长度),style1有多少字节,style2有多少字节等等。
非常感谢。如果您知道这个“高级属性”的名称是什么,请告诉我姓名,我可以自己搜索。
我试图搜索高级属性,但没有真正得到我想知道的任何内容。
答案 0 :(得分:1)
frx文件用于二进制或其他非基本数据类型。 frm将存储简单属性。您需要做的是挂钩UserControl事件WriteProperties和ReadProperties。您不需要知道后备存储的位置(frm vs frx)。,您只需要访问PropBag来读取和写入数据。
Google是您查找文档的朋友:
https://msdn.microsoft.com/en-us/library/aa242140(v=vs.60).aspx
或有关该主题的其他信息:
祝你好运!