根据这个句柄可以得到一个HBITMAP,然后就可以得到这个icon的Data,然后就可以把这些Data存入char数组,其实,不用存了 :)而且这个过程是可异de
解决方案 »
- sql查询语句中使用变量出问题
- 弱问如何在程序中集成windows的或google的桌面搜索或如何实现文件内容搜索功能?
- 寻找厦门地区的 vc 兼职高手
- CListCtrl怎么出现表格状的边框?
- 关于邮件服务器的经验问题!
- 在vc中如何利用ie打开一个指定的网页?
- CListBox
- 我需要实现这个接口吗?
- 一个小图片的位置在大图片的中间,都是static控件,如何让小图片更新的时候显示在前面?
- 请问,在多线程程序中频繁调用函数malloc(),free()安全吗?
- Add 到 工程中的已注册组件无法使用。说不是一个OLE Control。但是插入对话框的同样组件就可以用相同的方法使用。why?
- 想写邮件服务器
生成:CreateIconIndirect它们里面都有一个参数ICONINFO,包含了Icon的所有相关信息。想怎么改就怎么改
LPBYTE lpBits=NULL;
long size=0;
HICON hicon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1));
PICTDESC pdiconsrc;
pdiconsrc.cbSizeofstruct=sizeof(PICTDESC);
pdiconsrc.icon.hicon=hicon;
pdiconsrc.picType=PICTYPE_ICON;
IPicture* pIPicture=NULL;
HRESULT hr;
IDispatch* pDisp=NULL;
hr = OleCreatePictureIndirect(&pdiconsrc,
IID_IDispatch,
TRUE,
(void**)&pDisp);
if(SUCCEEDED(hr))
{
hr = pDisp->QueryInterface(&pIPicture);
if(SUCCEEDED(hr))
{
lpBits = (LPBYTE) GlobalAlloc(GMEM_MOVEABLE|GMEM_NODISCARD, 64*1024);
IStream* pStream;
CreateStreamOnHGlobal(lpBits,false,&pStream);
hr=pIPicture->SaveAsFile(pStream,false,&size);
if(pStream)
pStream->Release();
if(SUCCEEDED(hr)&&size>0)
{
//you can use
char* pchar=(char*)lpBits;
//icon is stored in pchar, length is size
//to create another hicon
//use OleLoadPicture(pStream,...)
//IPicture::get_Handle to get the icon handle
}
pIPicture->Release();
if(lpBits)
GlobalFree((HGLOBAL)lpBits);
}
pDisp->Release();
}