如何在List空间的某一行的某一列上画一幅位图??求救高手了

NewLocksmith 2005-06-24 01:25:55
位图不是*.bmp文件,即不能通过SetImageList的方法实现,要画的位图是一个HBITMAP,我找遍了都没有发现有这样做的。
...全文
83 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
NewLocksmith 2005-07-15
  • 打赏
  • 举报
回复
大家都觉得这个应该可以实现,但是为什么不行呢?
NewLocksmith 2005-06-27
  • 打赏
  • 举报
回复
我的内存中有很多个位图,保存到磁盘,再用setimagelist的方法显然不可取。
NewLocksmith 2005-06-27
  • 打赏
  • 举报
回复
哪位高手可否给出个例子,我是初学VC,我觉得应该可以在list里面自己画,但是就是不知道该什么操作。哪位大哥帮忙给出一个例子源码?
icansaymyabc 2005-06-24
  • 打赏
  • 举报
回复
方法一:把你的 HBITMAP 保存到硬盘上作为一个临时的bmp文件。再用SetImageList方法。

方法二:用复杂的算法求出每一个ListItem的位置,自己把位图画上去。并监视List的消息,随时更新你的位图位置。
goodboyws 2005-06-24
  • 打赏
  • 举报
回复
HBITMAP hBitmap;
CImageList::Add(CBitmap::FromHandle(hBitmap), RGB(0, 0, 0));
goodboyws 2005-06-24
  • 打赏
  • 举报
回复
这个函数可以从一个非位图文件得到一个位图句柄
HBITMAP LoadAnImage(
LPCTSTR FileName // image to load
)
{
// Use IPicture stuff to use JPG / GIF files
IPicture* p;
IStream* s;
HGLOBAL hG;
void* pp;
FILE* fp;
if (FileName == NULL || _tcscmp(FileName, "") == 0)
return NULL;

// Read file in memory
fp = fopen(FileName,"rb");
if (!fp)
return NULL;

fseek(fp,0,SEEK_END);
int fs = ftell(fp);
fseek(fp,0,SEEK_SET);
hG = GlobalAlloc(GPTR,fs);
if (!hG)
{
fclose(fp);
return NULL;
}
pp = (void*)hG;
fread(pp,1,fs,fp);
fclose(fp);

// Create an IStream so IPicture can
CreateStreamOnHGlobal(hG,false,&s);
if (!s)
{
GlobalFree(hG);
return NULL;
}

OleLoadPicture(s,0,false,IID_IPicture,(void**)&p);

if (!p)
{
s->Release();
GlobalFree(hG);
return NULL;
}
s->Release();
GlobalFree(hG);

HBITMAP hB = 0;
p->get_Handle((unsigned int*)&hB);

// Copy the image. Necessary, because upon p's release,
// the handle is destroyed.
HBITMAP hBB = (HBITMAP)CopyImage(hB,IMAGE_BITMAP,0,0,
LR_COPYRETURNORG);

p->Release();
TRACE2("\nFILE: %s, HANDLE: 0x%x", FileName, (UINT)hBB);
return hBB;
}
jerry 2005-06-24
  • 打赏
  • 举报
回复
自绘的ListView
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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