-
2017-10-17 22:36:50
在VS2015中,创建一个基于单文档视图的MFC项目,该项目的名称为MFCApplication。通过向导成功创建项目之后发现,自动生成了很多文件。在这些文件中,MFCApplicationDoc.cpp和MFCApplictionDoc.h对应的是项目的文档类;MainFrm.cpp和MainFrm.h对应的是项目的框架类;MFCApplicationView.cpp和MFCApplication.h对应的是项目的视图类。那么,在MFCApplication项目中,是如何创建文档、框架和视图的呢?
1 CWinAppEx类及其派生类
在生成的MFCApplication项目中,包含了MFCApplication.cpp和MFCApplication.h两个文件,在这两个文件中,声明和定义了CWinAppEx类的派生类CMFCApplicationApp。
CMFCApplicationApp类是创建的MFCApplication项目的应用程序对象类,该类的父类CWinAppEx就代表着应用程序本身,可以说CWinAppEx取代了控制台程序和Win32程序中的入口函数。在控制台程序和Win32程序中,首先执行的是程序的入口函数,而在MFC的单文档项目中,首先执行的是CWinAppEx类的派生类中的一条语句
以上代码调用了CMFCApplicationApp 类的构造函数,但是该构造函数没有定义,所以调用的是其父类即 CWinAppEx 的构造函数。在 CWinAppEx 类的构造函数中,对其成员变量进行初始化处理。CMFCApplicationApp theApp;
2 CWinAppEx类的虚函数InitInstance()
接下来调用CWinAppEx类的InitInstance()函数,由于该函数是CWinAppEx类的虚函数,如果其派生类覆盖(override)了InitInstance()函数,则调用子类的InitInstance()函数。
在MFCApplication.cpp中,可以看到CMFCApplicationApp类覆盖了InitInstance()函数。
2.1 单文档模板
单文档模板是单文档/视图应用程序的主要部分。它表示了用来管理应用程序数据的文档类、包含数据视图的框架类,以及用来绘制可视数据表示的视图类。
在CMFCApplicationApp类的InitInstance()函数中,创建了一个SDI(单文档)模板CSingleDocTemplate,并且注册该模板。
其中,CSingleDocTemplate 类表示 SDI 文档模板,通过该类构造函数创建的 SDI 文档模板指针保存在 pDocTemplate 中,最后通过 AddDocTemplate() 函数注册文档模板,用此方法注册的每个模板都定义了一个应用程序支持的文档类型。CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CMFCApplicationDoc), RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口 RUNTIME_CLASS(CMFCApplicationView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate);
2.2 命令行参数处理
如果在命令行直接运行应用程序,可以指定详细的命令行参数,指示程序以特定方式运行或完成特定操作。处理命令行参数的MFC类是CCommandLineInfo。在CMFCApplicationApp类的InitInstance()函数中
其中,ParseCommandLine() 函数的作用是解析命令行参数,并把参数保存到 CCommandLineInfo 类的对象中。CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo);
2.3处理命令行参数
处理命令行参数的函数ProcessShellCommand()是创建整个SDI项目的核心。通过该函数来创建SDI项目的文档、框架和视图。
其中,cmdInfo 是在“ 2.2 命令行参数处理”中 CCommandLineInfo 类的对象。if (!ProcessShellCommand(cmdInfo)) return FALSE;
在ProcessShellCommand()函数中,对命令行参数cmdInfo进行判断
其中,rCmdInfo 是 ProcessShellCommand() 函数的参数, m_nShellCommand 表示命令行的参数, CCommandLineInfo::FileNew 表示创建新文件, CCommandLineInfo::FileOpen 表示打开文件,而鼠标双击该程序时,命令行的参数为 CCommandLineInfo::FileNew ,即调用 OnFileNew() 函数。当鼠标双击该程序所关联的文件时,命令行的参数是 CCommandLineInfo::FileOpen ,即调用 OpenDocumentFile() 函数。switch(rCmdInfo.m_nShellCommand) { case CCommandLineInfo::FileNew: ...... OnFileNew(); case CCommandLineInfo::FileOpen: OpenDocumentFile(rCmdInfo.m_strFileName); .... .......... }
无论是CWinApp::OnFileNew()还是CWinApp::OpenDocumentFile(),最终调用的是CSingleDocTemplate::OpenDocumentFile()函数。其中,CSingleDocTemplate是“2.1 单文档模板”中提到的单文档模板。在该函数中,首先调用CDocTemplate::CreateNewDocument()函数创建文档;之后调用CDocTemplate::CreateNewFrame()函数创建框架,在该函数中调用CFrameWnd::LoadFrame()函数,在该函数中调用CFrameWnd::Create()函数创建框架和视图。
综上所述,SDI项目的组成元素创建的顺序是文档、框架、视图。
2.4 框架的显示及更新
在调用ProcessShellCommand()函数创建了文档、框架以及视图之后,接下来要显示框架。
其中,ShowWindow() 和 UpdateWindow() 是 CWnd 类的成员函数,作用分别是显示窗口和更新窗口。 ShowWindow() 函数的参数为 SW_SHOW 时表示显示窗口, SW_HIDE 时表示隐藏窗口。m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow();
更多相关内容 -
如何在Ubuntu中创建文档
2021-05-17 15:56:48有几种方法可以在Ubuntu中使用GUI和命令行创建文档。所有这些方法都非常简单易用。您可能早些时候已在Ubuntu中将这些方法用于其他目的。但是,在本文中,我们将向您展示在Ubuntu中创建文档的8种不同方式。对于本文,...有几种方法可以在Ubuntu中使用GUI和命令行创建文档。所有这些方法都非常简单易用。您可能早些时候已在Ubuntu中将这些方法用于其他目的。但是,在本文中,我们将向您展示在Ubuntu中创建文档的8种不同方式。
对于本文,我将使用Ubuntu 18.04 LTS来描述本文中提到的过程。
使用Touch命令创建空文档
您可以使用Touch命令在Ubuntu中轻松创建新的空文档。使用触摸命令,您还可以同时创建多个文档。
要使用Touch命令创建一个空文档,请按以下步骤打开终端Ctrl + Alt + T键同时。然后在“终端”中,使用以下位置导航到要保存新文档的目录:光盘命令,然后键入触摸后跟文档名称:
$ touch [document_name]
要同时创建多个文档,请使用以下语法:
$ touch [document1] [document2]
使用Cat命令创建空文档
cat 代表串联。就像触摸命令一样,它有助于创建单个和多个文档。但是,除了创建空文档以外,您还可以在同一实例中在新创建的文档中添加文本。使用Cat命令,您还可以在终端中查看文档的内容,而无需在另一个程序中打开文档。
要使用cat命令创建一个空文档,请打开终端,导航至所需目录并键入cat后跟符号>和文件名。以下是创建文档的语法:
$ cat > [Document_name]
现在编辑文档并按Ctrl + D保存它。
要创建多个文档,请使用以下语法:
$ cat > Docment1 > Document2 > Document3
但是,要编辑这些文档,您将需要一次编辑和保存一个文档,例如:广告
$ cat > Document1
$ cat > Document2
要查看文档的内容,请使用以下语法在“终端”中键入命令:
$ cat [path/to/document]
使用文档模板
在Ubuntu中创建文档的最简单方法是使用右键单击上下文菜单。此选项在以前的Ubuntu版本中可用,但在Ubuntu 18.04 LTS中默认未启用。但是,幸运的是您可以启用此选项。
打开终端并输入以下命令:
$ touch ~/Templates/Empty\ Document
它将在Templates目录中创建一个空文档。现在,无论何时需要在特定目录中创建新文档。只需打开该目录,然后右键单击空白处即可。去新文件>空文件。
它将在同一目录中创建一个空文档,您可以打开和编辑此文档。
使用LibreOffice writer创建文档
您可以使用LibreOffice writer应用程序在Ubuntu中创建文档。 Ubuntu 18.04 LTS预先安装了LibreOffice writer。要启动该应用程序,请打开“ Dash”菜单或按Windows键,然后搜索关键字LibreOffice作家通过在搜索框中键入它。然后从搜索结果中,单击应用程序。
它将启动应用程序。编辑文档,然后按Ctrl + S保存文档。
使用文本编辑器创建文档
通常,文本编辑器用于在Ubuntu中编辑文本和配置文件。但是,您也可以使用它们来创建新文档。 Ubuntu中一些流行的文本编辑器是Gedit,Emacs,Nano和Vim。其中一些是命令行,而某些则是基于GUI的。 Gedit是一个基于GUI的文本编辑器,Emacs既是GUI也是命令行文本编辑器,您可以使用其中任何一个。而其余的编辑器Nano和vim只是命令行编辑器。
正如我们在先前有关使用这些编辑器的前一篇文章中所讨论的。因此,在这里,我们将快速概述如何使用这些文本编辑器创建新文档
Gedit编辑器
要启动Gedit,请打开Dash菜单或按Windows键,然后通过在搜索框中键入关键字来搜索Gedit。然后从搜索结果中单击文本编辑器。
它将打开一个空文档。编辑文档,然后单击保存保存文档。
Emacs编辑器
要使用Emacs Editor在特定目录中创建新文档,请打开Terminal并以以下语法输入命令:
$ sudo emacs /[ path/to/document_name]
如果您在文档所在的目录中,则只需输入后跟文档名称即可,而不必输入整个路径。
它将在编辑器中创建并打开新文档。您可以在此处编辑新文档。然后点击保存保存文档。
纳米编辑器
要使用Nano Editor在特定目录中创建新文档,请打开“终端”并以以下语法输入命令:
$ sudo nano /[ path/to/document_name]
它将在终端中创建并打开新文档,编辑文档,然后按Ctrl + O保存文档并Ctrl + X关闭编辑器。
Vim编辑器
要使用Vim Editor在特定目录中创建新文档,请打开Terminal并以以下语法输入命令:
$ sudo vi /[ path/to/document_name]
它将在终端中创建并打开新文档。要编辑文档,请按一世。要保存并退出编辑器,请按Esc,然后键入:wq。
因此,在本文中,我们看到了在Ubuntu 18.04 LTS中创建文档的几种方法。您可以选择一种更加方便易用的工具。
-
【若依框架】代码生成详细教程
2021-02-19 16:52:42若依官网的代码生成文档 我觉得若依官方的代码生成教程过于简单,网上的教程很多连个效果图都没有。。 本文要达到的效果如下:[学生管理] 下有个 [学生信息] 菜单,里面可以增删改查 1、修改代码生成配置 这步...若依框架
我觉得若依官方的代码生成教程过于简单,网上的教程很多连个效果图都没有。。
本文要达到的效果如下:[学生管理] 下有个 [学生信息] 菜单,里面可以增删改查
1、修改代码生成配置
这步其实可做可不做。
- 单应用:编辑
ruoyi-admin
中resources
目录下的application.yml
- 多模块:编辑
ruoyi-generator
中的resources
目录下的generator.yml
我们这里做的是单应用,所以改
ruoyi-admin
里的application.yml
author: lzy # 开发者姓名,生成到类注释上 packageName: com.ruoyi.student # 默认生成包路径 autoRemovePre: true # 是否自动去除表前缀 tablePrefix: stu # 表前缀
2、新建数据库表结构(单表)
若依建表有个要求:表字段 和 表,都需要加注释,注释就是生成页面的显示内容
这个sql和官网的sql除了表名其他都一样,我们用这个建表
(如果是用图形化工具或者自己写SQL一定要记得加注释)drop table if exists stu_student; create table stu_student ( student_id int(11) auto_increment comment '编号', student_name varchar(30) default '' comment '学生名称', student_age int(3) default null comment '年龄', student_hobby varchar(30) default '' comment '爱好(0代码 1音乐 2电影)', student_sex char(1) default '0' comment '性别(0男 1女 2未知)', student_status char(1) default '0' comment '状态(0正常 1停用)', student_birthday datetime comment '生日', primary key (student_id) ) engine=innodb auto_increment=1 comment = '学生信息表';
3、项目中新建模块,并解决项目依赖的关系
①新建一个名为
ruoyi-student
的模块:
②我们要在 RuoYi 整个项目下的pom.xml
中引入刚刚新建的模块:
<!-- 学生模块--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-student</artifactId> <version>${ruoyi.version}</version> </dependency>
③还需要在
ruoyi-admin
这个模块的pom.xml
中引入刚刚新建戴尔模块:
<!--学生模块--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-student</artifactId> </dependency>
④由于自动生成的代码会用到
ruoyi-common
中的内容,我们需要将ruoyi-common
引入到我们新建的模块中:(不做这个后面代码会报错,也会自动引入)
<dependencies> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common</artifactId> </dependency> </dependencies>
4、若依系统中新建一个目录 - 学生管理
但是现在只是建好了目录,里面还没有内容,所以打开是404。
5、导入一开始建的表并设置上级目录,生成代码
把刚刚新建的表导入:
导入后点击 [编辑] ,[生成信息] :建议把生成模块名和生成业务名写的不一样,否则后面可能会遇到问题,后面运行时会讲到。
设置完毕后,生成代码。这里说明一些上面填的东西会生成什么
- 生成包路径
com.ruoyi.student
,就是生成的后端代码的包路径
- 生成模块名和生成业务名一起构成后端代码里自动生成的请求路径,即页面路径
6、执行生成的SQL
自动生成的压缩包里有个SQL,这是用来生成菜单的,去数据库里执行一下这个SQL。
执行完后【学生管理】下就有【学生信息】这个菜单了,但是旁边还没有页面,因为我们代码还没放进项目。
7、将生成的代码放入项目中
①将自动生成的代码文件main目录直接复制到我们的新建模块的src下,替换原本的main目录。
若此时报错则是该模块没有引入ruoyi-common,见第3步的④。
②将templates目录拷贝到
ruoyi-admin
目录下的resources
中:
8、重启项目,访问页面
注意:如果在上面取名的时候,生成模块名和生成业务名取的是一样的,可能会遇到一个问题:将代码从Idea移到项目中时候,windows会将相同的两层文件夹自动合并。
比如:templates.student.student.
会被合并为templates.student
,此时在Idea里右键改名是没用的(它会把文件夹名字改为student.student
,并不是两层文件夹),需要去磁盘里手动调整目录,再回来运行。
一定要重启!然后就可以访问了。
然后按自己的需要修改,定制。 - 单应用:编辑
-
RuoYi框架swagger自动生成API接口文档
2021-06-14 11:17:491、若依系统会自带有swagger生成接口文档,登录若依系统后可以在 这里查看系统的接口demo。 如果想更改这个接口文档的样式可以参考地址: https://blog.csdn.net/qq_22734863/article/details/113341869 2、我修改...1、若依系统会自带有swagger生成接口文档,登录若依系统后可以在
这里查看系统的接口demo。
如果想更改这个接口文档的样式可以参考地址:
https://blog.csdn.net/qq_22734863/article/details/113341869
2、我修改样式的方法
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>
然后在项目中全局搜索:将swagger-ui.html修改成doc.html。我的一共是修改了两个地方分别是:
3、swagger使用的方法可以参考:
添加链接描述
(1)@Api :请求类的说明
@Api:放在请求的类上,与 @Controller 并列,说明类的作用,如用户模块,订单类等。
tags=“说明该类的作用”
value=“该参数没什么意义,所以不需要配置”举例:
@Api(tags = “账户相关模块”)
@RestController
@RequestMapping("/api/account")
public class AccountController {
//TODO
}
(2)@ApiOperation:方法的说明
@ApiOperation:“用在请求的方法上,说明方法的作用”
value=“说明方法的作用”
notes=“方法的备注说明”举例:
@ApiOperation(value = “修改密码”, notes = “方法的备注说明,如果有可以写在这里”)
@PostMapping("/changepass")
public AjaxResult changePassword(@AutosetParam SessionInfo sessionInfo,
@RequestBody @Valid PasswordModel passwordModel) {
//TODO
}(3)
@ApiImplicitParams、@ApiImplicitParam:方法参数的说明
@ApiImplicitParams:用在请求的方法上,包含一组参数说明
@ApiImplicitParam:对单个参数的说明
name:参数名
value:参数的汉字说明、解释
required:参数是否必须传
paramType:参数放在哪个地方
· header --> 请求参数的获取:@RequestHeader
· query --> 请求参数的获取:@RequestParam
· path(用于restful接口)–> 请求参数的获取:@PathVariable
· body(请求体)–> @RequestBody User user
· form(普通表单提交)
dataType:参数类型,默认String,其它值dataType=“int”
defaultValue:参数的默认值举例:
@ApiOperation(value=“用户登录”,notes=“随边说点啥”)
@ApiImplicitParams({
@ApiImplicitParam(name=“mobile”,value=“手机号”,required=true,paramType=“form”),
@ApiImplicitParam(name=“password”,value=“密码”,required=true,paramType=“form”),
@ApiImplicitParam(name=“age”,value=“年龄”,required=true,paramType=“form”,dataType=“Integer”)
})
@PostMapping("/login")
public AjaxResult login(@RequestParam String mobile, @RequestParam String password,
@RequestParam Integer age){
//TODO
return AjaxResult.OK();
}单个参数举例
@ApiOperation(“根据部门Id删除”)
@ApiImplicitParam(name=“depId”,value=“部门id”,required=true,paramType=“query”)
@GetMapping("/delete")
public AjaxResult delete(String depId) {
//TODO
}(4)
@ApiResponses、@ApiResponse:方法返回值的说明
@ApiResponses:方法返回对象的说明
@ApiResponse:每个参数的说明
code:数字,例如400
message:信息,例如"请求参数没填好"
response:抛出异常的类举例:
@ApiOperation(value = “修改密码”, notes = “方法的备注说明,如果有可以写在这里”)
@ApiResponses({
@ApiResponse(code = 400, message = “请求参数没填好”),
@ApiResponse(code = 404, message = “请求路径找不到”)
})
@PostMapping("/changepass")
public AjaxResult changePassword(@AutosetParam SessionInfo sessionInfo,
@RequestBody @Valid PasswordModel passwordModel) {
//TODO
}(5)
@ApiModel:用于JavaBean上面,表示一个JavaBean
@ApiModel:用于JavaBean的类上面,表示此 JavaBean 整体的信息
(这种一般用在post创建的时候,使用 @RequestBody 这样的场景,请求参数无法使用 @ApiImplicitParam 注解进行描述的时候 )(6)
@ApiModelProperty:用在JavaBean的属性上面,说明属性的含义
@ApiModel和 @ApiModelProperty举例:
@ApiModel(“修改密码所需参数封装类”)
public class PasswordModel
{
@ApiModelProperty(“账户Id”)
private String accountId;
//TODO
}然后以一个我自己写的Controller为例参考下:
然后在系统的界面可以看到这个接口文档:
在浏览器中输入:
localhost:8080/ruoyi-admin/doc.html
同样可以看到接口文档 -
word插入漂亮的代码块
2021-04-09 21:27:41前言 在写毕业论文的时候不可避免...缺点:代码块在word文档中没有分隔与突出的效果。 适用场景:作为技术文档非常实用,方便技术人员查看。 借助网页的渲染格式 方式最简单,借助某些帮助网址即可。 原本流传较广的 -
word文档中代码块样式设置及解决首字母大小写提示
2020-07-07 10:56:42今天我们就简 单地设置下,以达到在Word文档中写示例代码的目的。仅适合专门针对Word软件写作使用,如果只是出个Word版的代码教程、开发说明文档也许你应该选择pandoc这类工具。 一、创建样式。 -
详细讲解如何在MFC单/多文档中创建多视图(具体代码)
2014-07-29 11:28:04如何在MFC单文档中创建多视图 基本步骤如下: 1.首先创建一个MFC单文档应用程序。 2.添加4个MFC类TopLView、BottomLView、TopRView、BottomRView,基类为CView。 3.添加一个MFC类CControlForm,... -
Swagger接口文档(代码+注解详细版)
2021-02-21 18:16:07Swagger接口文档 由于经常写前后端分离的项目,所以就想着把接口能做成文档的形式,Swagger就是一个不错的选择。 我抛弃了Swagger原生的ui,换了第三方框架,所以用Swagger的界面可能不一样。 1.导入依赖 <!-- ... -
JAVA上百实例源码以及开源项目源代码
2018-12-11 17:07:42在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天... -
【EA使用】--包图/类图生成代码框架
2017-07-24 16:37:18前言:机房收费系统合作版是文档驱动下的合作开发,当然,文档中最重要的一部分便是UML图,前两次个人版的机房收费系统画图的时候都是懵懵懂懂的,但是这次画图要生成代码框架了,所以就不能本着随便画画的态度了。... -
MFC基于多文档框架(对话框内嵌office控件(word文档))
2018-03-07 01:34:44MFC项目中嵌入office系列软件也是随处可见的,最早接触内嵌office软件是在几年前的一个项目,当时用的MFC多文档工程,工程内文字记录这块,如果自己来实现的话,任务量比较繁重,而且不方便维护,好在那时候已经很... -
使用VS的MFC应用创建单文档应用并添加对话框菜单和工具栏
2021-06-26 04:17:53完成单文档应用的创建,并在此基础上新建对话框、菜单和工具栏等资源 基于MFC应用的Visual Studio教程一、考核题目要求二、步骤教程三、运行结果 一、考核题目要求 学习习惯问卷调查: 建立一个单文档应用项目... -
Docute 创建文档网站(docute v3)
2020-04-25 18:38:03文章目录Docute 3 创建文档网站1 Docute 介绍2 快速开始2.1 手动创建文件2.2 自动创建文件3 自定义定制3.1 配置文件3.2 首页3.3 Landing 页面3.4 侧边栏3.4.1 目录表3.5 导航栏3.5.1 图标3.5.2 下拉菜单3.6 代码高亮... -
MUI框架-01-介绍-创建项目-简单页面
2018-09-23 14:09:07MUI框架-01-介绍-准备-创建项目 从0开始快速高效学习 MUI 框架 (1)MUI 介绍 MUI 是什么,解决了什么问题? MUI 官方号称最接近原生APP体验的高性能前端框架 简单的说就是webapp的以个开发框架 webapp... -
如何创建HTML表单?html表单代码怎么写
2020-06-22 19:14:51在文本编辑器中打开HTML文档,必须在<form>和</form>标签中键入HTML表单的内容。这些标签充当表单的容器,就像<div> </div>容器标签一样。 您可以在<form> </form>标签内使用... -
Qt--纯代码创建简易菜单窗口(附详细讲解)
2019-08-14 21:40:17添加菜单项:菜单项指的是如图所示的对话框里的东西 模态对话框:模态对话框打开时,无法操作其他窗口; 非模态对话框:模态对话框打开时,可以操作其他窗口; 问题对话框:点击后弹出的对话框,样式为: ... -
JAVA_API1.6文档(中文)
2010-04-12 13:31:34javax.sound.sampled.spi 在提供新音频设备、声音文件 reader 和 writer,或音频格式转换器时,提供将为其创建子类的服务提供者的抽象类。 javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API... -
文档中怎么批量去除括号里面的答案 - 卡饭网
2020-12-20 07:56:59在word2007文档中如何批量删除英文字母?在word2007文档中如何批量删除英文字母? 在word2007文档中如何批量删除英文字母? 步骤 1.点击office word2007 功能按钮图标,进入word编辑主界面中 2.在编辑界面中,看到相应的... -
java快速生成接口文档方法总结
2021-07-27 19:36:22常常在项目收尾阶段,客户需要项目的接口文档,或者是一个大的sass平台,各个产品之间互相调用的时候,需要对方提供接口文档 通常来说,接口文档属于产品的技术沉淀,是一个长期积累的过程,然而,很多时候,开发... -
Android官方开发文档Training系列课程中文版:创建自定义View之View的创建
2016-07-11 08:15:58引言 Android框架中拥有大量的View类,这些类用来...但是某些时候,APP有一项很特殊的需求,而框架中的View还不能满足这样的需求,这时就需要根据需求自己创建一个全新的View类了。这节课程将会学习如何创建健壮的 -
如何写好技术文档——来自Google十多年的文档经验
2021-07-25 09:24:20如何产出高质量文档像管理代码一样管理文档明确你的读者是谁清晰的分类参考文档设计文档引导类文档概念性文档Landing pages(落地页)文档Review写文档的哲学5W法则三段式写作结语 本文大部分内容翻译总结自... -
Java导出带有单选款(radio)和复选框(checkbox)选中效果的word doc文档-Freemarker实现方式
2018-09-05 15:41:59今天客户提出要求,要求把表数据导出成为word文档格式。导成word格式的这种需求很寻常,但是看到word模板里面的这种单选框和多选框(如下图),要求实现选中效果,我就有点懵B了。到处百度,google,查询了下,发现... -
MFC单文档之快速创建多个对话框类
2017-04-08 16:36:35// TODO: 在此添加命令处理程序代码 m_XDlg = new CDLG(); m_XDlg -> Create(IDD_IO, this); // 显示非模态对话框 m_XDlg -> ShowWindow(SW_SHOW); } void CMainFrame ::OnBasicmotion () { // ... -
MUI框架-08-窗口管理-创建子页面
2018-09-25 22:45:59MUI框架-08-MUI窗口管理-创建子页面 官方文档:http://dev.dcloud.net.cn/mui/window/ 今天主角是通过子页面的方式,实现在切换时头部或者底部标签,固定不闪的效果,虽然和原生 app 有一些差别,但是我能通过... -
自动生成 java markdown 文档生成框架-01-入门使用
2019-03-18 21:43:48设计初衷 节约时间 Java 文档一直是一个大问题。...代码已经变了,但是文档还要同步修改。需要强制人来维护这一种一致性。这很难。 为什么不是 swagger-ui java 的文档有几类: jdk 自带的 doc 生成。... -
你会在 JitPack 上创建依赖库吗?
2021-04-02 10:01:43为什么写 ...因为我之前就在 JitPack 上创建过依赖,有点经验,所以选择这个,至于JCenter ,可能大家也知道,直接看官网吧: 懂了吧。。。 为啥没选 Maven 呢。。。因为我没想到 JitPack 变得这么 -
Typora设置插入代码块快捷键方法
2019-07-24 19:23:12在Typora给增加代码块没有设置快捷键,需要自己设置,步骤如下: 一、打开下图 二、第一步点开后往下来,打开偏好设置 三、使用支持json的编辑器打开下述文件 四:在下除代码处增加代码 ***或者把下面代码复制... -
使用uni-app框架创建一个app项目
2019-03-19 12:51:16一个客户端,一个服务端,前面我们安装的WP以及开发一个简易的WP主题就是完成了服务端的准备工作(开发一个简单的WordPress主题),现在我们开始客户端的准备工作——使用uni-app框架创建一个app项目。 需要说明的是... -
超文本浏览框直接加载HTML代码
2016-09-05 16:30:45.版本 2 .支持库 HtmlView .子程序 __启动窗口_创建完毕 .局部变量 dom, 对象 ....... size='5px'>大家好,我是HTML代码!...超文本浏览框1.取网页文档对象 (dom) dom.对象型方法 (“write”, html) -
网页制作HTML基础标签代码大全
2021-06-13 15:45:41IE6)acronym与abbr类似,表示首字母缩写词DOMaddress表示文档的作者、签名、地址等联系信息,通常以斜体方式显示文本ymk18@163.comapplet用于在网页中插入可执行的applet程序暂无area在图象中定一个区域,对该区域...