只剩这10分了:图片按钮的问题(在线等待,谢谢!)

coderwu 2003-09-22 11:16:13
CString szBmpPath;
szBmpPath="E:\\Pro\\BmpButton\\Debug\\Exit.bmp";

if (m_bitMap.LoadBitmap(szBmpPath)!=0)
{
AfxMessageBox("载入图片成功");
}
else
{
AfxMessageBox("载入图片失败");
return;
}
m_hBitmap=(HBITMAP)m_bitMap.GetSafeHandle();
m_ctlButton.SetBitmap(m_hBitmap);

为什么老是提示载入图片失败?但是E:\Pro\BmpButton\Debug\Exit.bmp这张图片是存在的。如果是m_bitMap.LoadBitmap(IDB_BITMAP)就加载成功并能够显示。
麻烦DX指教,谢谢!
...全文
40 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuq0 2003-09-22
  • 打赏
  • 举报
回复
i think so ,that's resource
coderwu 2003-09-22
  • 打赏
  • 举报
回复
哦,如果我想加载程序外部磁盘上的一个图片来显示在按钮上(位图按钮)该如何实现呢?
谢谢!
rockersz 2003-09-22
  • 打赏
  • 举报
回复
直接用LoadImage做
李马 2003-09-22
  • 打赏
  • 举报
回复
那个并不是指定图片的路径,在早期Windows程序设计的时候,资源也会以字符串的形式存储在资源文件里的,比如"MYBMP"这样的,你可以自己试一试。
coderwu 2003-09-22
  • 打赏
  • 举报
回复
但是MSDN上是这样说的:
CBitmap::LoadBitmap
BOOL LoadBitmap( LPCTSTR lpszResourceName );
BOOL LoadBitmap( UINT nIDResource );

Return Value
Nonzero if successful; otherwise 0.

Parameters
lpszResourceName
Points to a null-terminated string that contains the name of the bitmap resource.

nIDResource
Specifies the resource ID number of the bitmap resource.

这里的意思是不是:
BOOL LoadBitmap( LPCTSTR lpszResourceName );这个是指定图片路径
BOOL LoadBitmap( UINT nIDResource );这个是指定资源

coderwu 2003-09-22
  • 打赏
  • 举报
回复
但是MSDN上是这样说的:
CBitmap::LoadBitmap
BOOL LoadBitmap( LPCTSTR lpszResourceName );
BOOL LoadBitmap( UINT nIDResource );

Return Value
Nonzero if successful; otherwise 0.

Parameters
lpszResourceName
Points to a null-terminated string that contains the name of the bitmap resource.

nIDResource
Specifies the resource ID number of the bitmap resource.

这里的意思是不是:
BOOL LoadBitmap( LPCTSTR lpszResourceName );这个是指定图片路径
BOOL LoadBitmap( UINT nIDResource );这个是指定资源

李马 2003-09-22
  • 打赏
  • 举报
回复
LoadBitmap是针对Resource而言的,你觉不觉得。
hardstudylulin 2003-09-22
  • 打赏
  • 举报
回复
CButton派生一个子类,重载它的虚函数DrawItem,自己重新处理,比较麻烦。但可以做出真彩色效果
woaini5994 2003-09-22
  • 打赏
  • 举报
回复
CButtonST 好些地方有
lhb_780902 2003-09-22
  • 打赏
  • 举报
回复
你可以从CButton派生一个子类,然后重载它的虚函数DrawItem来自己处理,这样做出来的可能会好一些
coderwu 2003-09-22
  • 打赏
  • 举报
回复
To ihb_780902:
感谢!
我现在就是这样做的,但是发现这样做出来的按钮不好看,呵呵。不像设置按钮属性为Owner draw后AutoLoad(资源名称)这样做出来好看。

lhb_780902 2003-09-22
  • 打赏
  • 举报
回复
CString szBmpPath;
szBmpPath="E:\\Pro\\BmpButton\\Debug\\Exit.bmp";
HBITMAP hbm = LoadImage(NULL, szBmpPath, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
if (hbm){
m_btn_bmp.SetBitmap(hbm);
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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