wince下如何获取文件图标?

fengxiaodong1216 2013-01-14 09:47:44
在wince下做了个类似windows资源管理器,在treeview和listview中显示的文件图标都是“windows图标”,如何显示系统正确的图标啊?
...全文
427 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengxiaodong1216 2013-01-16
  • 打赏
  • 举报
回复
SHGetFileInfo()这个函数获取图标有问题,报“句柄无效”的错,如果要获取系统默认图标,szFileName这个参数设置为什么?
91program 2013-01-15
  • 打赏
  • 举报
回复

LRESULT CALLBACK TwoStateFileAnimProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

    LPCTSTR szFileName                    = TEXT("myfile.xls");
    LRESULT lRet                          = 0;
    static SHFILEINFO s_sfiLarge          = {0};
    static SHFILEINFO s_sfiLargeSelected  = {0};
    static HIMAGELIST s_himlLarge         = NULL;
    static HIMAGELIST s_himlLargeSelected = NULL;

    switch (message)
    {
        case WM_CREATE:
            // Cache the file information and the imagelist.
            // Get the large default icon for the file.
            s_himlLarge = (HIMAGELIST)SHGetFileInfo(szFileName, 0, &s_sfiLarge, sizeof(s_sfiLarge), SHGFI_SYSICONINDEX|SHGFI_LARGEICON);

            // Get the large selected icon for the file.
            s_himlLargeSelected = (HIMAGELIST)SHGetFileInfo(szFileName, 0, &s_sfiLargeSelected, sizeof(s_sfiLargeSelected), SHGFI_SYSICONINDEX|SHGFI_LARGEICON|SHGFI_SELECTICON);
            break;

        case WM_PAINT:
            {
                PAINTSTRUCT ps;
                HDC hdc = BeginPaint(hwnd, &ps);

                // Draw the file icon in the selected state.
                ImageList_Draw(s_himlLargeSelected, s_sfiLargeSelected.iIcon, hdc, 0, 0, ILD_TRANSPARENT);

                // Draw the file icon in the default state.
                ImageList_Draw(s_himlLarge, s_sfiLarge.iIcon, hdc, 0, 100, ILD_TRANSPARENT);
                EndPaint(hwnd, &ps);
                break;
            }

    }

    return lRet;

}

91program 2013-01-15
  • 打赏
  • 举报
回复
还真如 LZ 所说,看 MSDN 中函数 SHGetFileInfo 的帮忙,是有获取 ImageList 的方法。 LZ 不看 MSDN 吗?
91program 2013-01-14
  • 打赏
  • 举报
回复
CE 系统是不支持的,只能自己来实现。 试着从文件中读取图标资料。
fengxiaodong1216 2013-01-14
  • 打赏
  • 举报
回复
SHGetFileInfo()这个函数不是可以获得Imagelist吗,然后用SetImageList()来实现吗? 但具体有谁知道怎么实现的,最好来点源码

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧