MFC插入背景图片

来源:互联网 发布:凹凸世界知乎 编辑:程序博客网 时间:2024/06/05 05:50


MFC插入背景图片
void CMFCApplication4Dlg::OnPaint()
{
 if (IsIconic())
 {
  CPaintDC dc(this); // 用于绘制的设备上下文

  SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

  // 使图标在工作区矩形中居中
  int cxIcon = GetSystemMetrics(SM_CXICON);
  int cyIcon = GetSystemMetrics(SM_CYICON);
  CRect rect;
  GetClientRect(&rect);
  int x = (rect.Width() - cxIcon + 1) / 2;
  int y = (rect.Height() - cyIcon + 1) / 2;

  // 绘制图标
  dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
  //CDialogEx::OnPaint();
  //CDialog::OnPaint();//要禁止这个调用 
  CPaintDC   dc(this);
  CRect   rect;
  GetClientRect(&rect);
  CDC   dcMem;
  dcMem.CreateCompatibleDC(&dc);
  CBitmap   bmpBackground;
  bmpBackground.LoadBitmap(IDB_BITMAP1);
  //IDB_BITMAP是你自己的图对应的ID 
  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);

 }
}
在添加 ——资源——添加bmp格式图片——打开资源视图——查看图片ID,修改到bmpBackground.LoadBitmap(IDB_BITMAP1);
完成背景图片;

0 0
原创粉丝点击