VC6.0使用与调试技巧详解
需积分: 10 166 浏览量
更新于2024-07-31
收藏 417KB DOC 举报
"这篇文档是关于VC6.0使用和调试过程中常见的问题的总结,包含了多年的经验积累。主要涉及如何获取应用程序主窗口的指针、确定应用路径、获取其他程序的图标以及获得不同目录信息的方法。"
在使用Microsoft Visual C++ 6.0 (VC6.0)进行开发时,可能会遇到各种问题,以下是一些关键知识点:
1. **获取应用程序主窗口的指针**:
- 在MFC框架中,应用程序主窗口的指针通常保存在`CWinThread::m_pMainWnd`成员变量中。可以使用全局函数`AfxGetMainWnd()`来获取这个指针。例如,如果你想要最大化主窗口,你可以这样操作:
```cpp
AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED);
```
2. **确定应用程序的路径**:
- 要获取当前运行应用程序的完整路径,可以使用Windows API函数`GetModuleFileName()`,将第二个参数设为NULL,表示获取当前进程的模块路径。然后可以通过字符串处理函数去除文件名,只保留路径部分。
3. **获取其他程序的图标**:
- 方法一:利用SDK函数`SHGetFileInfo()`,它可以获取文件的相关信息,包括图标。示例代码展示了如何在程序中显示记事本的图标。
```cpp
SHFILEINFO stFileInfo;
::SHGetFileInfo(_T("c:\\win95\\notepad.exe"), 0, &stFileInfo, sizeof(stFileInfo), SHGFI_ICON);
CDC* pDC = // 获取设备上下文
pDC->DrawIcon(10, 10, stFileInfo.hIcon);
```
- 方法二:使用`ExtractIcon()`函数,同样可以提取图标资源。示例代码展示了如何获取并绘制记事本的图标。
```cpp
HICON hIcon = ::ExtractIcon(AfxGetInstanceHandle(), _T("Notepad.exe"), 0);
if (hIcon && hIcon != (HICON)-1)
pDC->DrawIcon(10, 10, hIcon);
```
- 注意,正确获取程序路径可能需要根据不同的系统环境和需求进行调整,比如在Windows 95下找寻WinPen应用,可能需要访问注册表来获取路径。
4. **获得各种目录信息**:
- Windows目录:使用`GetWindowsDirectory()`函数,它会将Windows系统的根目录路径复制到指定的缓冲区。
- Windows下的System目录:可以直接将"System32"添加到Windows目录后面,或者使用`GetSystemDirectory()`函数获取。
- 其他系统目录,如用户配置目录、临时文件目录等,可以使用相应的API函数,如`GetTempPath()`、`GetEnvironmentVariable()`来获取。
这些知识点是VC6.0开发者在编写和调试应用程序时经常会用到的技巧,掌握它们能帮助提升开发效率和解决实际问题。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2011-12-11 上传
2009-02-21 上传
2012-07-06 上传
2013-08-30 上传
2020-09-05 上传
2010-10-18 上传
qiangwen1985
- 粉丝: 3
- 资源: 16
最新资源
- css背景颜色透明背景图片切换效果
- 百度知道批量回复链接-易语言.zip
- projetocaver
- :graduation_cap:FlutterTodoList教程-JavaScript开发
- jhipsterSampleApplication
- 创业计划书-2019年整理--电动车商业创业计划书
- weixin059在线投稿系统+ssm(源码+部署说明+演示视频+源码介绍+lw).rar
- matlab开发-WilcoxonRanksumtestatandboxplotsfornescompoundsetcinhea
- sinhalakavi:僧伽罗诗
- 基于HTML实现的时尚黑色透明手机响应式商业整站(含HTML源代码+使用说明+毕业设计).zip
- withExEditor:使用外部编辑器查看源代码,查看选择内容和编辑文本
- 创业计划书-某啤酒厂排污可研
- bootstrap-js-context-menu.zip
- 将您的REST API转换为GraphQL-代理服务器,可通过GraphQL DSL,高性能嵌套子代,变异,输入类型等将请求从GraphQL传递到REST。-JavaScript开发
- neo4jlog.zip
- smartappandroid:POC疲劳android应用