如何在窗口绘制背景图片,并且在图片上话一个矩形

原创 2013年12月06日 11:05:08
void CPtestDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		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;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
        CPaintDC dc(this);
        CImage ii;
        BOOL b = ii.Load(_T("c:\\flower.jpg"));
        HBITMAP hbmp =(HBITMAP)ii.operator HBITMAP();
        CBitmap bm;
        bm.Attach(hbmp);
   
        CRect   rect;   
        GetClientRect(&rect);   
        CDC   dcMem;   
        dcMem.CreateCompatibleDC(&dc);   
        
        CBitmap   *pbmpOld=dcMem.SelectObject(&bm);   
        dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,   
        rect.Width(), rect.Height(), SRCCOPY);   
        CPen NewPen(PS_SOLID, 2, RGB(255,0,0));
        dc.SelectObject(&NewPen);
        dc.SetROP2(R2_COPYPEN);
        dc.SelectStockObject(NULL_BRUSH); 
        dc.Rectangle(rect.left+20,rect.top+ 30, 126,126);
        //      dc.SelectStockObject(NULL_BRUSH); 
        DeleteObject(&dcMem);
		CDialog::OnPaint();
	}
}

解决绘图时闪烁问题的一点经验

清除屏幕闪烁(转自网上)由于作图过于复杂和频繁,所以时常出现闪烁的情况,一些防止闪烁的方法,如下: (1)将Invalidate()替换为InvalidateRect()。Invalidate()会导...

Qt中绘制窗口的背景图片注意事项(常见的setStyleSheet和QPalette)

一句话总结就是:使用QPalette来设置窗口的背景图片可以避免出现使用setStyleSheet设置背景后子窗口也是父窗口背景的情况。 使用QPalette绘制背景的代码如下: setAu...

Qt之主窗口背景图片动态拉伸

  • 2016年04月08日 14:33
  • 13KB
  • 下载

MDI窗口的背景图片

  • 2008年05月10日 09:05
  • 17KB
  • 下载

不用css样式表和背景图片实现圆角矩形,超简洁!

当网站页面的整体布局设计好后,接下来有很多细节的实现是很让人头疼的。其中之一就是圆角矩形的实现。 在网上看了很多圆角矩形的实现方法,基本有两种,一种是用纯css实现,不需要背景图片;另一种是用背...
  • aerchi
  • aerchi
  • 2012年03月31日 13:13
  • 2564

Java.swing-如何为frame窗口设置背景图片

import java.awt.*; import javax.swing.*; import java.awt.Container; public class framebg { ...

VS2010更换文本编辑窗口背景图片

  • 2011年11月04日 11:28
  • 23KB
  • 下载

如何给Ext.panel增加一个背景图片

  • 2010年06月22日 11:27
  • 726B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在窗口绘制背景图片,并且在图片上话一个矩形
举报原因:
原因补充:

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