VC中文FAQ宝库之3:如何在程序中获得其他程序的图标

王朝vc·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

两种方法:

(1) SDK函数 SHGetFileInfo 或使用 ExtractIcon 获得图标资源的 handle,

(2) SDK函数 SHGetFileInfo 获得有关文件的很多信息,如大小图标,属性,类型等.

Example(1):

在程序窗口左上角显示 NotePad 图标.

void CSampleView::OnDraw(CDC * pDC)

{

if( ::SHGetFileInfo(_T("c:\\pwin95\\notepad.exe"), 0, &stFileInfo, sizeof(stFileInfo), SHGFI_ICON));

{

pDC ->DrawIcon(10,10,stFileInfo.hIcon);

}

}

Example(2):

同样功能,Use ExtractIcon Function

void CSampleView:: OnDraw(CDC *pDC)

{

HICON hIcon= ::ExtractIcon(AfxGetInstanceHandle(), _T("NotePad.exe"), 0);

if (hIcon &&hIcon!=(HICON)-1)

pDC->DrawIcon(10,10,hIcon);

}

说明: 获得notepad.exe的路径正规上来说用GetWindowsDirectory函数得到,如果是调用 win95下的画笔,应该用访问注册表的方法获得其路径,要作成一个比较考究的程序,考虑应该全面点。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航