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

在C++中,使用CPaintDC类和CImage类加载并显示背景图片。首先加载图片文件,然后将其转换为HBITMAP,附加到CBitmap对象。创建内存设备上下文,选择位图并进行拉伸绘制到窗口。接着,创建一个红色实线笔,设置绘图模式,不选择刷子,绘制矩形。最后,清理资源并完成OnPaint()方法。
摘要由CSDN通过智能技术生成
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.H
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值