社区
界面
帖子详情
如何使用CBitmapButton,直接从文件读取位图
yan_zg
2006-12-07 03:02:44
CBitmapButton,可以读取BMP资源, 并显示为按钮的四个状态, 有没有办法直接将位图文件显示到按钮, 即如何将位图文件转换为BMP资源, 等待
...全文
431
14
打赏
收藏
如何使用CBitmapButton,直接从文件读取位图
CBitmapButton,可以读取BMP资源, 并显示为按钮的四个状态, 有没有办法直接将位图文件显示到按钮, 即如何将位图文件转换为BMP资源, 等待
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
covsno
2007-01-05
打赏
举报
回复
楼主给点分
covsno
2007-01-05
打赏
举报
回复
class BitmapButton1 : public CBitmapButton
BOOL BitmapButton1::LoadBitmaps(LPCTSTR lpszBitmapResource,
LPCTSTR lpszBitmapResourceSel ,
LPCTSTR lpszBitmapResourceFocus ,
LPCTSTR lpszBitmapResourceDisabled)
{
if(lpszBitmapResource==NULL)
return FALSE;
HBITMAP hbitmap=(HBITMAP)LoadImage(NULL,lpszBitmapResource,
IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
if(hbitmap==NULL)return FALSE;
if (m_bitmap.m_hObject)
m_bitmap.Detach();
m_bitmap.Attach(hbitmap);
::CloseHandle(hbitmap);
hbitmap=NULL;
hbitmap=(HBITMAP)LoadImage(NULL,lpszBitmapResourceSel,
IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
if(hbitmap!=NULL)
{
if (m_bitmapSel.m_hObject)
m_bitmapSel.Detach();
m_bitmapSel.Attach(hbitmap);
::CloseHandle(hbitmap);
hbitmap=NULL;
}
hbitmap=(HBITMAP)LoadImage(NULL,lpszBitmapResourceFocus,
IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
if(hbitmap!=NULL)
{
if (m_bitmapFocus.m_hObject)
m_bitmapFocus.Detach();
m_bitmapFocus.Attach(hbitmap);
::CloseHandle(hbitmap);
hbitmap=NULL;
}
hbitmap=(HBITMAP)LoadImage(NULL,lpszBitmapResourceDisabled,
IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);
if(hbitmap!=NULL)
{
if (m_bitmapDisabled.m_hObject)
m_bitmapDisabled.Detach();
m_bitmapDisabled.Attach(hbitmap);
::CloseHandle(hbitmap);
hbitmap=NULL;
}
return TRUE;
}
BOOL BitmapButton1::LoadBitmaps(UINT nIDBitmapResource,
UINT nIDBitmapResourceSel,
UINT nIDBitmapResourceFocus ,
UINT nIDBitmapResourceDisabled )
{
if(nIDBitmapResource==NULL)
return FALSE;
m_bitmap.LoadBitmap(nIDBitmapResource);
if(nIDBitmapResourceSel!=NULL)
m_bitmapSel.LoadBitmap(nIDBitmapResourceSel);
if(nIDBitmapResourceFocus!=NULL)
m_bitmapFocus.LoadBitmap(nIDBitmapResourceFocus);
if(nIDBitmapResourceDisabled!=NULL)
m_bitmapDisabled.LoadBitmap(nIDBitmapResourceDisabled);
return TRUE;
}
covsno
2007-01-05
打赏
举报
回复
...
yan_zg
2006-12-07
打赏
举报
回复
继续关注
xyh2007
2006-12-07
打赏
举报
回复
顶!!!!!!
Stefine
2006-12-07
打赏
举报
回复
提供个思路,看可行不?
仔细看看.rc文件,用notepad打开看
自己模仿实现 用ID与位图关联
也就是RC文件如何实现那个关联功能的,自己去实现
xdlous
2006-12-07
打赏
举报
回复
好像不行,
没有直接调用CBitmap的接口
期待高手
yan_zg
2006-12-07
打赏
举报
回复
本人初衷是, 使用CBitmapButton来完成状态效果, 但不想在资源中引入bmp, 希望直接读取位图文件, 用户可以方便修改, 而CBitmapButton只有一个ResourceID接口, 不知如何是好了
wsb_8224
2006-12-07
打赏
举报
回复
CBitmapButton* mbutton[5];
UINT mID;
mID=0x00ff;
int i;
for(i=0;i<5;i++)
{
mbutton[i]=new CBitmapButton;
mbutton[i]->Create(NULL,WS_CHILD|BS_OWNERDRAW|WS_VISIBLE,CRect(50+48*i,50,50+48*(i+1),98),this,mID+i);
mbutton[i]->LoadBitmaps(IDB_BITMAP1+i); //可以有4幅Bitmap,先在ResourceView中创建好。
mbutton[i]->RedrawWindow();
mbutton[i]->ShowWindow (SW_SHOW);
mbutton[i]->GetDlgCtrlID();//获得控件的ID。
}
/*RECT rect[5];
int i;
for(i=0;i<5;i++)
{
mbutton[i]->GetWindowRect(&rect[i]);
ScreenToClient(&rect[i]);
}*/可以得到这5个按钮的RECT。
yan_zg
2006-12-07
打赏
举报
回复
感谢几位, 如果能用上CBitmapButton::LoadBitmaps(), 就更好了
aa3000
2006-12-07
打赏
举报
回复
进来接分
xuzheng318
2006-12-07
打赏
举报
回复
hBmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),"d:\\check.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE ¦LR_CREATEDIBSECTION);
wsb_8224
2006-12-07
打赏
举报
回复
HBITMAP hBitmap = (HBITMAP)::LoadImage(NULL, 文件名, IMAGE_BITMAP, 0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
((CButton*)GetDlgItem(CButton控件ID))->SetBitmap(hBitmap);
mynamelj
2006-12-07
打赏
举报
回复
HBITMAP hBmp = (HBITMAP)::LoadImage(NULL, "c:\\aa.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
VS2013 MFC
使用
位图
美化对话框
本文介绍如何
使用
位图
在VS2013 MFC中美化对话框及按钮控件。首先通过在OnPaint消息函数中加载
位图
实现对话框背景的美化。其次介绍了如何为按钮控件添加四种状态的
位图
资源,以实现不同状态下的视觉效果。
MFC 图片按钮的实现
本文介绍了在MFC中实现图片按钮的三种方法:C
Bitmap
Button
、GDI+和C
Button
ST。C
Bitmap
Button
适合添加bmp
位图
,但其他图片可能有兼容性问题;GDI+方式需要设置透明并添加相关头文件和库;C
Button
ST在某些情况下会导致异常,需要调整按钮属性。三种方法各有特点,但作者最终选择了Qt进行项目开发。
图标对话框
本文介绍了在对话框上
使用
图像的四种方法,包括
使用
静态图像控件、C
Bitmap
Button
类
位图
按钮、重载OnPaint()函数以及
使用
Microsoft Forms 2.0 Image ActiveX控件。同时探讨了真彩色图像的替代方案。
螺旋千斤顶作业任务书(此份不含图纸).rar
螺旋千斤顶作业任务书(此份不含图纸).rar
KSHZ.rar
CAD缺少相关字体时,图纸中的文字会出现缺失或乱码。下载所需字体并复制到 AutoCAD 的 Fonts 文件夹后,即可正常显示。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章