VC编程技巧合集:窗口操作与控件应用
需积分: 3 106 浏览量
更新于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库的使用来实现更多功能。
114 浏览量
点击了解资源详情
点击了解资源详情
2010-05-27 上传
121 浏览量
2011-09-07 上传
2013-08-20 上传
2012-11-10 上传
游走古城
- 粉丝: 5
- 资源: 4
最新资源
- pogpoints
- A-Star-Visualizer
- MusicalStructure:显示数组,数组列表,意图和Java代码
- tmux-thumbs-用Rust编写的tmux-finger的快速版本,复制/粘贴vimium / vimperator等tmux。-Rust开发
- 行业文档-设计装置-一种平张纸托盘包装盖板.zip
- 视场演员组件。虚幻引擎4:添加呈现视场的组件
- XSL合并工具,店铺商品订单合并工具
- kiftd私人云盘搭建系统 v1.0.18
- buildTest
- ESP32-W5100:PoC应用程序测试W5100与esp-idf的集成
- 定时关机.rar
- Rcon Web Console-开源
- LSP客户端在Rust中实现并开箱即用地支持rls。-Rust开发
- 行业文档-设计装置-一种具有储物功能的床体包裹面料.zip
- DroidAttack:TPS(第三人称射击游戏)演示游戏,该游戏使用C ++编码的虚幻引擎4构建。 - 开发中
- STM32官方文档HAL&LL库相关