No.4简单的MFC多对话框演示程序“MultiDialog”演示如何在工程中拥有多个对话框,及如何在一个对话框中调用另一个对话框。
重点:1、多个对话框类的建立;
2、对话框的模式(Modal)调用方法;
3、Spin控件的使用。
新建一个基于对话框的MFC工程,通过菜单"Insert>>Resource"打开添加资源对话框,在其中选择Dialog后点击New创建一个新的对话框按Ctrl+W打开ClassWizard,系统会提示刚才创建了一个新的对话框资源,是否建立对应的类,选择建立,然后在NewClass窗口中ClassName栏输入它的名称:CSubClass1,确定后系统会自动生成SubClass1.h和SubClass1.cpp并加入工程中,其中有已经创建好的CSubClass1的类的基本代码。
把这个对话框的Caption属性改为“难度选择”,在它上面画三个Radio“简单”、“标准”、“困难”,并建立相关联的变量m_Option1。
(要注意的是在ClassWizard中注意ClassName中应该选CSubClass1而不是之前的主对话框类)按照相同方法建立第二个新对话框,类名“CSubClass2”,Caption为“关卡选择”。
在上面画一个Edit和一个Spin,注意先画Edit后画Spin,将Spin的Autobuddy和Setbuddyinteger勾上。
按Ctrl+W打开ClassWizard,为Edit建立关联变量,不过注意是int型而不是CString型,也为Spin建立关联变量m_Spin1,注意这次是Control型变量CSpinButtonCtrl。
下面为这两个对话框添加代码。
双击“难度选择”对话框的OK按钮,建立对话框的OnOK映射。
在其中加入(在CDialog::OnOK();之前):UpdateData(TRUE);if((m_Option1>2)||(m_Option1<0)){MessageBox("错误的选择!","提示",MB_OK);return;}下面对“关卡选择”对话框添加初始化代码,由于关卡的有效值只有1到6,因此需要在初始化时设置Spin控件的有效值范围。
按Ctrl+W打开ClassWizard,在左侧列表选择这个对话框类CSubDialog2,在右侧列表中选择WM_INITDIALOG,点击右边的“AddFunction...”按钮,接着点击右边的“EditCode”按钮,在其中中加入(在CDialog::OnInitDialog()那句之后,在returnTRUE那句之前):m_Spin1.SetRange(1,6);m_Text1=1;m_Spin1.SetPos(1);其中CSpinButtonCtrl::SetRange()函数的作用是设置和他关联的Spin控件的范围,两个参数分别是下界和上界。
而CSpinButtonCtrl::SetPos()是设定Spin的当前位置。
两个新的对话框都已建立完毕,下来是如何在主对话框中使用的问题。
首先,两个新对话框都有各自的类,分别在SubDialog1.h和SubDialog2.h中有定义。
(类的细节则在对应的cpp中定义)因此,主对话框想要调用这两个新对话框,需要先包含这两个头文件,在你要使用的地方(本例是MultiDialogDlg.cpp中)文件前面加上#include"SubDialog1.h"#include"SubDialog2.h"然后在想要调用的地方就可以使用了。
本例中,首先为主窗口的两个Edit建立CString型关联变量m_Text1和m_Text2,然后在两个按钮的消息映射函数中分别加入:CSubDialog1dialog1;//定义CSubDialog1型对话框的一个新对象dialog1.DoModal();//使用“模式”调用,显示对话框m_Text1.Format("%d",dialog1.m_Option1);//此句在上面对话框没有关闭前不会执行到UpdateData(FALSE);和CSubDialog2dialog1;dialog1.DoModal();m_Text2.Format("%d",dialog1.m_Text1);UpdateData(FALSE);其中第一句均为定义对话框新实例的语句,定义一个你想要的类型的对话框。
第二句是通过调用CDialog::DoModal()方法,来显示这个对话框,并进入“模式”(Modal)状态在“模式”状态,当子对话框没有关闭之前,调用它的父对话框不能被响应,并且其语句执行会停留在刚才的DoModal语句上等待,直到子对话框关闭才接着执行下一个语句。
第三第四句将子对话框得到的数据(即类的成员变量)显示在父对话框的Edit上。
四句执行完后退出该函数,这时刚才定义的CSubDialog1等对话框类变量被销毁,因此创建的话框也被销毁。
2024/10/14 12:21:15 3.52MB MFC VC 多窗口 multiwidows
1
这个网上书城系统使用Eclipse开发的,代码完整,jar包齐全,sql脚本包含在里面,将下载下来的项目导入到Eclipse中即可运行,本项目做了很多校验,对可能出现的bug做了考虑,属于比较完善的系统。
本系统包含九个模块,前台模块分为:用户模快,分类模块,图书模块,购物车模块,订单模块;
后台模块分为:管理员模块,分类管理模快,图书管理模快,订单管理模块。
书城界面简洁,易于操作,简单易懂,代码均有注释,各模块功能完善。
各大模块的功能描述:前台:1).用户模块功能有:*用户注册:>表单页面是jQuery做校验(包含了ajax异步请求)#在输入框失去焦点时进行校验;
#在提交时对所有输入框进行校验;
#在输入框得到焦点时,隐藏错误信息。
>表单页面使用一次性图形验证码;
>在servlet中再次做了表单校验。
*用户登录:>表单校验与注册功能相同;
>登录成功时会把当前用户名保存到cookie中,为了在登录页面的输入框中显示!*用户退出:销毁session2).分类模块*查询所有分类:>有1级和2级分类>在页面中使用手风琴式菜单(Javascript组件)显示分类。
3).图书模块:*按分类查询*按作者查询*按出版社查询*按书名模糊查询*多条件组合查询*按id查询除按id查询外,其他都是分页查询。
技术难点:>组合查询:根据多个条件拼凑sql语句。
>带条件分页查询:条件可能会丢失。
使用自定义的PageBean来传递分页数据!>页面上的分页导航:页码列表的显示不好计算!4).购物车模块:*添加条目*修改条目数量*删除条目*批量删除条目*我的购物车*查询被勾选条目购物车没有使用sesson或cookie,而是存储到数据库中。
技术难点:>添加条目时,如果两次添加针对同一本书的条目,不是添加,而是合并;
>修改数量时使用ajax时请求服务器端,服务器端返回json。
>大量js代码5).订单模块:*生成订单*我的订单*查看订单详细*订单支付*订单确认收货*取消订单后台1).管理员*管理员登录2).分类管理*添加1级分类*添加2级分类:需要为2级分类指定所属1级分类*编辑1级分类*编辑2级分类:可以修改所属1级分类*删除1级分类:存在子分类时,不能删除*删除2级分类:当前2级分类下存在图书时不能删除*查看所有分类3).图书管理*各种查询:与前台相同*添加图书:>上传图片>页面中使用动态下拉列表显示2级分类,当指定1级分类后,2级分类下拉列表中动态显示该1级分类下所有2级分类名称*修改图书:与添加图书相似,也使用动态下拉列表*删除图书:需要删除图书对应图片,再删除图书4).订单管理*各种查询*订单发货*订单取消
2024/10/13 19:49:15 12.48MB 商城 Web开发 JSP项目实战 书城
1
8种好看的下拉列表js插件,演示https://blog.csdn.net/erhuobuer/article/details/94605263
2024/10/13 13:26:50 72KB jQuery js css html
1
《C和指针》提供与C语言编程相关的全面资源和深入讨论。
《C和指针》通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。
全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。
书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。
第1章 快速上手1.1 简介1.1.1 空白和注释1.1.2 预处理指令1.1.3 main函数1.1.4 read_column_numbers函数1.1.5 rearrange函数1.2 补充说明1.3 编译1.4 总结第2章 基本概念2.1 环境2.1.1 翻译2.1.2 执行2.2 词法规则2.2.1 字符2.2.2 注释2.2.3 自由形式的源代码2.2.4 标识符2.2.5 程序的形式2.3 程序风格2.4 总结第3章 数据3.1 基本数据类型3.1.1 整型家族3.1.2 浮点类型3.1.3 指针3.2 基本声明3.2.1 初始化3.2.2 声明简单数组3.2.3 声明指针3.2.4 隐式声明3.3 typedef3.4 常量3.5 作用域3.5.1 代码块作用域3.5.2 文件作用域3.5.3 原型作用域3.5.4 函数作用域3.6 链接属性3.7 存储类型3.8 static关键字3.9 作用域、存储类型示例3.10 总结第4章 语句4.1 空语句4.2 表达式语句4.3 代码块4.4 if语句4.5 while语句4.5.1 break和continue语句4.5.2 while语句的执行过程4.6 for语句4.7 do语句4.8 switch语句4.8.1 switch中的break语句4.8.2 default子句4.8.3 switch语句的执行过程4.9 goto语句4.10 总结第5章 操作符和表达式5.1 操作符5.1.1 算术操作符5.1.2 移位操作符5.1.3 位操作符5.1.4 赋值5.1.5 单目操作符5.1.6 关系操作符5.1.7 逻辑操作符5.1.8 条件操作符5.1.9 逗号操作符5.1.10 下标引用、函数调用和结构成员5.2 布尔值5.3 左值和右值5.4 表达式求值5.4.1 隐式类型转换5.4.2 算术转换5.4.3 操作符的属性5.4.4 优先级和求值的顺序5.5 总结第6章 指针6.1 内存和地址6.2 值和类型6.3 指针变量的内容6.4 间接访问操作符6.5 未初始化和非法的指针6.6 NULL指针6.7 指针、间接访问和左值6.8 指针、间接访问和变量6.9 指针常量6.10 指针的指针6.11 指针表达式6.12 实例6.13 指针运算6.13.1 算术运算6.13.2 关系运算6.14 总结第7章 函数7.1 函数定义7.2 函数声明7.2.1 原型7.2.2 函数的缺省认定7.3 函数的参数7.4 ADT和黑盒7.5 递归7.5.1 追踪递归函数7.5.2 递归与迭代7.6 可变参数列表7.6.1 stdarg宏7.6.2 可变参数的限制7.7 总结第8章 数组8.1 一维数组8.1.1 数组名8.1.2 下标引用8.1.3 指针与下标8.1.4 指针的效率8.1.5 数组和指针8.1.6 作为函数参数的数组名8.1.7 声明数组参数8.1.8 初始化8.1.9 不完整的初始化8.1.10 自动计算数组长度8.1.11 字符数组的初始化8.2 多维数组8.2.1 存储顺序8.2.2 数组名8.2.3 下标8.2.4 指向数组的指针8.2.5 作为函数参数的多维数组8.2.6 初始化8.2.7 数组长度自动计算8.3 指针数组8.4 总结第9章 字符串、字符和字节9.1 字符串基础9.2 字符串长度9.3 不受限制的字符串函数9.3.1 复制字符串9.3.2 连接字符串9.3.3 函数的返回值9.3.4 字符串比较9.4 长度受限的字符串函数9.5 字符串查找基础9.5.1 查找一个字符9.5.2 查找任何几个字符9.5.3 查找一个子串9.6 高级字符串查找9.6.1 查找一个字符串前缀9.6.2 查找标记9.7 错误信息9.8 字符操作9.8.1 字符分类9.8.2 字符转换9.9 内存操作9.10 总结第10章 结构和联合10.1 结构基础知识10.1.1 结构声明10.1.2 结构成
2024/10/13 3:32:42 29.13MB c和指针 pdf 下载 编程
1
awesome-loginless:无需登录或注册的超赞Internet服务列表
2024/10/11 13:39:29 4KB awesome awesome-list account AwesomeLists
1
做了将近1个月的jsp+servlet+javabean视频网站源码功能有用户注册登录超级管理员的上传记录用户的观看和退出记录包含一级学科二级学科和学科列表以及视频的在线播放包含后台mysql数据库
2024/10/11 4:30:54 2MB jsp servlet 视频网站
1
GDI+SDK参考(翻译版本)序言 4目标 4适用范围 4适用读者 4运行环境 4文档组织 4相关主题 4GDI+的安全考虑 6检验构造函数调用成功与否 6分配缓冲区 6错误校验 8线程同步 9相关主题 10关于GDI+ 11GDI+介绍 11GDI+概览 11GDI+的三个组成部分 11基于类的接口架构 12GDI+提供了哪些新东西? 12新特征 12编程模式的改变 15线条、曲线和图形 19矢量图概览 19钢笔、线条和矩形 20椭圆和弧 22多边形 22基数样条 23贝塞尔样条 24路径 25画刷和填充图形 27开放与闭合曲线 29区域 30裁剪 31路径平直化 32线条和曲线的抗锯齿功能 32图象、位图和图元文件 33位图类型 34图元文件 37绘制、定位和复制图片 39裁剪和缩放图象 40坐标系统和转换 42坐标系统类型 42以矩阵来表示转换 44全局和局部转换 48图形容器 51使用GDI+ 56使用入门 56绘制线条 56绘制字符串 58使用钢笔绘制线条和形状 59使用钢笔绘制线条和矩形 59设置钢笔的宽度和对齐方式 60绘制具有线帽的线条 61联接线条 62绘制自定义虚线 62绘制用纹理填充的线条 63使用画笔填充形状 63用纯色填充形状 64用阴影图案填充形状 64用图像纹理填充形状 64在形状中平铺图像 65用渐变色填充形状 68使用图像、位图和图元文件 68加载和显示位图 68加载和显示图元文件 69记录图元文件 69剪裁和缩放图像 71旋转、反射和扭曲图像 72缩放时使用插值模式控制图像质量 73创建缩略图像 75采用高速缓存位图来提高性能 76通过避免自动缩放改善性能 76读取图像元数据 77使用图像编码器和解码器 83列出已安装的编码器 83列出已安装的解码器 84获取解码器的类标识符 86获取编码器的参数列表 88将BMP图像转换为PNG图像 100设定JPEG的压缩等级 101对JPEG图像进行无损变换 102创建和保存多帧图像 105从多帧图像中复制单帧 107Alpha混合线条和填充 109绘制不透明和半透明的线条 109用不透明和半透明的画笔绘制 110使用复合模式控制Alpha混合 111使用颜色矩阵设置图像中的Alpha值 112设置单个象素的alpha值 114使用字体和文本 115构造字体系列和字体 115绘制文本 116格式化文本 117枚举已安装的字体 120创建专用的字体集合 122获取字体规格 126对文本使用消除锯齿效果 130构造并绘制曲线 131绘制基数样条曲线 131绘制贝塞尔样条 133用渐变画刷填充形状 134创建线性渐变 134创建路径渐变 137将Gamma校正应用于渐变 144构造并绘制路径 145使用线条、曲线和形状创建图形 145填充开放式图形 147使用图形容器 147管理Graphics对象的状态 148使用嵌套的Graphics容器 151变换 154使用世界变换 154为什么变换顺序非常重要 155使用区域 156对区域使用点击检测 156对区域使用剪辑 157对图像重新着色 158使用颜色矩阵对单色进行变换 158转换图像颜色 160缩放颜色 161旋转颜色 164剪取颜色 166使用颜色重映射表 168打印 169将GDI+输出至打印机 169显示一个打印对话框 172通过提供打印机句柄优化打印 173附录:GDI+参考 176
2024/10/10 11:31:03 1.75MB GDI+ GDI+中文 GDI+帮助
1
点击弹出下拉列表,输入一汉字或拼音首字母,即可逐渐过滤提示
1
本书简要阐明软件开发过程中敏捷方法的工作原理、优点及应用效果,论述敏捷方法学中的过程和生命周期,涉及项目范围、时间管理、成本管理等。
主要内容还包括:“PMBOK Guide”中的思想和敏捷开发实践之间的关系,采用敏捷技术降低风险,在软件开发各个阶段实施质量保证(QA)等。
本书适合软件开发人员和管理人员参考。
绪论项目管理者如何跨过桥梁1第一部分敏捷开发方法概述7第1章敏捷方法81.1敏捷方法的起源91.2敏捷宣言121.2.1个体和交互胜过过程和工具131.2.2可工作的软件胜过全面的文档131.2.3同客户的协作胜过合同谈判151.2.4对变更的响应胜过遵循计划161.3指导敏捷项目团队的敏捷原则161.4小结181.5尾注19第2章《PMBOKGuide》到敏捷方法的映射212.1项目管理研究所和《PMBOKGuide》212.2项目生命周期212.3项目管理过程262.4小结272.5尾注28第3章敏捷项目生命周期详解293.1敏捷项目生命周期概览293.2敏捷项目303.3敏捷发布313.4敏捷迭代323.4.1迭代计划333.4.2迭代评审343.4.3迭代回顾353.5例行工作363.6敏捷方法和计划驱动方法之间的区别373.7小结373.8尾注38第二部分桥梁——《PMBOKGuide》中的实践和敏捷开发实践的关系39第4章集成管理404.1开发项目章程和初步的范围陈述414.1.1宣贯会议424.1.2简要比较454.2开发项目管理计划454.3指导和管理项目的执行、监视和控制项目工作474.4集成的变更控制474.5结束项目494.6小结504.7尾注51第5章范围管理525.1范围计划535.1.1范围定义545.1.2创建WBS615.1.3范围验证625.1.4范围控制635.2小结635.3尾注64第6章时间管理656.1战略计划VS战术计划676.2发布计划:开发战略层面的时间进度计划686.2.1发布计划:在战略层面开发时间进度计划696.2.2发布计划:战略层面上的时间进度控制716.3迭代计划:开发战术层面的时间进度计划736.3.1活动定义746.3.2活动持续时间评估766.3.3活动排序776.3.4活动资源评估796.3.5迭代计划:战术层面的时间进度计划控制806.4小结836.5尾注84第7章成本管理867.1成本评估877.1.1敏捷项目的成本最好由产品交付团队进行评估887.1.2敏捷项目是自顶向下评估而不是自底向上评估897.1.3项目团队在发布计划期间可以给出选项907.1.4成本评估在项目生命周期中逐步细化917.2成本预算927.3成本控制937.3.1管理发布待完成事项列表947.3.2锁定迭代947.3.3将成本的变更情况通知给利益相关人957.3.4度量成本性能的AgileEVM957.4小结977.5尾注97第8章质量管理998.1质量计划1008.2质量保证1008.2.1演示、评审和回顾1018.2.2质量控制1058.3小结1088.4尾注109第9章人力资源管理1109.1人力资源规划1119.2组建项目团队1129.3发展项目团队1149.3.1敏捷价值观1159.3.2从价值观到行为1169.4管理项目团队1189.5小结1209.6尾注122第10章沟通管理12310.1沟通计划12510.2沟通基本项目信息——谁、什么、何时、何地和怎样12510.3信息发布12610.3.1迭代演示和评审会议12710.3.2通过每日站立会议进行交流12810.3.3回顾12910.3.4实时信息指示器13010.4业绩报告13210.5利益相关者管理13410.6小结13510.7尾注13
2024/10/9 2:53:20 30.05MB 项目管理 敏捷方法 IT管理
1
UltraEdit【版本26.20.0.46】免安装,解压即可永久使用!主要功能轻松打开并编辑大型文件-4GB及更大文件!多插入符号编辑和多选列(块)模式编辑强大的搜索:在文件中查找和替换、正则表达式、反向搜索等文件比较几乎所有编程语言的代码语法突出显示代码折叠和分层功能列表美化且重新格式化源代码强大的XML处理:XML树视图、重新格式化、验证等自动关闭XML/HTML标记智能模板-自动智能代码完成编辑主题-浏览整个应用程序强大且可配置的工具文件和数据排序集成FTP客户(支持FTP、SFTP和FTPS)集成SSH/Telnet客户端经筛选的拼写检查程序Unicode/……等等
2024/10/7 3:56:01 87.39MB UltraEditv26.20 ue UltraEdit
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡