正文

利用Shell API显示出"桌面"和相应的图标2007-05-08 23:24:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/12567/25722.html

分享到:

/******************************************************************************    FUNCTION: ShowDeskImages()**    PURPOSE:  Show the icon and the title of the desk.*****************************************************************************/HTREEITEM CShellTree::ShowDeskImages(){ ITEMIDLIST *pidlDeskTop;   SHFILEINFO  fi={0};     HIMAGELIST hImageList;  if(S_OK!=SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP,&pidlDeskTop))    {     return  FALSE;    }           hImageList=(HIMAGELIST)SHGetFileInfo(( LPCTSTR)pidlDeskTop,0U,&fi,                                     sizeof(SHFILEINFO),                                      SHGFI_DISPLAYNAME | SHGFI_PIDL                                     |SHGFI_SYSICONINDEX|SHGFI_SMALLICON                                     );  IMalloc*   pMalloc;    if(SUCCEEDED(SHGetMalloc(&pMalloc)))    {     pMalloc->Free(pidlDeskTop);     pMalloc->Release();    }   if (hImageList)  ::SendMessage(m_hWnd, TVM_SETIMAGELIST, (WPARAM) TVSIL_NORMAL,  (LPARAM)hImageList);        return InsertItem(fi.szDisplayName,fi.iIcon,fi.iIcon,NULL);}该函数用Shell API在树中显示出桌面和相应图标。 CTreeCtrl::InsertItem这里的参数解释如下:第一个为显示树结点的名称,第二个为显示结点开始的图标在CImagelist中的索引号,第三个为在结点选择后显示的图标在CImagelist中的索引号。第四个参数为NULL,表明在根结点显示。如不在根结点显示,则填写父结点的标识符。

阅读(3094) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册