VC开发常见问题与解决方案

需积分: 0 1 下载量 110 浏览量 更新于2024-07-26 收藏 132KB DOC 举报
"VC_常见问题百问:VC开发中的问题解答和技巧分享" 在VC(Visual C++)开发过程中,经常会遇到各种问题。本资源集合了一些常见的问题及其解决方案,旨在帮助开发者解决实际工作中可能遇到的难题。以下是部分关键知识点的详细说明: 1. 获取应用程序主窗口的指针 主窗口的指针存储在`CWinThread::m_pMainWnd`成员变量中。可以使用全局函数`AfxGetMainWnd()`来获取这个指针。例如,如果你想要最大化主窗口,可以这样操作: ```cpp AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED); ``` 2. 确定应用程序的路径 使用`GetModuleFileName` API函数可以获取当前运行的可执行文件的完整路径。参数为NULL时,表示获取调用进程的路径。之后可以通过字符串处理去掉文件名,仅保留路径部分。 示例: ```cpp TCHAR exeFullPath[MAX_PATH]; GetModuleFileName(NULL, exeFullPath, MAX_PATH); // 处理exeFullPath,去掉文件名 ``` 3. 获取其他程序的图标 - 方法一: 使用SDK函数`SHGetFileInfo`。此函数可以获取文件的信息,包括图标。示例代码展示了如何在程序窗口左上角显示记事本的图标。 ```cpp void CSampleView::OnDraw(CDC* pDC) { SHFILEINFO stFileInfo; if (::SHGetFileInfo(_T("c:\\win95\\notepad.exe"), 0, &stFileInfo, sizeof(stFileInfo), SHGFI_ICON)) { pDC->DrawIcon(10, 10, stFileInfo.hIcon); } } ``` - 方法二: 使用`ExtractIcon`函数。同样可以获取图标资源的句柄,然后绘制图标。 4. 获取各种目录信息 - Windows目录: 使用`GetWindowsDirectory`函数来获取系统Windows目录。 - Windows下的System目录: 使用`GetSystemDirectory`函数获取Windows系统目录。 注意,如果需要访问特定版本的Windows下的应用程序,比如Windows 95下的画笔程序,可能需要通过读取注册表来获取准确路径,因为不同版本的Windows安装位置可能不同,为确保程序的兼容性和稳定性,应考虑全面的处理方式。 以上只是VC开发中部分常见问题的解答,实际开发中可能还会遇到更多问题,例如内存管理、多线程同步、文件操作、用户界面设计等,都需要开发者具备扎实的VC基础知识和问题解决能力。
2023-06-08 上传