在MDI主框架窗口中添加位图(在视中加载位图)

原创 2005年04月29日 22:26:00

要在视图中显示位图,难点在于控件需要自己添加,位置要自己定。在MDI中添加位图有如下几个步骤:

  • 首先添加一个显示控件。这里的添加和其他控件的添加相类似。

有两个地方可以添加代码来创建控件:CtestMDIView::OnCreate 和 CtestMDIView::OnInitialUpdate。CtestMDIView::OnCreate 的执行点比较靠先。这里我为了自己的需要选择了在CtestMDIView::OnInitialUpdate中创建控件

 GetClientRect(Rect);
 // add picture wide = 50 height = 100
 myRect = Rect;
 myRect.bottom = myRect.top + 100;
 myRect.left = myRect.right + 20;

 m_PicShow.Create( "Picture Show", WS_CHILD|WS_VISIBLE|WS_BORDER,
  CRect(Rect.right + 500,Rect.top + 20,Rect.right + 100,Rect.top + 120), this, 12002 );

  • 其次,为显示控件增加移动代码,以便响应窗口变化。即在

void CtestMDIView::OnSize(UINT nType, int cx, int cy)
{
 CRect Rect;
 CView::OnSize(nType, cx, cy);
 if(canSize){
  GetClientRect(Rect);
  m_PicShow.MoveWindow()
 }
}

其实加载显示位图位图并不象如上这么复杂,只需要加载并在OnPaint()或OnDraw中显示就可以了,代码如下

 CPaintDC dc(this);
 OnPrepareDC(&dc);
 OnDraw(&dc);

 CBitmap cBitmap;
 BITMAP bitMap;
 CDC dcMem;

 dcMem.CreateCompatibleDC(&dc);

 cBitmap.LoadBitmap( IDB_PLAY1 );
 cBitmap.GetBitmap(&bitMap);

 CBitmap *pbmpOld=dcMem.SelectObject(&cBitmap);
 dc.StretchBlt( m_rectPicLoc.left,m_rectPicLoc.top,
  m_rectPicLoc.right - m_rectPicLoc.left,
  m_rectPicLoc.bottom - m_rectPicLoc.top,
  &dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);


其中IDB_PLAY1即要显示的图片资源。

这里是将图片加入资源来显示,适用于图片预先已知。若图片未知,则可用LoadBitmap打开图像,然后以同样的方式显示

另外还可以用Bltblt来显示图片,以加快速度

MFC基于对话框的位图加载

最近学VC++,遂写了简单的应用如文章标题,其实这个应用很常见。          步骤1. 位图加载。通过位图的导入添加自己的位图,注意要是bmp格式。          步骤2.创建一个Com...
  • chuanchuan608
  • chuanchuan608
  • 2012年07月02日 13:44
  • 5976

MFC加载位图资源的实现

MFC加载位图资源的实现 1、添加OnEraseBkgnd函数 该方法是在指定位置加载位图 BOOL CbitmapDlg::OnEraseBkgnd(CDC* pDC) {     // ...
  • life061522
  • life061522
  • 2015年07月27日 11:58
  • 2028

在VC++项目中为MDI主框架窗口添加位图

Visual C++提供的应用程序框架虽然可以自动生成多文档(MDI)的应用程序,但是程序的界面比较单调,如果能够在主框架中添加上彩色位图,一定能够大大改观程序的界面效果。目前也有些编程资料涉及到如何...
  • fxpopboy
  • fxpopboy
  • 2007年01月11日 19:15
  • 607

如何给对话框添加位图

方法一:   1、声明成员变量CBrush m_brush; 2、在InitDialog中添加代码:   CBitmap bmp;  bmp.LoadBitmap(IDB_BITMAP1); /...
  • u010679895
  • u010679895
  • 2013年07月19日 15:33
  • 699

MFC 为按钮加载位图 CBitmapButton

系统环境:Windows 7 软件环境:Visual C++ 2008 SP1 本次目的:使用位图按钮,并且设置按钮的鼠标悬停效果       在用MFC开发时,界面是比较不好开发的一块。V...
  • u013050589
  • u013050589
  • 2014年05月29日 09:35
  • 1855

MFC中在视图窗口显示位图

本例将在单文档工程的视图窗口中显示一副位图,窗口的左边为原图,右边为放大后的位图。 本例的demo如下: 首先    在资源视图中插入一副位图,然后在Ondraw函...
  • u011619422
  • u011619422
  • 2014年12月07日 10:56
  • 1447

VS2010 MFC显示位图

void CopenimageView::OnDraw(CDC* pDC) { CBitmap bitmap; CDC dcMemory; bitmap.LoadBit...
  • hnwxfyf
  • hnwxfyf
  • 2016年03月07日 16:26
  • 240

MFC中加载位图资源到窗口中

一、 从磁盘中加载位图到窗口中---操作步骤 1. 创建一个单文档的应用程序,工程名为LoadBmp。 2. 在视图类中添加一个成员变量m_hBmp. 3. 在视图类的构造函数中调用LoadImage...
  • ziyuzhao123
  • ziyuzhao123
  • 2013年09月26日 16:10
  • 3062

Android中的位图资源简介 创建 加载 保存

Android支持四种类型的位图(Bitmap)分别为ALPHA_8、ARGB_4444、ARGB_8888、RGB_565,常用的类型是ARGB_8888和RGB_565。ARGB_8888类型的位...
  • heiding215
  • heiding215
  • 2012年12月06日 14:54
  • 1498

VS2013 MFC添加位图

新建位图的时候位图文件名默认为bitmap1.bmp(需要保存);位图的nIDResource默认为IDB_BITMAP1,是资源ID,是一个UINT型的宏,同时还生成了该宏对应的值,右击IDB_BI...
  • shengwenj
  • shengwenj
  • 2015年10月03日 14:09
  • 3073
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在MDI主框架窗口中添加位图(在视中加载位图)
举报原因:
原因补充:

(最多只允许输入30个字)