vc++中的按钮如何用读取路径的方法来添加位图

guicaizhou 2011-04-15 10:15:10
如题
...全文
129 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
guicaizhou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 visualeleven 的回复:]
C/C++ code
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, _T("F:\\11.bmp"), IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
ASSERT(hBitmap);
CButton* pButton ……
[/Quote]
还想请教一下 一个界面有多个按钮怎么办呢
guicaizhou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 visualeleven 的回复:]
C/C++ code
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, _T("F:\\11.bmp"), IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
ASSERT(hBitmap);
CButton* pButton ……
[/Quote]

貌似可以了
Eleven 2011-04-15
  • 打赏
  • 举报
回复
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, _T("F:\\11.bmp"), IMAGE_BITMAP, 0, 0, 
LR_LOADFROMFILE | LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
ASSERT(hBitmap);
CButton* pButton = (CButton*)GetDlgItem(IDC_BUTTON1);
ASSERT(pButton);
pButton->ModifyStyle(0, BS_BITMAP);
pButton->SetBitmap(hBitmap);
guicaizhou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 fengrx 的回复:]
给一段例子代码:

C/C++ code

//画图标
void CXPButton::DrawIcon(CDC* pDC,DWORD IconID,CRect Rect)
{
// Rect.DeflateRect(3,3);
//求图标的句柄
if(fhIcon)
::DestroyIcon(fhIcon);
fhIcon=N……
[/Quote]

这个是用路径添加位图的 吗
怎么看不到位图的路径啊
fengrx 2011-04-15
  • 打赏
  • 举报
回复
给一段例子代码:

//画图标
void CXPButton::DrawIcon(CDC* pDC,DWORD IconID,CRect Rect)
{
// Rect.DeflateRect(3,3);
//求图标的句柄
if(fhIcon)
::DestroyIcon(fhIcon);
fhIcon=NULL;
if(fIconNameID==ICON_NAME)//如果是名称
{
#ifdef _WIN32_WCE
ExtractIconEx(fIconName,0,&fhIcon,NULL,1);
#else
fhIcon=(HICON)::LoadImage(NULL,fIconName,IMAGE_ICON,0,0,LR_LOADFROMFILE );
#endif
}
else if(fIconNameID==ICON_ID)//如果是ID
{
HINSTANCE fhInstResource=AfxFindResourceHandle(MAKEINTRESOURCE(IconID),RT_GROUP_ICON);
fhIcon=(HICON)::LoadImage(fhInstResource,MAKEINTRESOURCE(IconID),IMAGE_ICON,0,0,0);
}
//求要显示的位置
int fSideLeftRight=(Rect.Width()-fBitmapIconSize.cx)/2;
Rect.left+=fSideLeftRight;
Rect.right-=fSideLeftRight;
int fSideTopBottom=(Rect.Height()-fBitmapIconSize.cy)/2;
Rect.top+=fSideTopBottom;
Rect.bottom-=fSideTopBottom;
//显示图标
int fOldMode=pDC->SetBkMode(TRANSPARENT);
pDC->DrawIcon(Rect.TopLeft(),fhIcon);
pDC->SetBkMode(fOldMode);
}
fengrx 2011-04-15
  • 打赏
  • 举报
回复
写一个类,集成CButton,如:CXPButton : public CButton

在调用此按钮的初始化代码中:
CXPButton::SetButtonStyle(BS_OWNERDRAW | WS_TABSTOP);
Invalidate();//开始画


在CXPButton的重载方法DrawItem中写对应的显示图片的代码:
CDC* fDC=CDC::FromHandle(lpDrawItemStruct->hDC); //得到DC,用来画图和输出文本
CRect fButtonRect=lpDrawItemStruct->rcItem; //窗口矩形,得到按钮的窗口

有了DC和窗口矩形,还有不可以做的事吗??
guicaizhou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 visualeleven 的回复:]
CButton::SetBitmap();
LoadImage(...,IMAGE_BITMAP, ...);
[/Quote]

能否详细点
Eleven 2011-04-15
  • 打赏
  • 举报
回复
CButton::SetBitmap();
LoadImage(...,IMAGE_BITMAP, ...);
guicaizhou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 winning11xuhao 的回复:]
OnOpen1()就是你添加的按钮的那个函数,点击按钮就走这个函数
[/Quote]

?? 我是想界面加载的时候 按钮上就能通过路径 加载位图
winning11xuhao 2011-04-15
  • 打赏
  • 举报
回复
OnOpen1()就是你添加的按钮的那个函数,点击按钮就走这个函数
guicaizhou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ouyh12345 的回复:]
CBitmapButton::LoadBitmaps
[/Quote]

.LoadBitmaps("resource\\隐藏按下.bmp");
是放在OnPaint 里面
还是放在OnInitDialog 里面
guicaizhou 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 winning11xuhao 的回复:]
void CDetecterrorDlg::OnOpen1()
{
// TODO: Add your control notification handler code here
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"BMP FILES(*.BMP)|*.bmp|All Files(*……
[/Quote]

OnOpen1()
放在什么地方啊

winning11xuhao 2011-04-15
  • 打赏
  • 举报
回复
void CDetecterrorDlg::OnOpen1()
{
// TODO: Add your control notification handler code here
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"BMP FILES(*.BMP)|*.bmp|All Files(*.*)|*.*||",AfxGetMainWnd());
CString strPath;
if(dlg.DoModal() == IDOK)
{
strPath = dlg.GetPathName();
CFile file(strPath,CFile::modeRead);
m_cdib.Read(&file);
file.Close();
Invalidate();
}
}

上面的代码是我用cdib类读取位图的操作步骤 大概的步骤是一样的 如果你不是用cdib的话只要把m_cdib.Read(&file);换成你读文件的语句就可以了
ouyh12345 2011-04-15
  • 打赏
  • 举报
回复
CBitmapButton::LoadBitmaps

15,978

社区成员

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

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