VC编程技巧合集:窗口操作与控件应用

需积分: 0 2 下载量 2 浏览量 更新于2024-07-30 1 收藏 354KB DOC 举报
"VC用法汇总 - 这是一份针对初学者整理的VC++编程技巧集合,涵盖了多种常见的操作和问题解决方法,包括获取窗口指针、应用路径、图标提取、目录信息、自定义消息、窗口样式修改、窗口操作、控件使用、颜色与背景修改等。" 详细知识点: 1. 获取应用程序主窗口的指针:可以通过`GetSafeHwnd()`函数获取窗口的句柄,例如对`CWnd`派生类的对象调用`GetSafeHwnd()`。 2. 应用程序路径:可以使用`GetModuleFileName(NULL, filePath, MAX_PATH)`来获取应用程序的完整路径。 3. 获取其他程序图标:使用`ExtractIcon()`或`SHGetFileInfo()`函数,提供目标程序的路径,可以获取其图标。 4. 获得各种目录信息:如用户文档路径,可以通过`SHGetSpecialFolderPath()`或`SHGetKnownFolderPath()`函数。 5. 自定义消息:在消息映射中声明新的消息,然后使用`RegisterWindowMessage()`注册该消息,接着在消息处理函数中响应。 6. 改变窗口图标:使用`SetClassLong()`或`SetIcon()`函数来替换窗口的图标。 7. 修改窗口默认风格:使用`CreateWindowEx()`或`SetWindowLong()`函数,可以修改`WS_EX_*`和`WS_*`风格。 8. 窗口居中显示:计算窗口和屏幕的大小,然后调整窗口位置使其居中。 9. 窗口最大化/最小化:利用`ShowWindow(SW_MAXIMIZE)`或`SW_MINIMIZE`来实现。 10. 限制窗口大小:通过设置窗口风格`WS_SIZEBOX`和`WS_MINIMIZEBOX`,以及重载`OnSize()`消息来控制。 11. 隐藏窗口:调用`ShowWindow(SW_HIDE)`。 12. 创建字回绕的`CEditView`:需要自定义`CEditView`,重写`OnUpdate()`和`OnDraw()`方法,实现文本的换行。 13. 保持极小状态:在消息处理中处理`WM_GETMINMAXINFO`,设置`MINMAXINFO`结构的成员。 14. 移动窗口:使用`MoveWindow()`函数指定新位置。 15. 通用控件显示:使用`AFX_WM_DRAWCONTROL`消息处理通用控件的绘制。 16. 重置窗口大小:`SetWindowPos()`函数可以改变窗口的大小和位置。 17. 窗口移动:处理`WM_NCHITTEST`消息,使得除标题栏外的点击区域也能响应移动。 18. 改变视窗背景颜色:重写`OnEraseBkgnd()`消息处理函数。 19. 修改窗口标题:使用`SetWindowText()`函数。 20. 阻止显示文档名:重载`GetTitleBarInfo()`,返回自定义的标题信息。 21. 获取消息信息:通过`GetMessage()`或`PeekMessage()`获取消息,然后使用`TranslateMessage()`和`DispatchMessage()`处理。 22. 获取工具条和状态条指针:通常在类的成员变量中定义,然后在初始化时设置。 23. 启用/禁用工具提示:使用`CToolTipCtrl`类的`EnableToolTip()`方法。 24. 创建不规则形状窗口:使用`CreateRoundRectRgn()`创建自定义区域,然后设置窗口的区域。 25. 应用程序实例句柄:`AfxGetApp()->m_hInstance`可以获取应用程序的实例句柄。 26. 结束应用程序:调用`AfxExitThread()`或`PostQuitMessage()`。 27. 无模式对话框:创建`CDialog`的子类,然后调用`DoModal()`。 28. 更改窗口说明:自定义`CString`对象,重载`OnGetMinMaxInfo()`。 29. 工具条和状态条指针获取:在类的成员变量中定义,并在初始化时设置。 30. 加载其他应用程序:使用`ShellExecute()`函数。 31. 设置工具条标题:`CToolBarCtrl::SetButtonText()`。 32. 窗口始终在最前端:设置窗口风格`WS_EX_TOPMOST`。 33. 在对话框中显示位图:使用`CStatic`控件,设置其`SS_BITMAP`样式。 34. 改变对话框背景色:重写`OnEraseBkgnd()`。 35. 获取对话控件指针:通过控件ID,使用`GetDlgItem()`。 36. 禁用/启用控件:`CWnd::EnableWindow()`。 37. 控件字体更改:使用`SetFont()`。 38. OLE控件中的OLE_COLOR:`COleControl`类提供了处理`OLE_COLOR`数据类型的接口。 39. 显示文件列表:可以使用`CFileDialog`的`SetOFN()`函数,设置自定义文件过滤器。 40. 旋转按钮控件问题:可能需要自定义控件,重写绘图逻辑。 41. 动态创建控件:使用`CreateWindowEx()`,在运行时创建控件。 42. 编辑框准许字符限制:重载`OnChar()`消息处理。 43. 控件颜色修改:使用`SetBkColor()`和`SetTextColor()`。 44. 列表框闪烁问题:通常涉及到双缓存或正确处理`WM_PAINT`消息。 45. 编辑控件内容:`SetWindowText()`或`Edit_SetText()`。 以上内容仅是VC++编程中的一部分技巧,实际开发中还需要结合具体需求和MFC库的使用来实现更多功能。