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中画的三角形。
请高手指教

  VB可对图片框的Picture属性使用LoadPicture 函数来实现清除里面的所有内容。
  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控件让其显示图片怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

picture control添加图片

怎样清除VB中picture控件中插入的jpg图片

MFC中通过Picture control控件显示选中的图片

MFC中如何在一个picture 控件中显示一张opencv读入的图片?

MFC VC++:Picture Control 无法加载 PNG 图像

数据库存入图片成功但显示不出来