VC/MFC开发常见问题解析:108个疑问解答
需积分: 10 44 浏览量
更新于2024-07-25
收藏 77KB PDF 举报
"这篇资源是关于VC/MFC开发中遇到的108个常见问题的详细解答,非常适合初学者学习。这份资料汇总了网络上广泛流传的解决方案,可以帮助开发者解决实际编程过程中的各种疑难杂症。"
以下是部分问题的详细说明:
1. 获取应用程序主窗口的指针:在VC/MFC中,主窗口的指针存储在`CWinThread::m_pMainWnd`成员变量中。你可以通过调用全局函数`AfxGetMainWnd()`来获取这个指针。例如,如果想要最大化主窗口,可以这样写:
```cpp
CWnd* pMainWnd = AfxGetMainWnd();
pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
```
2. 确定应用程序的路径:使用API函数`GetModuleFileName`可以获取到当前运行程序的完整路径。这个函数需要一个缓冲区来存放路径,并且参数为NULL时,表示获取当前进程的可执行文件路径。例如:
```cpp
TCHAR exeFullPath[MAX_PATH];
GetModuleFileName(NULL, exeFullPath, MAX_PATH);
// 然后你可以对exeFullPath进行处理,去掉可执行文件名
```
3. 在程序中获取其他程序的图标:有两种方法:
- 使用SDK函数`SHGetFileInfo`,它可以获取文件的图标以及其他信息。
- 使用`ExtractIcon`函数,直接从可执行文件中提取图标资源。
示例代码如下:
```cpp
// 方法一:使用SHGetFileInfo
SHFILEINFO stFileInfo;
if (SHGetFileInfo(_T("c:\\pwin95\\notepad.exe"), 0, &stFileInfo, sizeof(stFileInfo), SHGFI_ICON))
{
CDC* pDC = ...; // 获取绘图设备上下文
pDC->DrawIcon(10, 10, stFileInfo.hIcon);
}
// 方法二:使用ExtractIcon
HICON hIcon = ExtractIcon(AfxGetInstanceHandle(), _T("NotePad.exe"), 0);
if (hIcon && hIcon != (HICON)-1)
{
CDC* pDC = ...; // 获取绘图设备上下文
pDC->DrawIcon(10, 10, hIcon);
}
```
注意,获取其他程序的路径,尤其是系统程序,可能需要根据不同的操作系统版本进行处理。
4. 获取各种目录信息:
- Windows目录:可以使用`GetWindowsDirectory`函数来获取,它会将Windows系统安装的路径填充到指定的缓冲区中。
- Windows下的System目录:同样,使用`GetSystemDirectory`函数可以获得System目录的路径。
以上仅是其中的四个问题,实际资源中还包含了其他104个问题的解答,涵盖了VC/MFC开发的各种细节和技巧,对于提升开发技能和解决实际问题有着极大的帮助。
点击了解资源详情
点击了解资源详情
点击了解资源详情
138 浏览量
2009-08-26 上传
2011-06-28 上传
2008-05-13 上传
2019-10-17 上传
2009-05-14 上传
hellowuhan
- 粉丝: 10
- 资源: 12
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器