关于ACTIVEX控件颜色属性

rroamer 2008-10-20 11:34:47
我写了一个ACTIVEX,用如下代码增加颜色属性:

// TODO: Add more property pages as needed. Remember to increase the count!
BEGIN_PROPPAGEIDS(CTESTACTIVEXCtrl, 2)
PROPPAGEID(CTESTACTIVEXPropPage::guid)
PROPPAGEID(CLSID_CColorPropPage)
END_PROPPAGEIDS(CTESTACTIVEXCtrl)



然后编译成功,在VB2005里面调用这个控件的时候,点右键可以看到颜色属性,但是无法更改颜色,请问是怎么回事?哪里做错了?
还需要增加什么吗?
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tinary3v0 2008-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vcPlayer 的回复:]
就这点代码?你绘制的时候用到了这个颜色属性吗?是“设计”时还是“运行”时?
[/Quote]
就是啊,去看看孙鑫老师的VC教程吧。
http://v.youku.com/v_playlist/f1722467o1p17.html
可能需要安装优酷的播放器。
yxz_lp 2008-10-20
  • 打赏
  • 举报
回复
添加固有属性
PROP_ENTRY("BackColor", DISPID_BACKCOLOR, CLSID_StockColorPage)
在ondraw中

//获得背景色,并以背景色画刷fill控件。
// Create the background color brush only when necessary
if( m_backBrush == 0 ) {
OLE_COLOR ocBack;
HRESULT hr = get_BackColor( &ocBack ); // Get the background color
ATLASSERT( SUCCEEDED( hr ) );

COLORREF crBack; // Translate the color to a COLORREF
hr = ::OleTranslateColor( ocBack, NULL, &crBack );
ATLASSERT( SUCCEEDED( hr ) );

m_backBrush = ::CreateSolidBrush( crBack ); // Create the background brush
ATLASSERT( m_backBrush != 0 );
}


rroamer 2008-10-20
  • 打赏
  • 举报
回复
我就希望在VB或者其他程序里面使用这个ACTIVEX的时候能够随时更改颜色,,,
请问改怎么做?
vcPlayer 2008-10-20
  • 打赏
  • 举报
回复
就这点代码?你绘制的时候用到了这个颜色属性吗?是“设计”时还是“运行”时?
scq2099yt 2008-10-20
  • 打赏
  • 举报
回复
希望别的程序能够改变颜色就应该在你的程序中加上改变颜色的属性代码,然后提供接口传入颜色参数。

3,245

社区成员

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

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