高考在即,我想着在我们班电脑上装一个小程序来警醒我们距离高考的时间,可翻了一下,网上似乎并没有合意的小程序,而我又是一个野生程序猿,于是就决定自己开始开发一个高考倒计时小程序
计划 & 准备
这是我第一次开发这种项目,完备的计划当然是必不可少的啦
基本功能
实现高考倒计时显示
程序语言
我最擅长的桌面编程语言是C++和C#,但是因为需要使用圆形窗口,而我只有C++圆形窗口界面设计的经验,所以这次选择使用C++
- 前端:Html + Css + Tiscript
- 后端:C++
界面设计
默认采用无边圆形窗口,用户可自定义选择矩形窗口,后期会陆续添加更多自定义的窗口,界面库使用开源的Sciter库,这个库支持使用Html编辑界面,相对来说会使界面设计变得更容易一些
开发环境
- 前端:Visual Studio Code + Sciter(这个界面库自带的预览工具)
- 后端:Visual Studio 2015(VS2015用到2020了,没更新过QAQ)
问题解决 & 编程笔记
问题的解决方法会以分页的形式,单独腾出一页来叙述
问题解决
编程笔记
- HTML中有几个块级元素
动态加载样式表
创建子窗口
Tiscript中创建窗口主要会用到两个函数
view.window();
view.dialog();
view.window(params:object) : View //创建一个普通窗口,返回一个view对象
params
是一个对象,它可以包含以下字段:type
- int, 窗口类型,有以下几种选择View.FRAME_WINDOW
普通窗口View.TOOL_WINDOW
工具窗口,像消息框就属于工具窗口View.POPUP_WINDOW
置顶窗口,它位于所有窗口之上
url
- string, 加载到该窗口的文档的urlhtml
- string, 加载到窗口的内容。url或者html必须提供其中之一x
,y
,width
,height
- integers, 窗口的坐标和尺寸。如果省略则会根据所给的文档的内在尺寸来自动计算client
- true | false, 如果为true,则上面的x,y, width, height为客户区域(而不是窗口盒)的坐标state
- integer, 窗口的初始状态View.WINDOW_SHOWN
显示View.WINDOW_HIDDEN
隐藏View.WINDOW_MINIMIZED
最小化View.WINDOW_MAXIMIZED
最大化View.WINDOW_FULL_SCREEN
全屏
parameters
- object, 传递的参数,它会放到新创建窗口的view.parameters变量中,这是一个可以自定义的结构体,用于父子窗口间传递参数caption
- string, 窗口标题alignment
- integer, 窗口相对于屏幕或父窗口的位置, 为-1 ~ -9时是相对于父窗口位置。这个参数很巧妙的用数字小键盘上的相对位置来描述窗口在指定参考系(屏幕或父窗口)的上的位置,例如5在小键盘的正中央,输入5(正)时就表示窗口相对于屏幕位于正中央,输入-5(负(父fù)))时就表示窗口相对于父窗口位于正中央,真是妙啊!7 8 9
4 5 6
1 2 3
screen
- integer, 0 .. View.screens - 1, 如果alignment是1..9,则该字段决定该窗口显示在哪个屏幕/监视器。可选参数。
要创建一个单独的窗口时,调用这个函数
它相当于MFC中的Window.Show()
*使用View类,而不是view实例: View.window(...)。
view.dialog( creationParams:object ) :undefined //创建一个模态对话框
creationParams
参数是一个对象,它可以包含以下字段url
- string, 加载到窗口中的文档的urlhtml
- string, 加载到窗口中的内容。url或者html必须提供其中之一x,y, width, height
- 同上client
- true | false, 如果为true,则上面的x,y, width, height为客户区域(而不是窗口盒)的坐标;parameters
- 同上caption
- string, 窗口标题alignment
- integer 同上screen
- integer 同上这个函数相当于是MFC里的DoModle(),创建一个对话框