社区
界面
帖子详情
求一将HICON句柄的资源保存为 ico文件的源码
zlhcc
2003-09-06 11:55:12
保存为 bmp 也行,但我保存为bmp的时候,背景总是黑色的,vckbase上徐景周的一个程序也是,保存为bmp图片后,北京也是黑色的。我要的是,颜色一点都不变。
...全文
76
6
打赏
收藏
求一将HICON句柄的资源保存为 ico文件的源码
保存为 bmp 也行,但我保存为bmp的时候,背景总是黑色的,vckbase上徐景周的一个程序也是,保存为bmp图片后,北京也是黑色的。我要的是,颜色一点都不变。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zlhcc
2003-09-09
打赏
举报
回复
多谢masterz
masterz
2003-09-08
打赏
举报
回复
void SaveIcon(HICON hIconToSave, LPCTSTR sIconFileName)
{
if(hIconToSave==NULL || sIconFileName==NULL)
return;
//warning: this code snippet is not bullet proof.
//do error check by yourself [masterz]
PICTDESC picdesc;
picdesc.cbSizeofstruct = sizeof(PICTDESC);
picdesc.picType = PICTYPE_ICON ;
picdesc.icon.hicon = hIconToSave;
IPicture* pPicture=NULL;
OleCreatePictureIndirect(&picdesc, IID_IPicture, TRUE,(VOID**)&pPicture);
LPSTREAM pStream;
CreateStreamOnHGlobal(NULL,TRUE,&pStream);
LONG size;
HRESULT hr=pPicture->SaveAsFile(pStream,TRUE,&size);
char pathbuf[1024];
strcpy(pathbuf,sIconFileName);
CFile iconfile;
iconfile.Open(pathbuf, CFile::modeCreate|CFile::modeWrite);
LARGE_INTEGER li;
li.HighPart =0;
li.LowPart =0;
ULARGE_INTEGER ulnewpos;
pStream->Seek( li,STREAM_SEEK_SET,&ulnewpos);
ULONG uReadCount = 1;
while(uReadCount>0)
{
pStream->Read(pathbuf,sizeof(pathbuf),&uReadCount);
if(uReadCount>0)
iconfile.Write(pathbuf,uReadCount);
}
pStream->Release();
iconfile.Close();
}
masterz
2003-09-08
打赏
举报
回复
用IPicture.Save
下面是保存bmp,同样的方法可以保存icon
void savebmp(CBitmap& bmp)
{
CPictureHolder picture;
picture.CreateFromBitmap((HBITMAP)bmp, NULL, TRUE);
LPPICTUREDISP pPictureDisp=picture.GetPictureDispatch();
pPictureDisp->Release(); // must be released
IStorage* pStg = 0;
hr = ::StgCreateDocfile(L"c:\\picttest",
STGM_SHARE_EXCLUSIVE |
STGM_CREATE |
STGM_READWRITE,
0, &pStg);
if(SUCCEEDED(hr))
{
IStream* pStream = 0;
hr = pStg->CreateStream(L"PICTURE",
STGM_SHARE_EXCLUSIVE |
STGM_CREATE |
STGM_READWRITE,
0, 0, &pStream);
if(SUCCEEDED(hr))
{
hr = pPictureDisp->SaveAsFile(pStream,
TRUE, // save mem copy
NULL);
pStream->Release();
}
pStg->Release();
}
pPictureDisp->Release();
}
SeekTruth
2003-09-08
打赏
举报
回复
CSDN上好像有ICO文件格式说明吧,自己取图像数据以后按格式保存试试.
zlhcc
2003-09-06
打赏
举报
回复
最好能存为icon.
下面的代码我可以很容易动态的的显示一个ico文件
HICON m_hIcon = (HICON)LoadImage( NULL, "c:\\11.ico",
IMAGE_ICON, 0, 0, LR_LOADFROMFILE );
HDC hdc = ::GetDC(m_hWnd);
::DrawIconEx(hdc, 50, 50, m_hIcon, 16, 16,
0, 0, DI_NORMAL );
::ReleaseDC(m_hWnd, hdc);
zlhcc
2003-09-06
打赏
举报
回复
哎,没有人会吗,我上codeguru上也去了,也是找不到答案
读取dll中的bmp,
ico
,wav
文件
(开源了)
新建一个Activex dll(当然标准的dll一样也可以),添加
资源
文件
,可以把你想放的bmp(多大
文件
都可以例子中放了个6mb的图片),
ico
,wav都可以放进去,记住一定要改名啊,不要用系统自动的名字。然后生成dll就可以...
windows程序设计 C语言之为窗口程序加入自定义的图标 Load
Ico
n() --加载一个图标
资源
VC++6.0...
该函数从与 hInstance 模块相关联的可执行
文件
中装入lp
Ico
nName指定的图标
资源
,仅当图标
资源
还没有被装入时该函数才执行装入操作,否则只获取装入的
资源
句柄
。 2、比如,在对窗口类初始化时,我们可以如下使用: ...
Load
Ico
n() --加载一个图标
资源
Load
Ico
n() --加载一个图标
资源
分类:VC++2012-04-16 21:294256人阅读评论(0)收藏举报 null工作 Load
Ico
n()函数原型如下: ? 1 2 3 4
H
ICO
N
Load
Ico
n( HINSTANCE ...
dialog对话框初始化 mfc_「弹出对话框」MFC系列 - 弹出一个模态对话框 - seo实验室...
【更多精彩教程,视频教学、
源码
分享请加入qq群:569268376】首先添加一个对话框
资源
:修改一下对话框的
资源
ID:IDD_MAIN_DLG,最好改一下
资源
ID名称,养成好的编程习惯。添加
资源
就会多生成两个
文件
:resource.h和H.....
用最快速度编写和发布的图标导出工具v1.0版
===========================================================================...因此
保存
ICO
文件
时会有些小问题。目前看来,有两种方法,可能需要把微软的C++的范例
源码
借鉴并引入到C#项目中,另一种是把该范例改...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章