我写了个atl com的库,在vb中可以通过添加类型库的方法调用,但是我想能够做成控件的形式,就是在组件栏中加入我写的组件,这个组件有一个图标,可以用鼠标拖动组件到vb的form里面去,拖过去的类似于一个label,label可以控制大小,运行时不可见,这样调用起来就比较方便,不过不知道从何下手,请高手指点。具体的问题:
比如如何在控件里加载一个图片,添加组件到控件栏中显示的是一个有图标的控件
比如如何在控件里加载一个图片,添加组件到控件栏中显示的是一个有图标的控件
解决方案 »
- OnNewDocument 不自动调用,必须要我点击菜单->新建的时候再调用,如何做?
- win7 + IE9,网页里的Activex必须要ie9的兼容模式才能正常运行,怎么办?
- SendRequest 操作超时 问题,请大侠帮助解决,谢谢!
- 有没有用vc连过Watcom SQL 4.0数据库的,插入8万条数据后速度奇慢,什么原因?
- 【散分】信誉分回复.高兴^_^ 200分散分
- 200分送一人只要你能提供---请进
- mci_seek如何用,请大家给个例子.
- 如何显示treectrl中的ITEM的文本?请看一下我的代码
- VC里设定系统时间的函数是什么?
- 关于面板按键和触摸屏按键操作能执行相同的功能软件的开发
- 定期删除数据库数据?
- 使用IDispachEx接口向window的成员赋值返回成员未找到
HRESULT OnDraw(ATL_DRAWINFO& di)
{
HBITMAP bitmap = LoadBitmap( ATL::_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE( IDB_TEST1 ) );
HDC hdc = di.hdcDraw;
HDC hMemDC = ::CreateCompatibleDC( hdc );
SelectObject(hMemDC,bitmap);
::BitBlt( hdc, 0, 0, 32, 32, hMemDC, 0, 0, SRCCOPY );
::DeleteObject( bitmap );
::DeleteDC( hMemDC ); return S_OK;
}
如果你要固定控件的大小,如Timer控件,就在构造函数中加入如下代码:
test1()
{
m_bWindowOnly = true;
// Don't allow a resize
m_bAutoSize = true;
// Set the initial size
SIZEL size = {32, 32};
AtlPixelToHiMetric( &size, &m_sizeExtent );
// Make sure the natural extent is the correct size too
m_sizeNatural = m_sizeExtent;
}说明:以上代码都是创建一个不可变大小(位图32*32大小)的代码。但如何才能在“添加组件到控件栏中显示的是一个有图标的控件”中显示图片,我有时创建一个会有,有时创建一个又没,刚学做COM,估计跟你一样,搜问题解决就到这里了,把知道的说出来,希望对你有所帮助?!也求知道的“添加组件到控件栏中显示的是一个有图标的控件”的同仁能说一下,谢谢!