要得到一个图标资源在资源文件中的偏移量“标号”该怎么办?(300)

JRQ 2002-08-13 08:56:15
想引用资源文件中的 ICO 图标资源的“标号”-----
请用 Delphi 6\Demos\ResXplor\resxplor.dpr 这个DEMO随便打开一个delphi的exe文件,可以看到众多的资源,可是 Icon 下的图标资源不象Cursor光标资源那样每个都带有一个“标号”,如32761、32762等等。

但是,还是用这个DEMO 打开“网络蚂蚁”的exe文件,却可以在Icon 下看到图标资源有标号,如101,137等等。

这是为何? 是因为Delphi自身编译引起的吗?
还是因为这是“网络蚂蚁”自身加入的新的资源?
可我在文件中加入了自己的图标资源{$R XXX.res},也是不行啊。

我是想引用这个“标号”进行在注册表中注册后能够引用此图标资源。
另:除了这个方法,我怎样才能引用exe中的资源?????
...全文
70 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
JRQ 2003-02-19
  • 打赏
  • 举报
回复
多谢楼上!

这C++的代码我要好好看看。
MyCrooner 2003-02-11
  • 打赏
  • 举报
回复
关注
Billy_Chen28 2003-02-09
  • 打赏
  • 举报
回复
关键一句:
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

JRQ 2002-11-12
  • 打赏
  • 举报
回复
很久没有来这里了。
JRQ 2002-08-20
  • 打赏
  • 举报
回复
最多只能100分啊? :(

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧