MFC 设置窗口背景图片、设置子窗体背景图片

1.首先百度下载 .bmp格式的图片,也可以通过截图另存为.bmp格式的文件,后世使用图片编译工具将其他格式图片转化为.bmp格式的图片

2.按照下图添加资源:

导入成功后可以在Bitmap文件夹下看到名为IDB_BITMAP1的图片:

3.在XXXDlg.cpp下的OnPaint()函数中,else中注释掉原来的CDialog::OnPaint();,加入如下代码:

//添加代码对话框背景贴图
		CPaintDC   dc(this);
		CRect   rect;
		GetClientRect(&rect);    //获取对话框长宽      
		CDC   dcBmp;             //定义并创建一个内存设备环境
		dcBmp.CreateCompatibleDC(&dc);             //创建兼容性DC
		CBitmap   bmpBackground;
		bmpBackground.LoadBitmap(IDB_BITMAP1);    //载入资源中图片
		BITMAP   m_bitmap;                         //图片变量               
		bmpBackground.GetBitmap(&m_bitmap);       //将图片载入位图中
												  //将位图选入临时内存设备环境
		CBitmap  *pbmpOld = dcBmp.SelectObject(&bmpBackground);
		//调用函数显示图片StretchBlt显示形状可变
		dc.StretchBlt(0, 0, rect.Width(), rect.Height(), &dcBmp, 0, 0, m_bitmap.bmWidth, m_bitmap.bmHeight, SRCCOPY);

运行结果:

子窗口设置参考链接:https://blog.csdn.net/qq_43524683/article/details/86498806

 

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要给图片添加比例尺,可以使用MFC中的CDC类和CBitmap类来实现。具体步骤如下: 1. 首先加载图片,使用CBitmap类的LoadBitmap函数或LoadImage函数加载图片。 2. 将图片绘制到设备上,使用CDC类的BitBlt函数或StretchBlt函数将图片绘制到设备上。 3. 在图片上绘制比例尺,使用CDC类的MoveTo函数和LineTo函数在图片上绘制比例尺。 4. 最后,使用CDC类的TextOut函数在比例尺旁边显示比例尺的大小。 下面是一个示例代码: ```cpp // 加载图片 CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); // 从设备上获取DC CDC* pDC = GetDC(); // 创建内存DC CDC memDC; memDC.CreateCompatibleDC(pDC); // 将图片绘制到内存DC上 CBitmap* pOldBmp = memDC.SelectObject(&bmp); pDC->BitBlt(0, 0, bmpWidth, bmpHeight, &memDC, 0, 0, SRCCOPY); // 绘制比例尺 int scaleWidth = bmpWidth / 10; // 假设比例尺为图片宽度的1/10 int scaleHeight = 5; // 比例尺高度为5像素 int startX = bmpWidth - scaleWidth - 10; // 比例尺起点横坐标 int startY = bmpHeight - scaleHeight - 10; // 比例尺起点纵坐标 int endX = bmpWidth - 10; // 比例尺终点横坐标 int endY = bmpHeight - 10; // 比例尺终点纵坐标 memDC.MoveTo(startX, startY); memDC.LineTo(endX, endY); CString strScale; strScale.Format(_T("%d px"), scaleWidth); // 显示比例尺大小 memDC.TextOut(startX, startY - 20, strScale); // 清理资源 memDC.SelectObject(pOldBmp); ReleaseDC(pDC); ``` 注意,以上代码只是一个示例,实际应用中还需要根据具体情况进行调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值