函数功能:该函数确定指定模块中指定类型和名称的资源所在位置。
函数原型:HRSRC FindResource(HMODULE hModule,LPCTSTR lpName,LPCTSTR lpType);
参数:
hModule:处理包含资源的可执行文件的模块。NULL值则指定模块句柄指向操作系统通常情
况下创建最近过程的相关位图文件。
lpName:指定资源名称。若想了解更多的信息,请参见注意部分。
lpType:指定资源类型。若想了解更多的信息,请参见注意部分。作为标准资源类型。这个
参数的含义同EnumResLangProclpType。
返回值:如果函数运行成功,那么返回值为指向被指定资源信息块的句柄。为了获得这些资
源,将这个句柄传递给LoadResource函数。如果函数运行失败,则返回值为NULL。若想获
得更多错误信息,请调用GetLastError函数。
注意:如果参数lpType或lpName的高字节为O,那么其低字节中所给定的资源的类型或名
称标识说明。另外,这些参数指向以NULL为终止符的字符串。字符串的第一个字符是#,
后面的字符表示十进制数来表示源类型或名称的整数标识符。例如。字符串"#258"表示整数
标识符258。
如果用整数标识符替代名称提交资源,用程序将减少所需的内存容量。
当使用完加速器表,位图,光标,图标,或是菜单后,可以通过调用下表所列举的函数
释放内存。加速器表:DestroyAcceleratorTable;位图:DeleteObject;光标:DestroyCursor;
图标:Destroylcon;菜单DestroyMenu。
当过程创建资源终止时,系统将自动删除这些资源。然而通过调用适当的函数可以保留
内存,减少过程中工作设置所需的空间大小。
应用程序可以使用FindResource函数去查找任何种类资源,但是这个函数只有在应用
程序并发调用LoadLibray和LockResource函数来存取二进制资源时才被使用。
如果想立即使用某一资源,应用程序将使用下面详细资源函数列表中某一函数去查找装
载所需资源,FormatMessage:装裁且格式化信息表接口:LoadAccclerators:装载加速器
表;LoadBltmap:装载位图资源;LoadCursor:装载光标资源;Loadlcon:装载图标资源;
LoadMenu:装载菜单资源;LoadString:装载字符串表资源。
例如,应用程序可以使用Loadlcon函数装载某一图标以在屏幕上显示。但是,如果是
装载某一图标为了将它的数据复制到另一个应用程序中,那么这个应用程序就应该使用
FindResource和LoadResource函数。
字符串资源存储在由若干部分组成的某区域,每部分有16个字符串。每部分的字符串
是按统一计数方式排列的有序队形式存储的。
TheLoadstring函数将从相应的区域中摘取字符串资源。
参数hModule不能为NULL句柄。
参数lpName不支持ID为零的资源,即FindResource(h,o,t)不能按预期工作。
不可能在IpTyPe参数中传递RT_ANICURSOR或RT_ANllCON的值。
速查:Windows NT3.1、Windows95、Windows CE1.0以上,头文件:winbase.h;库文件:
kerne132.lib;Unicode;在Windows和Windows NT上实现为Unicode和ANSI两种版本。