#include <QtGui/QImage>
#include <QtGui/QPixmap>
void getSystemIcon(const chConstStringA& fileType, xPixmap& dst)
{
if (fileType.empty())
{
return;
}
CoInitialize(NULL);
SHFILEINFOA sfi = { 0 };
// 除了SHGFI_ICON之外还有SHGFI_LARGEICON(大图标), SHGFI_SMALLICON(小图标)
SHGetFileInfoA(fileType.c_str(), 0, &sfi, sizeof(sfi), SHGFI_USEFILEATTRIBUTES | SHGFI_ICON);
QImage image;
if (sfi.hIcon != NULL)
{
QPixmap pixIcon = QPixmap::fromWinHICON(sfi.hIcon);
if (!pixIcon.isNull())
{
image = pixIcon.toImage();
image = image.scaled(QSize(30, 30), Qt::KeepAspectRatio);
dst.loadFromPixelData((xPixel*)image.constBits(), image.width(), image.height());
}
DestroyIcon(sfi.hIcon);
}
CoUninitialize();
}

getWinSystemIcon的更多相关文章

随机推荐

  1. IIS发布文件出现:未能加载文件或程序集“xxxx”或它的某一个依赖项。试图加载格式不正确的程序。

    解决方案:IIS——应用程序池—选中网站—高级设置——启用32位应用程序 :true.

  2. 《疯狂Java讲义》(四)---- 面向对象&基于对象

    "基于对象"也使用了对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说,"基于对象"没有继承的特点,而多态更需要继承,所以" ...

  3. Linux 显示文件完整路径

    原链接 http://blog.chinaunix.net/uid-25266990-id-3268759.html ls foo | sed "s:^:`pwd`/:"

  4. 使用onclick跳转到其他页面/跳转到指定url

    ☆如果是本页显示可以直接用location,方法如下: ①onclick="javascript:window.location.href='URL'" ②onclick=&quo ...

  5. 有关Asp.net 中数据请求的处理的新认知:利用httpHandlers

    转自csdn:HttpHandler    HttpHandler是HTTP请求的处理中心,真正地对客户端请求的服务器页面做出编译和执行,并将处理过后的信息附加在HTTP请求信息流中再次返回到Http ...

  6. redis 事务

    概述 相信学过MySQL等其他数据库的同学对事务这个词都不陌生,事务表示的是一组动作,这组动作要么全部执行,要么全部不执行.为什么会有这样的需求呢?看看下面的场景: 微博是一个弱关系型社交网络,用户之 ...

  7. ios10 no route to host

    IdTCPClient1 ios10 no route to host IOS 9 正常 IOS10 出错,参考下面的设置解决问题 http://www.sh-huhe.com/solution/14 ...

  8. http://blog.csdn.net/shawnkong/article/details/52045894

    http://blog.csdn.net/shawnkong/article/details/52045894

  9. jdk1.7和jdk1.8的String的getByte方法的差异

    最近遇到一个奇葩的bug,jdk1.7下正常的程序到了jdk1.8下就不能用了,经过查找原因发现是因为jdk版本升级导致的获取的getbyte时得到的byte数组不同造成的.

  10. 灵活运用 SQL SERVER FOR XML PATH

    FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...