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

需积分: 9 4 下载量 39 浏览量 更新于2024-10-12 收藏 313KB DOC 举报
"VC常用操作源码总结" 文件是一份集合了Visual C++(简称VC)编程中常见操作的源代码文档,涵盖了多种实用技巧,包括系统操作、界面交互、剪切板操作、窗口管理等多个方面。以下是这些知识点的详细说明: 1. **CD-ROM操作**:可能涉及到对CD-ROM驱动器的读取或控制,例如读取光盘信息、播放音乐等。 2. **关闭/重启计算机**:实现系统关机或重启功能,通常需要用到Windows API函数如`InitiateSystemShutdown`。 3. **枚举所有字体**:遍历系统中安装的所有字体,显示或保存字体信息,这需要调用`EnumFontFamilies`等API。 4. **只运行一个程序实例**:确保应用程序在同一时刻只有一个实例运行,常通过检查注册表或临时文件来实现。 5. **得到鼠标位置**:获取鼠标在屏幕或窗口上的坐标,可以使用`GetCursorPos`函数。 6. **显示和隐藏程序菜单**:控制程序主窗口的菜单栏是否可见,通常通过修改窗口样式或调用`ShowWindow`。 7. **获取可执行文件的图标**:提取EXE文件的图标资源,使用`ExtractIcon`函数。 8. **窗口自动靠边程序演示**:实现窗口自动贴靠到屏幕边缘的功能,利用Windows的消息处理机制。 9. **系统菜单添加菜单项**:向窗口的系统菜单中动态添加自定义菜单项,通过`AppendMenu`或`InsertMenu`实现。 10. **动态增加或删除菜单**:在运行时根据需要添加或移除菜单项,利用`DeleteMenu`和`AppendMenu`等函数。 11. **改变应用程序的图标**:更新程序的图标,可能涉及修改资源文件和更新窗口类信息。 12. **改变窗口标题的方法**:动态修改窗口标题,使用`SetWindowText`函数。 13. **剪切板上通过增强元文件拷贝图像数据**:将图像数据复制到剪切板以便于在不同程序间共享,利用`OpenClipboard`、`CreateEnhMetaFile`、`DrawEnhMetaFile`等API。 14. **剪切板上文本数据的传送**:处理剪切板上的文本数据,使用`OpenClipboard`、`EmptyClipboard`和`SetClipboardData`。 15. **捕捉屏幕图像到剪切板中**:截取屏幕并保存到剪切板,通过`BitBlt`和`SetClipboardData`等函数。 16. **将位图缩放显示**:调整位图大小以适应显示区域,使用`StretchBlt`函数。 17. **改变对话框中控件的颜色**:更改对话框控件的前景或背景颜色,可能涉及到`SetBkColor`和`SetTextColor`。 18. **修改窗口外观**:定制窗口样式,包括边框、标题、大小等,使用`CreateWindowEx`或`SetWindowLong`。 19. **获得应用程序主窗口的指针**:获取应用程序主窗口的句柄,使用`FindWindow`或`GetActiveWindow`。 20. **确定应用程序的路径**:获取应用程序的完整路径,使用`GetModuleFileName`。 21. **获得其他程序的图标**:获取其他已运行程序的图标,通常通过读取进程信息。 22. **获得各种目录信息**:获取系统目录如程序文件夹、临时文件夹等,使用`GetWindowsDirectory`或`GetSystemDirectory`。 23. **如何自定义消息**:创建并处理自定义消息,通过`RegisterWindowMessage`。 24. **改变窗口的缺省风格**:修改窗口的默认风格,使用`CreateWindowEx`或`SetWindowLong`。 25. **将窗口居中显示**:使窗口在屏幕或另一个窗口中居中,通过计算位置和调用`MoveWindow`。 26. **一启动就最大化和最小化**:控制程序启动时的窗口状态,设置窗口风格和使用`ShowWindow`。 27. **限制窗口的大小**:设置窗口的最大和最小尺寸,通过`SetWindowPos`。 28. **创建一个字回绕的CEditView**:创建支持文本换行的编辑控件。 29. **程序保持极小状态**:让窗口始终保持最小化状态。 30. **移动窗口**:动态改变窗口位置,使用`MoveWindow`。 31. **重置窗口的大小**:调整窗口尺寸,通过`SetWindowPos`。 32. **单击窗口标题栏以外区域使窗口移动**:监听非标题栏区域的鼠标点击事件,实现窗口移动。 33. **改变视窗的背景颜色**:修改窗口背景色,使用`SetBkColor`。 34. **防止主框窗口在其说明中显示活动的文档名**:可能涉及到修改窗口类信息。 35. **获取有关窗口正在处理的当前消息的信息**:通过`GetMessage`、`TranslateMessage`和`DispatchMessage`获取消息信息。 36. **代码中获取工具条和状态条的指针**:获取控件指针以进行操作。 37. **使能和禁止工具条的工具提示**:控制工具提示的显示,通过`TOOLINFO`结构和`SendMessage`。 38. **如何创建一个不规则形状的窗口**:使用自定义绘制技术,如`BeginPath`、`EndPath`和`SetWindowRgn`。 39. **获取应用程序的实例句柄**:获取应用程序实例的句柄,使用`GetModuleHandle`。 40. **如何编程结束应用程序**:安全地结束程序,使用`PostQuitMessage`。 41. **创建和使用无模式对话框**:创建可以在用户完成操作后关闭的对话框,通过`CreateDialogParam`和`DialogBoxParam`。 42. **怎样加载其他的应用程序**:可能是关于进程创建和控制,如`CreateProcess`。 43. **使窗口始终在最前方**:设置窗口的顶层,使用`SetWindowPos`。 44. **在对话框中显示一个位图**:在对话框控件中嵌入位图,使用控件的`BITMAP`资源。 45. **获取一个对话控件的指针**:通过控件ID获取其指针,使用`GetDlgItem`。 46. **改变控件的字体**:修改控件的字体属性,使用`SetFont`。 47. **OLE控件中使用OLE_COLOR数据类型**:在OLE控件中处理颜色值,涉及到`OLE_COLOR`的转换和应用。 48. **在不使用通用文件打开对话的情况下如何显示一个文件列表**:直接创建并显示文件列表,可能需要手动构建对话框。 49. **旋转按钮控件**:创建具有旋转功能的按钮,可能需要自定义控件绘图。 50. **用位图显示下压按钮**:自定义按钮状态下的显示,使用位图资源和控件消息处理。 51. **创建三态下压按钮**:实现类似复选框的三态按钮,可能需要自定义控件消息处理。 52. **如何动态创建控件**:在运行时创建新的控件,使用`CreateWindow`或`CreateWindowEx`。 53. **限制编辑框中的准许字符**:通过`EM_SETCHARFORMAT`消息和`CHARFORMAT`结构限制输入字符。 54. **向列表框中添加多个项时防止闪烁**:批量添加列表框项时避免闪烁,可能需要一次性加载所有数据。 55. **向编辑控件中添加文本**:在编辑控件中插入或追加文本,使用`SetWindowText`或`EM_SETSEL`。 56. **访问预定义的GDI对象**:使用系统提供的图形设备接口(GDI)对象,如画刷、笔和字体。 57. **获取GDI对象的属性信息**:查询GDI对象的属性,如颜色、样式等,使用`GetObject`。 58. **实现一个橡皮区矩形**:创建一个橡皮擦效果的矩形,通过`SelectClipRgn`和`Rectangle`。 59. **更新翻转背景颜色的文本**:在不同背景颜色下显示文本,可能涉及自定义绘图。 60. **创建一个具有特定点大小的字体**:创建特定字号的字体对象,使用`CreateFont`。 61. **如何计算一个串的大小**:计算字符串的字节数或字符数,使用`lstrlen`或`MultiByteToWideChar`。 62. **显示旋转文本**:绘制旋转的文本,可能涉及到`TextOut`和自定义绘图逻辑。 63. **显示包含标签字符的串**:处理包含特殊字符的字符串,可能需要转换或过滤。 64. **串太长时如何在其末尾显示一个省略号**:截断过长的字符串并显示省略号,使用`DrawText`的DT_END_ELLIPS