VC大虾请进。关于VC做的ActiveX控件的属性的问题。

Pizza 2000-06-28 11:14:00
我在VC中做了个OCX控件。在VB中使用。
但为何我在设计时,在属性列表中修改的属性值不能在执行时反映。
比如:我设了port属性为1, 但执行时port实行仍为0。

另外,在做属性页时,如何处理"应用"按纽的事件。

还有一个问题,一直没有人回答。
我希望我的控件在设计时不被改变大小,想VB中的Timer控件一样。如何实现?
...全文
175 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
longx 2000-07-05
  • 打赏
  • 举报
回复
在控件中加入成员变量保存属性,你需要在控件的实现文件的DoPropExchange函数
这样你的属性才有用。
例;
void CDataComboxCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX);

// TODO: Call PX_ functions for each persistent custom property.
PX_String(pPX,_T("DataSourceName"),m_dataSourceName,_T(""));
PX_String(pPX,_T("FieldName"),m_fieldName,_T(""));
PX_String(pPX,_T("TableName"),m_tableName,_T(""));
PX_String(pPX,_T("UserName"),m_userName,_T(""));
PX_String(pPX,_T("UserPassword"),m_userPassword,_T(""));
}
上面的例子用到了5个属性。

2。处理Apply 按钮,有两种办法,
1。)加入命令消息映射入口:ID为 ID_APPLY_NOW //MFC保留
ON_COMMAND(ID_APPLY_NOW , MyFunc) //手工加入
2。)重载虚函数OnApply()

另外:当属性改变后应调用函数SetModified()使Apply按钮有效
Apply方法实现代码中一般应调用成员函数PressButton()改变
Apply按钮的有效状态

3. 需要处理WM_SIZE消息,控件窗口的控制与一般独立的应用程序处理
一样。




sunhongbo 2000-07-04
  • 打赏
  • 举报
回复
首先,你要添加你的属性,然后在你的ctrl类的相关属性的changed()中加入SetModifiedFlag()和InvalidateControl(),来使用你的属性.
如果有问题,请和我联系,最好将你的代码寄过来.email:yfms@263.net
yfms@hl.cninfo.net
sutao 2000-06-30
  • 打赏
  • 举报
回复
关注.
szyifan 2000-06-30
  • 打赏
  • 举报
回复
你应该对每一个属性添加一个成员变量,用来保存属性的值
成员变量的类型应与属性的类型相配
Pizza 2000-06-30
  • 打赏
  • 举报
回复
上面各位大虾说的方法我都用了。
但还是不行。
谁能提供一个例子?万分感谢!
ZPoint 2000-06-30
  • 打赏
  • 举报
回复
在ActiveX中添加属性时会产生消息影射,你必须处理影射函数。
如添加m_strFile,则自动生成OnStrFileChanged()函数,然后。。。
songyl 2000-06-30
  • 打赏
  • 举报
回复
我也想知道。

3,245

社区成员

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

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