如何在对话框上贴图?在线等!!!!!!

alexmayer 2005-05-12 04:38:56
用红、绿两个指示灯图像表示设备的运行工况,如何在对话框贴图(至少有40个小图)?实时刷新显示呢?
...全文
375 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
alexmayer 2005-05-13
  • 打赏
  • 举报
回复
up
alexmayer 2005-05-12
  • 打赏
  • 举报
回复
vc300z() :
建一个图片控件对象m_map能指定显示的位置吗?
alexmayer 2005-05-12
  • 打赏
  • 举报
回复
aoosang(智慧的鱼) ( ):
你的意思是:如果有red.jpg、green.jpg两个文件,在对话框中
直接调用ShowJpgGif就可以了?
vc300z 2005-05-12
  • 打赏
  • 举报
回复
建一个图片控件对象m_map

HBITMAP hBitmap=::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP1));
m_map.SetBitmap(hBitmap);
aoosang 2005-05-12
  • 打赏
  • 举报
回复

BOOL CCaptureDlg::ShowJpgGif(CDC *pDC, CString strPath, int x, int y)
{
IStream *pStm;

CFileStatus fstatus;

CFile file;

LONG cb;

//打开文件并检测文件的有效性

if (file.Open(strPath,CFile::modeRead)&&

file.GetStatus(strPath,fstatus)&&

((cb = fstatus.m_size) != -1))

{

HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);

LPVOID pvData = NULL;

if (hGlobal != NULL)

{

pvData = GlobalLock(hGlobal);

if (pvData != NULL)

{

file.ReadHuge(pvData, cb);

GlobalUnlock(hGlobal);

CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);

}

}

}

else

{

return false;

} //打开文件结束



//显示JPEG和GIF格式的图片,GIF只能显示一帧,还不能显示动画,

//要显示动画GIF请使用ACTIVE控//件。

IPicture *pPic;

//load image from file stream

if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))

{

OLE_XSIZE_HIMETRIC hmWidth;

OLE_YSIZE_HIMETRIC hmHeight;

pPic->get_Width(&hmWidth);

pPic->get_Height(&hmHeight);

double fX,fY;

//get image height and width

//fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);

//fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);
fX=120;fY=100;//l
//use render function display image

if(FAILED(pPic->Render(*pDC,x,y,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))

{

pPic->Release();

return false;

}

pPic->Release();

}

else

{

return false;

}

return true;


}
aoosang 2005-05-12
  • 打赏
  • 举报
回复
注意1说的只是bmp,如果是gif,jpg,flash等格式的文件图片,可以用ipacture类,
aoosang 2005-05-12
  • 打赏
  • 举报
回复
同意1楼的做法
alexmayer 2005-05-12
  • 打赏
  • 举报
回复
贴上简单的代码行吗?我是菜鸟的说。
dongfa 2005-05-12
  • 打赏
  • 举报
回复
可以动态创建40个Static控件,类型是位图.
然后调用CStatic ::SetBitmap即可.

或者在资源里直接拖40个,别忘了改变它的ID.

15,979

社区成员

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

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