zoukankan      html  css  js  c++  java
  • VC:UI编程

    VC++中给对话框设置背景图片的方法

    -----------------------------------------------------方法一(铺满窗口)-------------------------------------
    在窗口的OnPaint()函数中,加入如下代码:   
          CPaintDC   dc(this);   
          CRect   rect;   
                      GetClientRect(&rect);//得到窗体的大小   
                      CDC   dcMem;     
                      dcMem.CreateCompatibleDC(&dc);     
                      CBitmap   bmpBackground;   
                      bmpBackground.LoadBitmap(IDB_BITMAP1);//加载背景图片   
                      BITMAP   bitMap;   
                      bmpBackground.GetBitmap(&bitMap);   
                      CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
                      dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);   
          将背景图片画在窗口上。如果需要较快的速度,可以采用BitBlt函数。   

    -----------------------------------------------------方法二(图片不拉伸)---------------------------------------------------------------
    在窗口的OnPaint()函数中,加入如下代码:   
          CPaintDC   dc(this);   
          CRect   rect;   
                      GetClientRect(&rect);//得到窗体的大小   
                      CDC   dcMem;     
                      dcMem.CreateCompatibleDC(&dc);     
                      CBitmap   bmpBackground;   
                      bmpBackground.LoadBitmap(IDB_BITMAP1);//加载背景图片   
                      BITMAP   bitMap;   
                      bmpBackground.GetBitmap(&bitMap);   
                      CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
                      dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);   
          将背景图片画在窗口上。如果需要较快的速度,可以采用BitBlt函数。   

    -----------------------------------------------------------------------------------------------

    void CPeculiarMenuDlg::OnPaint()
    {
     CDC* m_dc = this->GetDC();//注意这里。。。。要调用CDC类下的GetDC()方法实现重绘
     CDC m_memdc;
     m_memdc.CreateCompatibleDC(m_dc);
     CBitmap m_bitmap;
     m_bitmap.LoadBitmap(IDB_MAIN);//载入的图片的ID号
     m_memdc.SelectObject(&m_bitmap);
     CRect m_rect;
    // GetClientRect(m_rect);
     m_dc->BitBlt(0,0,800,700,&m_memdc,0,0,SRCCOPY);
     
     m_bitmap.DeleteObject();

    }

    注意,这种方法是在OnPaint()函数中实现的。

  • 相关阅读:
    重新梳理HTML基础知识
    Bootstrap响应式栅格系统的设计原理
    php 循环爬虫 or 持久执行任务 总断掉服务 解决,flush(),ob_flush()的组合使用
    Linux中工作目录切换命令
    Linux中系统状态检测命令
    Linux系统中rm删除命令
    Linux中touch命令使用(创建文件)
    Linux中 mkdir 创建文件夹命令
    Linux 中 cp 命令(文件复制)
    Linux中 mv(文件移动)
  • 原文地址:https://www.cnblogs.com/2018shawn/p/9436897.html
Copyright © 2011-2022 走看看