VC++编程实用技巧与源码示例

需积分: 3 1 下载量 179 浏览量 更新于2024-07-31 1 收藏 324KB PDF 举报
"VC常用操作源码总结" 这篇文章涵盖了在Visual C++(VC)开发中常见的各种操作和功能的源码实现。以下是对这些知识点的详细解释: 1. 关闭计算机和重启计算机: 这些操作涉及到系统级别的控制,通常通过发送特定的Windows API消息如WM_SHUTDOWN或WM_REBOOT来实现。 2. 枚举所有字体: 在Windows系统中,可以通过EnumFontFamilies函数遍历所有已安装的字体,并获取它们的相关信息。 3. 只运行一个程序实例: 通过检查注册表或临时文件来确保同一时间只有一个程序实例在运行,防止多实例冲突。 4. 获取鼠标位置: 使用GetCursorPos函数可以获取鼠标的当前位置。 5. 显示和隐藏程序菜单: 通过修改窗口类的风格,例如使用SetMenu函数来切换程序的菜单栏显示与否。 6. 获取可执行文件的图标: 使用LoadIcon函数可以从EXE文件中提取图标资源。 7. 窗口自动靠边程序演示: 实现窗口边缘拖动时自动贴边布局的功能,通常涉及到消息处理和窗口位置调整。 8. 系统菜单添加菜单项: 修改窗口的系统菜单,可以使用InsertMenu或AppendMenu函数。 9. 动态增加或删除菜单: 动态管理菜单栏,使用RemoveMenu或InsertMenu进行增删操作。 10. 改变应用程序的图标: 更新窗口的图标,可以通过修改窗口类信息或直接在创建窗口时指定图标。 11. 改变窗口标题的方法: 修改窗口标题,使用SetWindowText函数。 12. 剪切板操作: 如通过Enhanced Metafile复制图像,以及传输文本数据,利用OpenClipboard、EmptyClipboard、SetClipboardData等剪切板API。 13. 捕捉屏幕图像到剪切板中: 使用BitBlt函数从设备上下文(DC)复制屏幕内容到剪切板。 14. 位图缩放显示: 使用 StretchDIBits 函数实现位图的缩放显示。 15. 改变对话框中控件的颜色: 修改控件的前景色或背景色,通过SetBkColor和SetTextColor函数。 16. 修改窗口外观: 可以通过修改窗口样式(如WS_BORDER, WS_CAPTION等)或自定义窗口过程来改变窗口的外观。 17. 获得应用程序主窗口的指针: 使用FindWindow或GetActiveWindow函数获取当前活动窗口的句柄。 18. 确定应用程序的路径: 使用GetModuleFileName函数获取程序的完整路径。 19. 获得其他程序的图标: 获取其他进程的图标,通常需要读取进程的资源信息。 20. 获得各种目录信息: 包括用户文档、系统目录等,可以使用SHGetPathFromIDList或GetSpecialFolderLocation函数。 21. 自定义消息: 定义并处理应用程序的私有消息,通过RegisterWindowMessage函数注册。 22. 创建不规则形状的窗口: 使用WS_EX_LAYERED窗口样式和UpdateLayeredWindow函数创建透明或不规则形状的窗口。 23. 获取应用程序的实例句柄: GetModuleHandle(NULL)返回当前应用程序的模块实例句柄。 24. 编程结束应用程序: 调用ExitProcess或PostQuitMessage来退出应用程序。 25. 创建和使用无模式对话框: 创建一个不会阻止用户与应用程序其他部分交互的对话框,使用CreateDialogParam或DialogBoxParam函数。 26. 使窗口始终在最前方: 通过设置WS_EX_TOPMOST窗口风格,让窗口始终位于其他窗口之上。 27. 在对话框中显示位图:通过创建位图控件或自定义画图实现。 28. 获取控件的指针:使用GetDlgItem函数获取对话框中的控件指针。 29. OLE_COLOR数据类型:用于表示OLE对象的颜色,通常在与COM组件交互时使用。 30. 不使用通用文件打开对话显示文件列表:自定义文件选择界面,通过枚举文件和目录实现。 31. 旋转按钮控件:创建带有箭头方向改变功能的按钮,可能涉及自定义画图和消息处理。 32. 动态创建控件:在运行时根据需要创建控件,通过CreateWindowEx函数。 33. 限制编辑框输入的字符:使用EM_SETLIMITTEXT消息或自定义编辑框的消息处理。 34. 防止列表框闪烁:在批量添加项时使用BeginUpdate/EndUpdate避免重绘闪烁。 35. 向编辑控件添加文本:使用SetWindowText或EM_REPLACESEL消息。 36. 访问预定义的GDI对象:如刷子、字体等,通过GetStockObject获取。 37. 获取GDI对象属性:例如使用GetObject函数获取对象信息。 38. 橡皮区矩形:通过创建橡皮擦区域,实现自定义擦除效果。 39. 翻转背景颜色的文本:使用刷子和DrawText函数实现颜色反转文本。 40. 创建特定点大小的字体:使用CreateFontIndirect函数,传入逻辑单位的字体尺寸。 41. 计算字符串大小:使用GetTextExtentPoint32函数获取字符串在特定字体下的尺寸。 42. 旋转文本:通过自定义画图,应用坐标变换实现文本旋转。 43. 显示包含标签字符的串:处理宽字符和多字节字符,确保正确显示。 44. 串末尾省略号:当字符串过长时,截断并添加省略号,可以使用PathCchAddEndEllipsis函数。 45. 禁用菜单项无效问题:可能是因为菜单项的默认属性导致,需要确保更新菜单项状态后刷新菜单。 46. 获取系统显示元素颜色:通过GetSysColor函数获取系统主题颜色。 47. 查询和设置系统设置:使用SystemParametersInfo函数来获取或更改用户环境设置。 以上是VC开发中常见的操作和源码实现的概览,每个知识点都涉及到Windows API的使用和Windows消息机制的理解。