在IDC_STATIC上载入图片

注意有个地方需要把IDC_STATIC_VIDEO的Window坐标转换成相对于Dialog左上角的坐标IDB_BITMAP1是位图ID


void CBuildingInfoPublishDlg::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); // device context for painting
	   CRect   rect; 
	  
	   GetDlgItem(IDC_STATIC_VIDEO)->GetWindowRect(&rect);
	   ScreenToClient(&rect);
	    
	   
	   CDC   dcMem;   
	   dcMem.CreateCompatibleDC(&dc);   
	   CBitmap   bmpBackground;   
	   if(bmpBackground.LoadBitmap(IDB_BITMAP1))
	   {  //保证加载图片成功后再执行以下操作               
		  BITMAP   bitmap;   
		  bmpBackground.GetBitmap(&bitmap);
		  CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
		  dc.StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&dcMem,0,0,   
			 bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);  
	   }
 

		CDialog::OnPaint();
	}
	  
 
	 
}


另一种方法

	//一):首先获取静态文本框大小
	 CRect rect;
     GetDlgItem(IDC_STATIC_PIC1)->GetWindowRect(&rect);

	 // 二):使用LoadImage从文件读取指定大小位图
	 HBITMAP hBmp= (HBITMAP)::LoadImage(NULL,"E:\\optechwell\\B-卜总\\图像处理\\ImageTest\\ImageTest\\pic\\pic1.bmp",IMAGE_BITMAP,rect.Width(),rect.Height(),LR_LOADFROMFILE);

	 //   三):修改文本框类型及向文本框加载位图
    CStatic*   pWnd  =  (CStatic*)GetDlgItem(IDC_STATIC_PIC1); 
	pWnd-> ModifyStyle(0, SS_BITMAP); 
	pWnd-> SetBitmap(hBmp); 


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值