MFC静态控件CStatic显示不出ICO图标解决


//加载NotePad.exe的图标到IDC_IMG_NOTEPAD Cstatic控件上,这段代码显示不出ico图标,原因是什么??
//是type属性设置错了,在资源视图里面,编辑CStatic控件的属性,将它的Type改为icon,即解决。
SHFILEINFO fileInfo;
DWORD_PTR dwRet
=SHGetFileInfo("C:\\windows\\system32\\notepad.exe",0,&fileInfo,sizeof(SHFILEINFO),SHGFI_ICON);
if (dwRet)
{
((CStatic
*)GetDlgItem(IDC_IMG_NOTEPAD))->SetIcon(fileInfo.hIcon);
}

  

转载于:https://www.cnblogs.com/oyjj/archive/2011/07/17/2132848.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在MFC应用程序中的CStatic控件显示BMP图像,可以按照以下步骤操作: 1. 首先,使用LoadBitmap函数加载BMP图像文件。例如,下面的代码将加载名为“myimage.bmp”的图像文件。 ```C++ CBitmap bmp; bmp.LoadBitmap(IDB_MYIMAGE); ``` 其中,IDB_MYIMAGE是资源文件中BMP图像的ID。 2. 创建CDC对象并将其与CStatic控件关联。可以使用以下代码创建CDC对象并从CStatic控件获取设备上下文。 ```C++ CDC* pDC = m_pMyStatic->GetDC(); ``` 其中,m_pMyStatic是指向CStatic控件的指针。 3. 创建CDC对象后,可以使用CDC的BitBlt函数将图像绘制到设备上下文中。例如,下面的代码将图像绘制到CStatic控件中。 ```C++ CDC memDC; memDC.CreateCompatibleDC(pDC); CBitmap* pOldBitmap = memDC.SelectObject(&bmp); BITMAP bm; bmp.GetBitmap(&bm); pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY); memDC.SelectObject(pOldBitmap); ``` 4. 最后,释放CDC对象并释放资源。 ```C++ ReleaseDC(pDC); bmp.DeleteObject(); ``` 完整的示例代码如下所示: ```C++ // Load BMP image CBitmap bmp; bmp.LoadBitmap(IDB_MYIMAGE); // Get device context of CStatic control CDC* pDC = m_pMyStatic->GetDC(); // Draw image to device context CDC memDC; memDC.CreateCompatibleDC(pDC); CBitmap* pOldBitmap = memDC.SelectObject(&bmp); BITMAP bm; bmp.GetBitmap(&bm); pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY); memDC.SelectObject(pOldBitmap); // Release resources ReleaseDC(pDC); bmp.DeleteObject(); ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值