WEB开发网
开发学院软件开发VC VC中如何在对话框上显示位图 阅读

VC中如何在对话框上显示位图

 2008-11-13 19:30:18 来源:WEB开发网   
核心提示: 成功了,注意,VC中如何在对话框上显示位图(3),这个控件不但只能显示bmp,还可显示许多其他的格式,你可以自己试一下,加入如下两行:CSize sizeFileDib = m_dibFile.GetDimensions();MoveWindow(0,0,sizeFileDib.cx,si

成功了。

注意,这个控件不但只能显示bmp,还可显示许多其他的格式,你可以自己试一下。

二、利用Cdib类

这个方法比较烦琐,并且只能显示bmp,但它不依赖特定的系统,也比较实用。这个类在MSDN提供的例子中有,名字为ex10c.dsw,找到cdib.cpp和cdib.h,加入你的工程即可。如果你找不到,也可以到我的网页去看看http://dlgis.topcool.net或者给我写信ytdl@263.net。

---- 下面是过程:

新建一个基于对话框的工程,单击Add Files to Project,加入上面所说的两个文件。

在对话框的头文件中加入#include "cdib.h",然后给对话框类加入一个成员变量,代码如下: Cdib m_dibFile;

在对话框的初始化函数中,加入如下代码:

  #ifdef MEMORY_MAPPED_FILES
  if (m_dibFile.AttachMapFile
  ("c:windowsclouds.bmp",TRUE)==TRUE)
  { // share
  Invalidate();
  }
  #else
  CFile file;
  file.Open("c:windowsclouds.bmp",
  Cfile::modeRead);
  if (m_dibFile.Read(&file) == TRUE)
  {
  Invalidate();
  }
  #endif // MEMORY_MAPPED_FILES
  CClientDC dc(this);
  m_dibFile.SetSystemPalette(&dc);

在OnPaint函数中,找到else,然后在里面加入如下代码:

  BeginWaitCursor();
  m_dibFile.UsePalette(GetDC());
  CSize sizeFileDib = m_dibFile.GetDimensions();
  m_dibFile.Draw(GetDC() ,CPoint(0,0), sizeFileDib);
  EndWaitCursor();

运行程序,是不是看到蓝天白云了?!下面继续加入让对话框自动适应图片大小的代码,还是在初始化中,紧接这上一次的代码,加入如下两行:

CSize sizeFileDib = m_dibFile.GetDimensions();
  MoveWindow(0,0,sizeFileDib.cx,sizeFileDib.cy,true);

完全显示了吗?也许不完全合适,你可以细微地调整cx,cy两个参数,使之适应。

上一页  1 2 3 

Tags:VC 如何 对话框

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接