vc++ dlg中加picture控件让其显示图片怎么做?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc++ dlg中加picture控件让其显示图片怎么做?相关的知识,希望对你有一定的参考价值。
详细点的 在哪定义
我不知道你说的依次播放是什么意思?动态自己播放吗?那需要添加onTime()函数控制时间,如果是自己点击的话,主要的步骤是:----------------------------------------
1,在对话框下创建一个picture控件用来显示图片,假设ID为IDC_STATIC_SHOW;
2,读取文件夹的代码为:
CFileDialog dlg(TRUE, "*.BMP", NULL, NULL,"位图文件(*.BMP)|*.bmp;*.BMP|");
CString strFileName;
CFile file;
if (dlg.DoModal() == IDOK)
strFileName = dlg.GetPathName();
if(!file.Open(strFileName, CFile::modeRead))
return;
BITMAPFILEHEADER bmfHeader;
nFileLen = file.GetLength();
dwDibSize = nFileLen - sizeof(BITMAPFILEHEADER);
if (m_pDib != NULL)
delete[] m_pDib;
m_pDib = NULL;
m_pDib = new unsigned char[dwDibSize];
if (file.Read((LPSTR)&bmfHeader, sizeof(bmfHeader)) != sizeof(bmfHeader))
return;
if (bmfHeader.bfType != ((WORD)(\'M\' <<8) | \'B\'))
return ;
if (file.Read(m_pDib, dwDibSize) != dwDibSize)
return ;
m_bmpInfoHeader = (BITMAPINFOHEADER*)m_pDib;
lHeight = m_bmpInfoHeader->biHeight; //图像长
lWidth = m_bmpInfoHeader->biWidth; //图像宽
lBitCount = m_bmpInfoHeader->biBitCount; //图像位数
switch(lBitCount)
case 1:
NumColor = 2;
break;
case 4:
NumColor = 16;
break;
case 8:
NumColor = 256;
break;
case 24:
NumColor = 0;
break;
default:
return;
m_pDibBits = m_pDib + sizeof(BITMAPINFOHEADER) + NumColor * sizeof (RGBQUAD);
3,显示图片的代码为:
CDC *pDC;
CRect rect;
CWnd *pWnd = GetDlgItem(IDC_STATIC_SHOW);
pWnd->GetClientRect(&rect);
pDC = pWnd->GetDC();
SetStretchBltMode(pDC->m_hDC,HALFTONE);//防止自适应窗口图像显示失真
StretchDIBits(pDC->m_hDC,rect.left, rect.top, rect.right, rect.bottom, 0, 0,
lWidth, lHeight, m_pDibBits, (BITMAPINFO*)m_bmpInfoHeader, BI_RGB, SRCCOPY);
===============
这些代码怎么添加你应该知道吧? 参考技术A 直接用GDI+
温州花样印象创意设计工作室 www.wzhyyx.com q/840834820 参考技术B 不明白
怎样清除VB中picture控件中插入的jpg图片
我在窗体中设置了两个按钮.当点击command1时就在picturebox中插入图片,同时不显示我在picturebox中画的三角形。当点击command2时就清除先插入的图片然后显示我在picturebox中画的三角形。
请高手指教
PictureBox 控件
PictureBox 控件可以显示来自位图、图标或者元文件,以及来自增强的元文件、JPEG 或 GIF
文件的图形。如果控件不足以显示整幅图象,则裁剪图象以适应控件的大小。
Picture 属性
返回或设置控件中要显示的图片。对于 OLE 容器控件,在设计时不可用在运行时为只读。
LoadPicture 函数
将图形载入到窗体的 Picture 属性、PictureBox 控件或 Image 控件。
Cls 方法
清除运行时 Form 或 PictureBox 所生成的图形和文本。
以下代码体现上述各知识点的应用:
Private Sub Command1_Click()
Picture1.Picture = LoadPicture("") \' 可删除图片框所有内容
End Sub
Private Sub Command2_Click()
Picture1.Cls \'只能清除绘制的图
End Sub
Private Sub Form_Load()
Picture1.Picture = LoadPicture("C:\\Sunset.jpg")
Picture1.ForeColor = QBColor(15)
Picture1.Print Now
End Sub 参考技术A Private Sub Command1_Click()
Picture1 = LoadPicture("图片文件")
End Sub
Private Sub Command2_Click()
Picture1 = Nothing
Picture1.AutoRedraw = True
Picture1.Line (100, 100)-(200, 200)
Picture1.Line (200, 200)-(100, 300)
Picture1.Line (100, 300)-(100, 100)
End Sub本回答被提问者采纳 参考技术B 绘图清除
Picture1.Cls
图片清除
Picture1.Picture = LoadPicture("")
以上是关于vc++ dlg中加picture控件让其显示图片怎么做?的主要内容,如果未能解决你的问题,请参考以下文章
MFC中通过Picture control控件显示选中的图片
MFC中如何在一个picture 控件中显示一张opencv读入的图片?