c#2.0 WinApp中的多个图标
我的.NET2.0WinForms应用程序有一个小问题。 我想在应用程序中嵌入几个不同的图标 还有其他要求:c#2.0 WinApp中的多个图标,c#,winapi,icons,C#,Winapi,Icons,我的.NET2.0WinForms应用程序有一个小问题。 我想在应用程序中嵌入几个不同的图标 还有其他要求: 必须是自动重建的 ms-build;使用外部gui应用程序 因为准备是不允许的 应用程序必须包含versioninfo 嵌入多个图标后,我想注册应用程序文档/扩展文件的两个文件关联 [Registry] ... Root: HKCR; Subkey: "MyFileExt\DefaultIcon"; ValueType: string; ValueName: ""; ValueDat
- 必须是自动重建的 ms-build;使用外部gui应用程序 因为准备是不允许的
- 应用程序必须包含versioninfo
[Registry]
...
Root: HKCR; Subkey: "MyFileExt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\MyApp.exe,2"
其中“2”是图标索引
我知道我需要使用老式的Win32资源文件
我还发现,如果使用VisualStudio2005,可以添加“本机资源文件”,但它在2008年已经不存在了
是否可以满足所有这些要求?如果可以,如何满足?与2005年一样,您可以将图标添加到资源中(通过项目属性)。完成此操作后,转到您在project explorer中添加的图标。每个图标都有一个BuildAction属性,说明如何存储和利用该资源
我认为您需要的是BuildAction属性的EmbeddedResource值。与2005年一样,您可以将图标添加到资源中(通过项目属性)。完成此操作后,转到您在project explorer中添加的图标。每个图标都有一个BuildAction属性,说明如何存储和利用该资源
我认为您要查找的是BuildAction属性的EmbeddedResource值。新建WinForms应用程序->在解决方案资源管理器中展开属性->双击Resources.resx->单击添加资源(下拉列表还包括添加现有资源) 您现在应该可以在可视化设计器中或在使用Properties.Resources的代码中使用它们。[此处是您的资源名称]
希望对您有所帮助。新建WinForms应用程序->在解决方案资源管理器中展开属性->双击Resources.resx->单击添加资源(下拉列表还包括添加现有资源) 您现在应该可以在可视化设计器中或在使用Properties.Resources的代码中使用它们。[此处是您的资源名称]
希望有帮助。当我需要多个图标时,我将png/bmp(或任何图像类型)作为图像资源嵌入到应用程序中。转到Visual Studio中的项目->属性->资源 在代码中,您可以在运行时执行以下操作:
buttonPlay.Image = Properties.Resources.Navigation_Media_Pause;
或
假设您将这两个图像资源称为“导航\媒体\暂停”和“导航\媒体\播放”。当我需要多个图标时,我将png/bmp(或任何图像类型)作为图像资源嵌入到应用程序中。转到Visual Studio中的项目->属性->资源 在代码中,您可以在运行时执行以下操作:
buttonPlay.Image = Properties.Resources.Navigation_Media_Pause;
或
假设您调用了两个图像资源“Navigation\u Media\u Pause”和“Navigation\u Media\u Play”。编译应用程序,然后使用visual studio打开.exe,然后可以添加所需的所有图标
在c#中也可以使用win32资源文件,但我目前找不到类似的方法编译应用程序,然后用visual studio打开.exe,然后可以添加所需的所有图标
C++中的Win32资源文件也可以做一些事情,但是我找不到LIK,因为现在我把所有图标都放到了独立的Win32 C++*.DLL中。
它更具吸引力,我不需要用Voice Onnf/Win32资源来做任何技巧。 < P>我决定把所有图标放在单独的老学校Win32 C++ ++中。
它更方便,而且我不需要对versioninfo/win32resources执行任何操作。该解决方案实际上非常简单,尽管它要求我回想我第一次遇到RC文件时的情景 在纯文本文件中,可以编写以下内容
#include <windows.h>
// The following is some Win32 candy for
// -- the Windows styles in XP, Vista & 7
// does the UAC too.
1 RT_MANIFEST "App.manifest"
// -- the versioning info, which we find usually in
// AssemblyInfo.cs, but we need to add this one
// because including Win32 resources overrides the .cs
// file!
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS VS_FF_DEBUG
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4" // en-US/cp-1252
BEGIN
VALUE "CompanyName", "My Company"
VALUE "ProductName", "My C# App"
VALUE "ProductVersion", "1.0.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252 // en-US in ANSI (cp-1252)
END
END
END
// And now the icons.
// Note that the icon with the lowest ID
// Will be used as the icon in the Explorer.
101 ICON "Icon1.ico"
102 ICON "Icon2.ico"
103 ICON "Icon3.ico"
编译您的项目并在资源管理器中查看,信息和图标应该在那里
CSC编译器还提供了一个/win32res
开关,用于将.res
文件嵌入到应用程序中
希望这有帮助 这个解决方案实际上相当简单,尽管它要求我回想我第一次遇到RC文件时的情景 在纯文本文件中,可以编写以下内容
#include <windows.h>
// The following is some Win32 candy for
// -- the Windows styles in XP, Vista & 7
// does the UAC too.
1 RT_MANIFEST "App.manifest"
// -- the versioning info, which we find usually in
// AssemblyInfo.cs, but we need to add this one
// because including Win32 resources overrides the .cs
// file!
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEFLAGS VS_FF_DEBUG
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4" // en-US/cp-1252
BEGIN
VALUE "CompanyName", "My Company"
VALUE "ProductName", "My C# App"
VALUE "ProductVersion", "1.0.0.0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252 // en-US in ANSI (cp-1252)
END
END
END
// And now the icons.
// Note that the icon with the lowest ID
// Will be used as the icon in the Explorer.
101 ICON "Icon1.ico"
102 ICON "Icon2.ico"
103 ICON "Icon3.ico"
编译您的项目并在资源管理器中查看,信息和图标应该在那里
CSC编译器还提供了一个/win32res
开关,用于将.res
文件嵌入到应用程序中
希望这有帮助