VC编程精华:获取实例句柄、主窗口与程序图标技巧

需积分: 10 1 下载量 58 浏览量 更新于2024-07-30 收藏 316KB PDF 举报
本文档提供了一些珍贵的Visual C++ (VC++)编程技巧,主要针对Microsoft Foundation Classes (MFC)库。首先,我们了解到获取应用程序实例句柄是编程中的基础操作,可以通过调用`AfxGetInstanceHandle()`函数来获取,这个句柄保存在`CWinAppIm_hInstance`中,这对于后续与系统资源交互至关重要。 接着,讨论了如何通过代码获取应用程序的主窗口指针,通常在`CWinThread::m_pMainWnd`中,通过`AfxGetMainWnd()`函数获取后,可以进一步操作窗口状态,如设置最大化(`AfxGetMainWnd()->ShowWindow(SW_SHOWMAXIMIZED);`)。 对于显示其他程序的图标,提供了两种方法。一是使用`SHGetFileInfo`函数获取指定程序的图标资源,例如展示Notepad.exe的图标,通过读取文件信息并绘制到窗口上。另一种方法是利用`ExtractIcon`函数,从指定程序的EXE文件中提取图标。 值得注意的是,为了确保程序的健壮性,提到应确保正确获取Notepad.exe或其他程序的路径,可以通过`GetWindowsDirectory`函数获取标准路径,或者根据操作系统版本和特定应用程序的注册表信息获取。 最后,文章重点讲解了如何结束应用程序和控制Windows的重启。结束应用程序通常是通过向窗口发送`WM_CLOSE`消息,触发`CWnd::OnClose`成员函数,允许用户选择是否关闭。而控制Windows重启则没有直接的MFC内置函数,通常需要使用系统API或者第三方库来实现这些高级功能。 这些技巧不仅适用于初级VC++开发者,也是中级开发者提升程序效率和用户体验的重要参考资料。通过掌握这些技巧,开发人员能够更好地管理和操作Windows环境下的应用程序,提升代码质量和可维护性。