一个简单的学习加强实例,用VC取得文件的关联图标,看下面的代码一起来学习下!
CFileDialog fileDialog( TRUE,"*.*",NULL,NULL,NULL);
if (fileDialog.DoModal() != IDOK) return;
CString str= fileDialog.GetFileExt();
str="."+str;
SHFILEINFO sfi;
SHGetFileInfo(str,0,&sfi,sizeof(sfi),SHGFI_ICON|SHGFI_LARGEICON|SHGFI_USEFILEATTRIBUTES);
int i=sfi.iIcon;
CStatic* pStatic = (CStatic*) GetDlgItem(IDC_STATIC);
HICON hIcon=sfi.hIcon;
pStatic->SetIcon (hIcon);
上面的IDC_STATIC是一个静态控件。
记得用下面的函数释放用SHGetFileInfo获取的icon句柄
If SHGetFileInfo returns an icon handle in the hIcon member of the SHFILEINFO structure pointed to by psfi, you are responsible for freeing it with DestroyIcon when you no longer need it.
BOOL DestroyIcon( HICON hIcon);
分享到:
相关推荐
在VC++编程环境中,获取文件图标是一项常见的任务,特别是在创建文件管理器或者需要显示文件预览的程序中。...在开发过程中,理解这些API的工作原理和使用方法,能帮助你更好地管理和展示文件图标。
在编程领域,尤其是使用C++(如Visual C++,简称VC)时,开发者有时需要获取这些关联文件类型的图标,以便在自定义程序中使用。"vc获得所有经过关联的文件类型的图标.zip"是一个资源包,包含了一个示例项目,用于...
本文将深入探讨如何在Windows操作系统中,使用C++编程语言来获取应用程序的图标,特别是通过后缀名来提取图标的方法。 首先,我们要理解的是,Windows API(应用程序接口)提供了一系列函数,帮助开发者与系统进行...
它可能会调用Windows API如SHGetFileInfo来获取文件的属性,包括其关联的图标。 3. StatLink.cpp:状态链接或者统计链接相关的代码,可能用于跟踪文件的状态或链接到其他相关信息。 4. MenuInit.cpp:菜单初始化...
- 使用`RegQueryValueEx`来获取当前的文件关联信息。 - 通过`ShellExecute`或`CreateProcess`函数执行关联的程序。 4. 源代码解析: 压缩包中的"文件关联代码"可能包含了一个或多个源代码文件,这些文件可能实现...
此外,`ShellExecute`函数在更改图标过程中也扮演了关键角色,它能够执行文件操作,如设置文件关联和图标。 接下来,你需要一个`.ICO`文件,这是一种包含多种尺寸和颜色深度的图标资源文件。在VC++项目中,你可以将...
标题“VC制作界面图标BMP”提示我们,这个话题将围绕如何在Visual C++(VC)环境中使用位图(BMP)文件来制作和集成应用界面的图标。描述中的“非常好的VC++工具栏图标”暗示了这些BMP文件可能被用作工具栏按钮的...
- **ExtractAssociatedIconA**: 提取与文件关联的图标。 - **ImageList_AddIcon**: 将图标添加到图像列表中。 - **LoadIconA**: 加载一个图标。 - **SendMessageA**: 向指定窗口发送消息。 ##### 3. **关键步骤** -...
6. **获取并添加图标**:利用`FileInfo`对象的`ExtractAssociatedIcon()`方法获取文件图标,然后将其设置为ListView项的ImageIndex或ImageKey。 7. **设置图像列表**:创建一个`ImageList`对象,将所有可能的图标...
2. **修改.rc文件**:在资源脚本文件中,你需要为每个菜单项定义相应的ID,并指定其关联的图标ID。例如: ``` MENUITEM "&File", ID_FILE, IDI_ICON_FILE, 0, MF_BYCOMMAND ``` 这里,"&File"是菜单文本,ID_...
3. **关联图标和菜单项**:在.rc文件中,我们可以使用`MENUITEM`语句来定义菜单项,其中`ICON`关键字用于指定图标资源ID。例如: ``` MENUITEM "&File", ID_FILE, 0, 0, MF_STRING | MF_ICON, IDI_FILE_ICON ``` ...
函数通过调用`RegOpenKey`打开`HKEY_CLASSES_ROOT`下的指定扩展名键,然后使用`RegQueryValueEx`获取键的默认值。如果默认值与期望的键值相同,则表示文件关联已存在。以下是`CheckFileRelation`函数的实现: ```...
示例描述:本章介绍常用Win32控件的使用方法。 01_EditDemo 演示静态文本、文本框、按钮控件的使用方法 02_CheckBoxDemo 演示复选框和单选按钮控件的使用方法。 03_ComboBoxDemo 演示组合框和列表框控件的...
1. **获取文件关联的程序**:使用`SHGetFileInfo`函数,该函数可以从文件路径中获取关于文件的信息,包括其关联的程序和图标。你需要传递文件路径和`SHGFI_USEFILEATTRIBUTES`标志,以便使用文件的属性。 2. **提取...
【VC实现批量删除指定文件的方法】在VC++编程环境下,批量删除指定文件是一个常见的需求,尤其是在文件管理或系统清理的应用中。以下是如何在VC++中实现这一功能的关键步骤和核心代码解析。 首先,批量删除文件的...
一种方法是首先获取所有节点,然后使用`SortItems()`函数,传入比较函数指针,根据特定规则(如按文本或用户数据排序)进行排序。 4. **删除节点**: 删除节点使用`DeleteItem()`函数,传入要删除的节点句柄。如果...
这些接口可能包括打开、关闭文件,查询数据,以及获取或修改地图对象的方法。 4. **资源管理**:Resource.h文件通常用于定义程序中的资源ID,如对话框、图标等。在本项目中,可能还用于定义自定义的错误代码或消息...
7. **资源管理**:在资源文件中,除了对话框资源,可能还包括图标(Icon)和字符串资源(String Table),它们分别用于设置应用程序图标和对话框中的文字。 8. **编译与调试**:通过VC的IDE,我们可以编译、链接...
1. 加载图标资源:使用`LoadImage()`或`LoadIcon()`函数加载图标资源,获取图标句柄。 2. 设置菜单项属性:在调用`AppendMenu()`或`InsertMenu()`时,使用MF_BITMAP标志,并传入图标句柄。例如,`AppendMenu(hMenu, ...