想引用资源文件中的 ICO 图标资源的“标号”-----
请用 Delphi 6\Demos\ResXplor\resxplor.dpr 这个DEMO随便打开一个delphi的exe文件,可以看到众多的资源,可是 Icon 下的图标资源不象Cursor光标资源那样每个都带有一个“标号”,如32761、32762等等。但是,还是用这个DEMO 打开“网络蚂蚁”的exe文件,却可以在Icon 下看到图标资源有标号,如101,137等等。这是为何? 是因为Delphi自身编译引起的吗?
还是因为这是“网络蚂蚁”自身加入的新的资源?
可我在文件中加入了自己的图标资源{$R XXX.res},也是不行啊。我是想引用这个“标号”进行在注册表中注册后能够引用此图标资源。
另:除了这个方法,我怎样才能引用exe中的资源?????
请用 Delphi 6\Demos\ResXplor\resxplor.dpr 这个DEMO随便打开一个delphi的exe文件,可以看到众多的资源,可是 Icon 下的图标资源不象Cursor光标资源那样每个都带有一个“标号”,如32761、32762等等。但是,还是用这个DEMO 打开“网络蚂蚁”的exe文件,却可以在Icon 下看到图标资源有标号,如101,137等等。这是为何? 是因为Delphi自身编译引起的吗?
还是因为这是“网络蚂蚁”自身加入的新的资源?
可我在文件中加入了自己的图标资源{$R XXX.res},也是不行啊。我是想引用这个“标号”进行在注册表中注册后能够引用此图标资源。
另:除了这个方法,我怎样才能引用exe中的资源?????
if( ! EnumResourceNames( EDII.hInstance, RT_GROUP_ICON, (ENUMRESNAMEPROC )MyEnumProcedure, (LPARAM)GetSafeHwnd()) )其中:
BOOL CALLBACK MyEnumProcedure( HANDLE hModule, LPCTSTR lpszType, LPTSTR lpszName, LONG lParam )
{
TCHAR szBuffer[256];
LONG nIndex = LB_ERR;
LPTSTR lpID = NULL; // Name is from MAKEINTRESOURCE()
if( HIWORD(lpszName) == 0 )
{
wsprintf( szBuffer, "Icon [%d]", (DWORD)lpszName ); // 注意,这个lpszName 就是偏移量,我就是不懂,这个参数是怎么传进去的。回头发信问问作者吧。
lpID = lpszName;
}
else
{
// Name is string
lpID = strdup( lpszName );
wsprintf( szBuffer, "Icon [%s]", lpID );
}
// Add it to the listbox
nIndex = SendDlgItemMessage( (HWND)lParam, IDC_LIST1, LB_ADDSTRING, 0, (LPARAM)(szBuffer) );
// Set the item data to be the name of the resource so we can get it later
SendDlgItemMessage( (HWND)lParam, IDC_LIST1, LB_SETITEMDATA, (WPARAM)nIndex, (LPARAM)lpID ); return TRUE;
}http://www.vckbase.com/vckbase/vckbase12/vc/nonctrls/gdi_17/1217001.htm