VC++工具软件实用技巧:改变窗口图标与获取应用信息
需积分: 0 164 浏览量
更新于2024-08-01
收藏 378KB DOC 举报
"这篇文档是关于VC++工具软件的用法总结,主要涉及如何更改窗口图标、获取应用程序主窗口指针、确定应用路径、以及如何在程序中获取其他程序的图标等常见操作。"
在VC++编程中,经常会遇到需要对窗口进行自定义设置或者获取系统信息的需求。以下是对标题和描述中提及的知识点的详细说明:
1. **改变窗口图标**:
在VC++中,如果你想改变窗口的图标,你可以通过SDK函数如`SHGetFileInfo`或`ExtractIcon`来获取其他程序的图标资源,并在你的窗口上显示。例如,可以创建一个`CSampleView`类的`OnDraw`函数,通过`SHGetFileInfo`获取记事本(`Notepad.exe`)的图标,并使用`CDC::DrawIcon`绘制到窗口的指定位置。
2. **获取应用程序主窗口指针**:
VC++中的主线程对象`CWinThread`有一个成员变量`m_pMainWnd`,它存储了应用程序主窗口的指针。你可以通过全局函数`AfxGetMainWnd()`来获取这个指针,然后执行相关的操作,如最大化窗口:`AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED)`。
3. **确定应用程序路径**:
若要获取当前应用程序的完整路径,可以使用API函数`GetModuleFileName`,传入`NULL`作为参数,表示获取当前进程的模块(即执行文件)的路径。将结果存储在一个足够大的缓冲区中,如`TCHAR exeFullPath[MAX_PATH]`。
4. **获取其他程序的图标**:
- 使用`SHGetFileInfo`函数,可以获取文件的相关信息,包括图标。例如,如果想获取记事本的图标,可以传递文件的完整路径,`SHGFI_ICON`标志,以及一个用于存储信息的结构体,如`SHFILEINFO stFileInfo`。
- 另一种方法是通过`ExtractIcon`函数,传入程序实例句柄和文件名,可以获取指定索引号的图标。例如,`HICON hIcon = ::ExtractIcon(AfxGetInstanceHandle(), _T("NotePad.exe"), 0);`。
5. **获得各种目录信息**:
- 获取Windows目录,可以使用`GetWindowsDirectory`函数,它会将Windows系统的根目录路径填充到指定的缓冲区。
- 获取Windows下的"system"目录,通常可以通过在Windows目录的基础上添加"system"子目录来实现。
在实际编程中,确保考虑到各种情况,比如不同操作系统版本下的路径差异,以及可能需要访问注册表来获取特定程序路径的情况,这是编写健壮和兼容性良好的程序的关键。对于更复杂的应用,可能还需要处理多线程、错误处理、资源管理等多个方面的问题。
2011-05-27 上传
2012-11-26 上传
2008-12-13 上传
2023-12-11 上传
2023-10-16 上传
2023-05-20 上传
2023-04-11 上传
2023-06-20 上传
2024-01-04 上传
breakthrough1
- 粉丝: 0
- 资源: 3
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜