Windows窗口绘制、窗口类型小结

一、绘图
1、更新区域(update region)
    1)更新区域是窗口中过期或无效,需要重绘的区域。系统依靠更新区域向应用程序发送WM_PAINT消息。
        WM_PAINT产生的条件:有需要更新的区域,并且消息队列中没有其它消息时。
    2)相关API:
        InvalidateRect/InvalidateRgn:无效化一块区域;
        ValidateRect/ValidateRgn:有效化一块区域,将这块区域从更新区域中去掉。
        GetUpdateRect/GetUpdateRgn:获得更新矩形/区域。
        UpdateWindow:如果更新区域非空,立即发送WM_PAINT消息;
        RedrawWindow:不管更新区域是否为空,立即发送WM_PAINT消息。

二、窗口
1、窗口的类型
    Windows窗口分为3种类型:
     #define WS_OVERLAPPED             0x00000000L
       #define WS_POPUP                       0x80000000L
       #define WS_CHILD                       0x40000000L
    Child窗口是其它窗口的子窗口;
    popup窗口是弹出窗口,适合做主窗口;
    overplapped是重叠窗口,默认有标题栏和边框。即使显示去掉WS_CAPTION和WS_BORDER这些风格,Windows还是会加上标题栏和边框。适合做主窗口。重叠窗口是top-level窗口,不能成为子窗口。
2、窗口与窗口的关系
    1)Destop窗口
     桌面窗口,一个特殊的窗口,可以理解为就是桌面。
    2)top-level窗口
    没有WS_CHILD属性的窗口,父窗口一般为Desktop或者NULL。Windows发送某些消息的时候一般要求是top-level窗口,如HWND_BROADCAST、WM_DISPLAYCHANGE等。
    3)子窗口
    具有WS_CHILD属性的窗口为子窗口。子窗口只能出现在父窗口的客户区内。如果要使一个窗口随另一个窗口一起移动,可以考虑使其成为另一个窗口的子窗口。需要注意的是,当父窗口移动时,子窗口不会收到WM_MOVE等消息,因为子窗口相对于父窗口并没有移动。
    4)parent和owner关系
    这个暂时还没发现实际中owner有啥用,主要是parent-child关系常用。
3、常用窗口风格
    WS_CLIPSIBLINGS:用于兄弟窗口,即有相同父窗口的子窗口。设置了该风格的子窗口需要重绘(收到WM_PAINT消息)时,将剪裁其它子窗口的重叠部分,被遮挡的区域不进行重绘。如果没有这个属性,子窗口绘制时可能会绘制到兄弟窗口的客户区上。因此所有的top-level窗口都具有这个属性。
    WS_CLIPCHILDREN:用于父窗口。设置了这个属性,当父窗口进行绘制时,子窗口的区域父窗口不负责进行绘制,子窗口自行绘制。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows 应用高级编程--C#编程篇 <br>作者:〔美〕杰汉森,〔美〕雷诺德 著,张哲峰 译 出版社:清华大学出版社 出版时间:2003年01月 <br>第1章 Windows编程基础<br>1.1 Windows和窗体<br>1.1.1 Windows窗体的概念<br>1.1.2 System.Windows.Forms命名空间<br>1.2 Visual Studio.NET IDE简介<br>1.2.1 解决方案和项目<br>1.2.2 Toolbox和Properties窗口<br>1.2.3 动态帮助窗口<br>1.2.4 类现图<br>1.2.5 对象浏览器<br>1.2.6 代码编辑器<br>1.3 事件处理<br>1.3.1 使用消息框<br>1.3.2 使用IntelliSense<br>1.4 小结<br>第2章 简单用户界面控件<br>2.1 用户界面设计原则<br>2.2 漫游简单用户控件<br>2.2.1 PictureBox控件<br>2.2.2 Label控件<br>2.2.3 Textbox控件<br>2.2.4 List控件<br>2.2.5 基于按钮的控件<br>2.2.6 Bar控件<br>2.3 小结<br>第3章 高级用户界面控件<br>3.1 高级控件简介<br>3.2 概述<br>3.2.1 TabControl控件<br>3.2.2 TreeView控件和ListView控件<br>3.2.3 Splitter控件<br>3.2.4 DataTimePicker控件<br>3.2.5 MonthCalendar控件<br>3.3 控制光标外观<br>3.4 小结<br>第4章 菜单和工具栏<br>4.1 菜单控件和类<br>4.1.1 创建主菜单<br>4.1.2 创建上下文菜单<br>4.2 工具栏控件和类<br>4.2.1 创建工具栏<br>4.2.2 显示/隐藏工具栏<br>4.3 小结<br>第5章 使用图形<br>5.1 设备语境<br>5.2 Graphics类<br>5.2.1 使用Graphics类<br>5.2.2 Graphics类的方法<br>5.3 指定位置、大小和颜色<br>5.3.1 位置和大小<br>5.3.2 颜色<br>5.4 绘制线条和外形<br>5.4.1 Pen类<br>5.4.2 画图方法<br>5.4.3 按要求画图<br>5.5 颜色填充<br>5.5.1 刷子工具<br>5.5.2 填充方法<br>5.6 使用文本<br>5.7 图像<br>5.8 小结<br>第6章 打印<br>6.1 System.Drawing.Printing命名空间<br>6.2 打印图像<br>6.2.1 更改页面设置<br>6.2.2 打印对话框<br>6.2.3 保持高宽比<br>6.3 打印多页<br>6.3.1 分页<br>6.3.2 添加页眉<br>6.4 小结<br>第7章 链接数据库<br>第8章 文件和注册表操作<br>第9章 使用文档/视图模式<br>第10章 提供帮助<br>第11章 部署Windows应用程序<br><br><br>
第1章 Windows程序设计基础 1 1.1 Windows概述 1 1.1.1 Windows的发展历史 1 1.1.2 Windows的技术特点 2 1.2 Windows程序特点 3 1.2.1 程序组成 3 1.2.2 数据类型 4 1.2.3 匈牙利命名法 6 1.2.4 Windows消息 7 1.2.5 运行模式 8 1.3 简单的Windows程序介绍 9 1.3.1 开始之前 9 1.3.2 WinMain函数 10 1.3.3 注册窗口类 11 1.3.4 建立窗口 13 1.3.5 窗口函数 14 1.3.6 窗口内的输出 15 1.4 上机步骤 16 1.4.1 进入开发环境 16 1.4.2 新建项目 17 1.4.3 修改项目选项 17 1.4.4 添加程序文件 18 1.4.5 编辑程序 18 1.4.6 调试运行 18 1.5 小结 19 1.6 练习题 19 第2章 MFC程序设计基础 21 2.1 MFC概述 21 2.1.1 MFC与应用程序框架 21 2.1.2 MFC的组成 21 2.1.3 MFC中的类 22 2.2 MFC程序的特点 23 2.2.1 概述 23 2.2.2 MFC与消息处理 23 2.2.3 运行模式 24 2.3 简单的MFC程序 25 2.3.1 开始之前 25 2.3.2 派生应用程序类 25 2.3.3 派生窗口类 26 2.3.4 建立窗口 26 2.3.5 加入消息映射 27 2.3.6 建立MFC应用程序对象 28 2.4 上机步骤 28 2.4.1 建立项目 28 2.4.2 修改项目属性 28 2.4.3 调试运行 28 2.5 使用资源 29 2.5.1 建立图标资源 29 2.5.2 在程序中使用图标资源 31 2.6 小结 31 2.7 练习题 32 第3章 常用MFC通用类 33 3.1 CRect、CPoint、CSize类 33 3.1.1 CRect类 33 3.1.2 CPoint类 33 3.1.3 CSize类 34 3.2 CString类 34 3.2.1 创建字符串 34 3.2.2 访问字符串数据 35 3.2.3 字符串的比较 36 3.2.4 子串函数 38 3.2.5 字符串处理函数 39 3.3 集合类 39 3.3.1 列表类CList 40 3.3.2 数组类CArray 43 3.3.3 映射类CMap 45 3.4 时间处理类 47 3.4.1 COleDateTime类 47 3.4.2 COleDateTimeSpan类 51 3.5 异常处理类 52 3.5.1 异常处理类的使用 53 3.5.2 MFC异常处理类简介 53 3.6 小结 54 3.7 练习题 55 第4章 文档视图程序 56 4.1 概述 56 4.2 文档 56 4.2.1 单文档对象程序 56 4.2.2 多文档对象程序 57 4.2.3 多文档类型程序 58 4.3 视 58 4.3.1 一个文档对象对应一个视对象 58 4.3.2 一个文档对象对应多个视对象 59 4.3.3 一个文档对应多个视类型 59 4.4 窗口框架 59 4.5 文档模板 60 4.6 建立标准单文档程序框架 61 4.6.1 新建项目 61 4.6.2 修改项目选项 62 4.6.3 完成向导 64 4.6.4 运行结果 65 4.7 单文档程序框架分析 66 4.7.1 Stdafx.h 66 4.7.2 Stdafx.cpp 67 4.7.3 0401.h 67 4.7.4 0401.cpp 68 4.7.5 MainFrm.h 72 4.7.6 MainFrm.cpp 73 4.7.7 TextDoc.h 77 4.7.8 TextDoc.cpp 78 4.7.9 TextView.h 81 4.7.10 TextView.cpp 82 4.8 小结 85 4.9 练习题 85 第5章 绘图输出 86 5.1 GDI与MFC 86 5.1.1 概述 86 5.1.2 设备环境类 87 5.1.3 GDI对象类 87 5.2 绘制图形 88 5.2.1 开始绘图 88 5.2.2 更改画笔 91 5.2.3 使用画刷 92 5.2.4 使用位图 93 5.3 输出文本 99 5.3.1 文本输出函数 99 5.3.2 更改文本颜色 100 5.3.3 更改字型、字体 102 5.4 坐标与坐标模式 106 5.4.1 坐标模式 107 5.4.2 MM_ANISOTROPIC坐标模式 108 5.4.3 MM_ISOTROPIC坐标模式 110 5.4.4 平移坐标 111 5.4.5 修改坐标方向 112 5.5 小结 113 5.6 练习题 114 第6章 用户输入 115 6.1 鼠标和键盘 115 6.1.1 鼠标消息 115 6.1.2 键盘消息 119 6.2 使用菜单 121 6.2.1 编辑菜单 121 6.2.2 处理菜单命令 123 6.2.3 修改菜单状态 125 6.2.4 使用弹出式菜单 127 6.3 小结 129 6.4 练习题 130 第7章 工具栏与状态栏 131 7.1 工具栏 131 7.1.1 编辑工具栏 131 7.1.2 处理工具栏命令 133 7.1.3 工具栏按钮状态 135 7.1.4 自定义工具栏 135 7.2 状态栏 141 7.2.1 默认状态栏 142 7.2.2 操作状态栏 143 7.3 小结 149 7.4 练习题 149 第8章 使用文件 150 8.1 CFile类 150 8.1.1 文件的建立、打开和关闭 150 8.1.2 文件的读、写 152 8.1.3 文件内容的定位与锁定 153 8.1.4 获取、设置文件状态 154 8.2 序列化 156 8.2.1 序列化的概念 156 8.2.2 Serialize函数 156 8.2.3 CArchive类 157 8.2.4 序列化应用实例 159 8.3 文件管理 162 8.3.1 文件操作 162 8.3.2 目录操作 163 8.4 小结 164 8.5 练习题 164 第9章 常用消息 165 9.1 消息的分类 165 9.2 系统消息 165 9.2.1 WM_CREATE 165 9.2.2 WM_CLOSE 166 9.2.3 WM_QUERYENDSEESSION 166 9.2.4 WM_DESTROY 167 9.2.5 WM_NCDESTROY 167 9.2.6 WM_TIMER 167 9.2.7 WM_PAINT 168 9.2.8 程序实例 169 9.3 用户自定义消息 171 9.3.1 消息标识 172 9.3.2 消息映射宏 172 9.3.3 消息发送 172 9.3.4 消息接收 173 9.3.5 使用系统热键消息 174 9.3.6 使用进程间消息 177 9.4 小结 180 9.5 练习题 181 第10章 对话框 182 10.1 概述 182 10.2 对话框模板资源 182 10.2.1 创建对话框模板资源 182 10.2.2 编辑对话框模板属性 183 10.2.3 在对话框模板中添加或删除控件 184 10.2.4 在对话框模板上调整控件 185 10.2.5 修改控件的属性 185 10.2.6 设定控件跳格次序 186 10.2.7 测试对话框模板资源 187 10.3 对话框类 187 10.3.1 模式对话框 188 10.3.2 模式对话框例子 188 10.3.3 非模式对话框 189 10.3.4 非模式对话框例子 189 10.4 自定义对话框 190 10.4.1 建立模板资源 191 10.4.2 建立CDialog派生类 191 10.4.3 为控件添加消息映射 192 10.4.4 为控件添加成员变量 193 10.4.5 使用CDialog派生类对象 194 10.5 基于对话框的MFC程序 194 10.5.1 建立项目 195 10.5.2 对话框程序框架分析 196 10.6 通用对话框 202 10.6.1 CFileDialog 203 10.6.2 CColorDialog 205 10.6.3 CFontDialog 206 10.7 小结 208 10.8 练习题 208 第11章 常用控件 210 11.1 概述 210 11.1.1 控件消息 210 11.1.2 通知消息 210 11.1.3 控件的创建 210 11.2 按钮(BUTTON) 210 11.2.1 按钮样式 211 11.2.2 按钮控件的通知消息 211 11.2.3 在对话框中使用按钮的例子 211 11.3 文本编辑框(EDITBOX) 213 11.3.1 文本编辑框的样式 214 11.3.2 文本编辑框控件的通知消息 214 11.3.3 在对话框中使用编辑框控件 214 11.4 静态控件(STATIC) 216 11.4.1 静态控件的样式 216 11.4.2 静态控件的通知消息 217 11.4.3 在对话框中使用静态控件 217 11.5 复选框 (CHECKBUTTON) 218 11.5.1 复选框的样式 218 11.5.2 复选框的通知消息 219 11.5.3 在对话框中使用复选框 219 11.6 单选按扭 (RADIOBUTTON) 219 11.6.1 单选按钮的样式 219 11.6.2 单选按钮的通知消息 219 11.6.3 在对话框中使用复选框和单选按钮 219 11.7 进程条 (PROGRESS) 221 11.7.1 进程条的样式 221 11.7.2 进程条的成员函数 221 11.7.3 在对话框中使用进程条控件 221 11.8 滑动条 (SLIDER) 222 11.8.1 滑动控件的样式 223 11.8.2 滑动控件的通知消息 223 11.8.3 微调控件的成员函数 223 11.8.4 在对话框中使用滑动条控件 224 11.9 Spin控件 224 11.9.1 微调控件的样式 225 11.9.2 微调控件的通知消息 225 11.9.3 微调控件的成员函数 225 11.9.4 在对话框中使用微调控件 226 11.10 组合框 (ComboBox) 227 11.10.1 组合框的样式 227 11.10.2 组合框的常用通知消息 228 11.10.3 在对话框中使用组合框 228 11.11 小结 229 11.12 练习题 229 第12章 使用树控件和列表控件 231 12.1 图像列表 231 12.1.1 建立图像列表 231 12.1.2 图像列表的操作 232 12.2 树控件 233 12.2.1 概述 233 12.2.2 树控件的创建 234 12.2.3 树控件的操作 238 12.3 列表控件 240 12.3.1 概述 240 12.3.2 列表控件的创建 241 12.3.3 列表控件的操作 245 12.4 小结 248 12.5 练习题 248 第13章 动态链接库 249 13.1 概述 249 13.2 创建标准Win32动态库 249 13.2.1 新建标准Win32动态库项目 250 13.2.2 添加函数 250 13.2.3 添加类 253 13.2.4 导出函数 253 13.2.5 导出自定义类 253 13.2.6 生成DLL 254 13.3 创建标准MFC动态库 254 13.3.1 新建MFC动态库项目 254 13.3.2 添加自定义函数 255 13.3.3 添加自定义类 258 13.3.4 导出自定义函数 258 13.3.5 导出自定义类 258 13.4 在程序中使用动态库 258 13.4.1 加载 DLL的方式 258 13.4.2 使用隐式加载 259 13.4.3 使用显式加载 260 13.5 小结 262 13.6 练习题 262 第14章 使用多任务 264 14.1 进程 264 14.1.1 进程的优先级 264 14.1.2 启动进程 265 14.1.3 进程的管理 267 14.2 线程 274 14.2.1 线程的优先级 275 14.2.2 线程的创建和终止 275 14.2.3 使用工作者线程 276 14.2.4 使用用户接口线程 277 14.3 进程、线程间的同步 279 14.3.1 等待函数 280 14.3.2 使用事件 281 14.3.3 使用临界段 282 14.3.4 使用互斥量 284 14.3.5 使用信号量 285 14.4 小结 287 14.5 练习题 288 附 录 289 附录A Windows窗口样式 289 附录B Windows虚键码表 292 附录C 常用数据结构 294 参考文献 306
本书全面介绍创建功能强大的Windows应用程序的各种高级编程技术。具体内容包括:利用各种控件创建图形用户界面,在Windows应用程序中使用图形和GDI+,在标准Windows文件中加载和保存数据,通过应用程序打印信息,开发能够处理多文档的应用程序,链接数据库,提供帮助,部署应用程序等;同时,,通过创建实用的应用程序示例来展示这些编程技术的用法和技巧。 本书适合希望掌握如何使用Windows Forms创建功能强大、稳健且界面友好的Windows应用程序的开发人员。另外,本书读者还要求具备一定的C#编程基本技能并熟悉数据库的概念。 目录 第1章 Windows编程基础 1.1 Windows和窗体 1.1.1 Windows窗体的概念 1.1.2 System.Windows.Forms命名空间 1.2 Visual Studio.NET IDE简介 1.2.1 解决方案和项目 1.2.2 Toolbox和Properties窗口 1.2.3 动态帮助窗口 1.2.4 类现图 1.2.5 对象浏览器 1.2.6 代码编辑器 1.3 事件处理 1.3.1 使用消息框 1.3.2 使用IntelliSense 1.4 小结 第2章 简单用户界面控件 2.1 用户界面设计原则 2.2 漫游简单用户控件 2.2.1 PictureBox控件 2.2.2 Label控件 2.2.3 Textbox控件 2.2.4 List控件 2.2.5 基于按钮的控件 2.2.6 Bar控件 2.3 小结 第3章 高级用户界面控件 3.1 高级控件简介 3.2 概述 3.2.1 TabControl控件 3.2.2 TreeView控件和ListView控件 3.2.3 Splitter控件 3.2.4 DataTimePicker控件 3.2.5 MonthCalendar控件 3.3 控制光标外观 3.4 小结 第4章 菜单和工具栏 4.1 菜单控件和类 4.1.1 创建主菜单 4.1.2 创建上下文菜单 4.2 工具栏控件和类 4.2.1 创建工具栏 4.2.2 显示/隐藏工具栏 4.3 小结 第5章 使用图形 5.1 设备语境 5.2 Graphics类 5.2.1 使用Graphics类 5.2.2 Graphics类的方法 5.3 指定位置、大小和颜色 5.3.1 位置和大小 5.3.2 颜色 5.4 绘制线条和外形 5.4.1 Pen类 5.4.2 画图方法 5.4.3 按要求画图 5.5 颜色填充 5.5.1 刷子工具 5.5.2 填充方法 5.6 使用文本 5.7 图像 5.8 小结 第6章 打印 6.1 System.Drawing.Printing命名空间 6.2 打印图像 6.2.1 更改页面设置 6.2.2 打印对话框 6.2.3 保持高宽比 6.3 打印多页 6.3.1 分页 6.3.2 添加页眉 6.4 小结 第7章 链接数据库 第8章 文件和注册表操作 第9章 使用文档/视图模式 第10章 提供帮助 第11章 部署Windows应用程序
该书共分成15个章节,由易到难,由浅及深的介绍了MFC的功能框架和实际运用。每个知识点都有对应的代码实例。学习起来快速而不费力。更重要的是不是扫描版本。看着舒服。 目录结构如下: 目 录 译者序 前言 第一部分 基础知识 第1章 窗口 2 1.1 窗口和API环境 2 1.1.1 三种类型窗口 2 1.1.2 客户区和非客户区 3 1.2 窗口和MFC环境 4 1.3 怎样应用MFC创建一个窗口 5 1.4 怎样使用MFC销毁一个窗口 9 1.4.1 捆绑到一个已有的窗口 9 1.4.2 窗口类 10 1.4.3 窗口进程 10 1.5 怎样使用MFC创建一个窗口类 11 1.5.1 使用AfxRegisterWndClass () 函数注册一个窗口类 11 1.5.2 使用AfxRegisterClass ()函数 创建一个窗口类 12 1.6 怎样销毁一个MFC窗口类 14 1.7 厂商安装的窗口类 14 1.8 其他类型窗口 15 1.9 桌面窗口 16 1.10 小结 16 第2章 类 18 2.1 基类 18 2.1.1 CObject 18 2.1.2 CCmdTarget 19 2.1.3 CWnd 19 2.2 应用程序、框架、文档和视图类 19 2.2.1 CWinApp(O/C/W) 20 2.2.2 CView (O/C/W) 21 2.3 其他用户界面类 22 2.3.1 通用控件类 23 2.3.2 菜单类 23 2.3.3 对话框类 24 2.3.4 控制条类 24 2.3.5 属性类 25 2.4 绘图类 25 2.4.1 设备环境类 25 2.4.2 图形对象类 25 2.5 文件类 26 2.6 数据库类 26 2.6.1 ODBC类 26 2.6.2 DAO类 27 2.7 数据集类 27 2.8 其他数据类 27 2.9 通信类 28 2.10 其他类 29 2.11 小结 31 第3章 消息处理 32 3.1 发送或寄送一个消息 32 3.1.1 发送一个消息 32 3.1.2 寄送一个消息 32 3.1.3 发送一个消息与寄送一个消息 的比较 32 3.2 怎样使用MFC发送一个消息 33 3.3 怎样用MFC寄送一个消息 33 3.4 三种类型的消息 34 3.4.1 窗口消息 34 3.4.2 命令消息 34 3.4.3 控件通知 34 3.5 MFC怎样接收一个寄送的消息 36 3.6 MFC怎样处理一个接收到的消息 36 3.7 处理用户界面的对象 44 3.8 创建自定义窗口消息 45 3.8.1 静态分配的窗口消息 45 3.8.2 动态分配的窗口消息 46 3.9 重定向消息 47 3.9.1 子分类和超分类 47 3.9.2 用MFC子分类窗口 48 3.9.3 重载OnCmdMsg ( ) 49 3.9.4 使用SetWindowsHookEx ( ) 49 3.9.5 使用SetCapture ( ) 49 3.9.6 专有的消息泵 50 3.10 小结 50 第4章 绘图 51 4.1 设备环境 51 4.2 在MFC环境中创建一个设备环境 52 4.2.1 屏幕 52 4.2.2 打印机 53 4.2.3 内存 54 4.2.4 信息 54 4.3 绘图例程 55 4.3.1 画点 55 4.3.2 画线 55 4.3.3 画形状 55 4.3.4 形状填充和翻转 55 4.3.5 滚动 56 4.3.6 绘制文本 56 4.3.7 绘制位图和图标 56 4.4 绘图属性 56 4.4.1 设备环境属性 57 4.4.2 画线属性 58 4.4.3 形状填充属性 58 4.4.4 文本绘制属性 58 4.4.5 映像模式 59 4.4.6 调色板属性 62 4.4.7 混合属性 62 4.4.8 剪裁属性 63 4.4.9 位图绘制属性 64 4.5 元文件和路径 65 4.5.1 元文件 65 4.5.2 路径 66 4.6 颜色和调色板 66 4.6.1 抖动色 67 4.6.2 未经抖动色 67 4.6.3 系统调色板 67 4.6.4 使用系统调色板 68 4.6.5 动画色 71 4.7 控制什么时候在哪里绘图 71 4.7.1 处理WM_PAINT 71 4.7.2 只绘制被无效化的区域 72 4.7.3 处理WM_DRAWITEM 72 4.7.4 在其他时间绘图 73 4.8 小结 74 第二部分 用户界面实例 第5章 应用程序与环境 76 5.1 例1 规划MFC应用程序 76 5.2 例2 用AppWizard创建一个MFC 应用程序 79 5.3 例3 用ClassWizard创建一个类 83 5.4 例4 初始化应用程序屏幕 84 5.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值