请用 Delphi 6\Demos\ResXplor\resxplor.dpr 这个DEMO随便打开一个delphi的exe文件,可以看到众多的资源,可是 Icon 下的图标资源不象Cursor光标资源那样每个都带有一个“标号”,如32761、32762等等。
但是,还是用这个DEMO 打开“网络蚂蚁”的exe文件,却可以在Icon 下看到图标资源有标号,如101,137等等。
这是为何? 是因为Delphi自身编译引起的吗?
还是因为这是“网络蚂蚁”自身加入的新的资源?
可我在文件中加入了自己的图标资源{$R XXX.res},也是不行啊。
我是想引用这个“标号”进行在注册表中注册后能够引用此图标资源。
另:除了这个方法,我怎样才能引用exe中的资源?????
5 个解决方案
#1
最多只能100分啊? :(
#2
很久没有来这里了。
#3
关键一句:
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
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
#4
关注
#5
多谢楼上!
这C++的代码我要好好看看。
这C++的代码我要好好看看。
#1
最多只能100分啊? :(
#2
很久没有来这里了。
#3
关键一句:
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
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
#4
关注
#5
多谢楼上!
这C++的代码我要好好看看。
这C++的代码我要好好看看。