api技巧集(四)之1

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

提取图标

调用API函数ExtractIcon可以提取出在程序文件中的图标,它的头文件是shellapi.h,原型为:

HICON ExtractIcon

(

HINSTANCE hInst, //实例句柄

LPCTSTR lpszExeFileName, //要提取图标的那个程序的文件名

UINT nIconIndex //要提取的图标的索引

);

调用该函数时,参数hInst一般设为当前应用程序的实例句柄,如:Form1->Handle。

参数lpszExeFileName为需要提取图标的程序文件的完整路径,这个程序文件可以是EXE文件、DLL文件、ICO文件等,只要是包含有图标资源的文件一般都可以提取图标。

当参数nIconIndex指定一个图标的索引可以返回指向图标的句柄,如指定的文件中不存在图标,则返回零,当参数nIconIndex设为-1,函数返回文件的图标总数。

函数返回的句柄可以赋给一个用TIcon类声明的变量,再使用该变量的SaveToFile方法就可以把图标保存出来。

例子:

TIcon *Icon = new TIcon();

AnsiString FileName = "C:\\WINDOWS\\SYSTEM\\SHELL32.DLL";

int TotalIcon;

//得到文件SHELL32.DLL的总图标数

TotalIcon = (int)ExtractIcon(Form1->Handle,FileName.c_str(), -1);

//提取第一个图标,0为第一个,1为第二个,类推...

Icon->Handle = ExtractIcon( Form1->Handle, FileName.c_str(), 0);

//保存图标

Icon->SaveToFile("C:\\1.ICO");

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