MFC对话框加载图片资源作为背景

原运行效果图:


=================================我是分割线==================================

方法一:

1。 .h文件中,添加

CBrush m_brush;	// 背景添加图片

2. .cpp文件OnInitDialog()中,添加

// 窗口背景为图片
CBitmap bmp;  
bmp.LoadBitmap(IDB_BITMAP3);   //IDB_BITMAP3是图片资源ID  
m_brush.CreatePatternBrush(&bmp);

3. OnCtlColor函数中,更改返回值

return (HBRUSH)m_brush; 

最后的效果图,是平铺的:



=================================我是分割线==================================

方法二:stretchBlt()函数。

在OnPaint()函数中,添加:

CPaintDC dc(this);
CRect   myrect;   
GetClientRect(&myrect);   
CDC   dcMem;   
dcMem.CreateCompatibleDC(&dc);   
CBitmap   bmpBackground;   
bmpBackground.LoadBitmap(IDB_BITMAP3);   //IDB_BITMAP3是背景图的ID 
BITMAP   bitmap;   
bmpBackground.GetBitmap(&
	bitmap);   
CBitmap   *pbmpOld=dcMem.SelectObject(&bmpBackground);   
dc.StretchBlt(0,0,myrect.Width(),myrect.Height(),&dcMem,0,0,   
	bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);

效果图如下:


=================================我是分割线==================================

还有第三种方法,但是个人觉得不太好用:

在OnPaint()函数里,添加如下代码

CPaintDC dc(this);
CBitmap   bitmap;
bitmap.LoadBitmap(IDB_BITMAP3);
CBrush   brush; 
brush.CreatePatternBrush(&bitmap);
CBrush*   pOldBrush   =   dc.SelectObject(&brush);
dc.Rectangle(0,0,300,300);          // 这些参数可以调整图片添加位置和大小
dc.SelectObject(pOldBrush);

效果图如下:

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以在MFC对话框的OnInitDialog()函数中使用CStatic控件来显示资源图片。以下是一个简单的示例代码: 1. 首先,在资源编辑器中,将您的图像资源对话框资源中。 2. 在OnInitDialog()函数中,使用以下代码获取CStatic控件的指针,并使用LoadBitmap()函数从资源位图,并使用SetBitmap()函数将位图设置为CStatic控件的图像。 ```cpp BOOL CMyDialog::OnInitDialog() { CDialogEx::OnInitDialog(); // 获取CStatic控件的指针 CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC_IMAGE); // 位图资源 HBITMAP hBitmap = LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_MYIMAGE)); // 将位图设置为CStatic控件的图像 pStatic->SetBitmap(hBitmap); return TRUE; } ``` 3. 请确保在对话框类的头文件中包含资源ID: ```cpp //{{AFX_DATA(CMyDialog) enum { IDD = IDD_MYDIALOG }; //... //}}AFX_DATA ``` 其中,IDD_MYDIALOG是您对话框资源ID。 4. 在对话框资源文件中,添以下代码: ```cpp IDD_MYDIALOG DIALOGEX 0, 0, 320, 200 STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "My Dialog" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN // 其他控件 // ... CONTROL "",IDC_STATIC_IMAGE,"Static",SS_BITMAP,7,7,306,186 END ``` 其中,IDC_STATIC_IMAGE是您要显示位图的CStatic控件的ID。 这样,您的对话框就可以自动显示资源图片了,而不需要使用其他控件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值