CN100435097C - 一种横、竖标尺独立设置单位的方法 - Google Patents
一种横、竖标尺独立设置单位的方法 Download PDFInfo
- Publication number
- CN100435097C CN100435097C CNB2006101650411A CN200610165041A CN100435097C CN 100435097 C CN100435097 C CN 100435097C CN B2006101650411 A CNB2006101650411 A CN B2006101650411A CN 200610165041 A CN200610165041 A CN 200610165041A CN 100435097 C CN100435097 C CN 100435097C
- Authority
- CN
- China
- Prior art keywords
- scale
- unit
- function
- setting unit
- horizontal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
本发明涉及一种横、竖标尺独立设置单位的方法,属于印刷排版技术领域。现有技术中,横竖标尺的单位是相同的,当横向和竖向需要不同的单位,比如横竖方向需要捕捉到不同的标尺等时,变得无能为力,不符合现在复杂多变的排版需求。另外要改变单位只能通过菜单到设置对话框中设置,很不方便,影响排版效率。本发明所述的方法:通过在横、竖标尺上分别单击鼠标右键,直接弹出单位设置对话框,选择相应的单位确定即可,则标尺变为所设单位的刻度,系统单位也相应联动为所改变的单位。采用本发明所述的方法,可以迅速的改变某个标尺的单位和系统单位,解决了现在横竖不能用不同单位标尺的问题。
Description
技术领域
本发明属于印刷排版技术领域,具体涉及一种横、竖标尺独立设置单位的方法。
背景技术
目前,在印刷排版行业中,绝大多数的排版软件都有标尺,有的是单标尺,有的是横竖两个标尺,有的是横竖各两个标尺。有的标尺的单位刻度是固定的,不能更改,有的标尺可以改单位刻度,但所有的排版软件都是不能独立为横竖标尺各自设置不同单位刻度的。如果需要横竖标尺用不同的单位来实现某种对齐的效果,如竖参考线需要用毫米来分间距,横参考线需要字来分间距等。则现有的排版方法无法实现,需要用户自己手动去进行单位的换算,然后再对应到当前标尺相应的刻度,非常的费时、费力。另外,现有技术中,标尺的单位和排版系统的系统度量单位是一致的,虽然在实现上不必用额外的变量来记载标尺的单位,也省去了对每个标尺单位的分配和保存过程,但是所有的标尺都用一套数据,因此不能为单独的某个标尺设置单位。
发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种横、竖标尺独立设置单位的方法,该方法能够在排版过程中独立设置横、竖标尺的单位,从而能通过不同单位标尺来辅助实现某些排版效果,大大提高了排版的效率。
为达到以上目的,本发明采用的技术方案是:
一种横、竖标尺独立设置单位的方法,包括以下步骤:
(1)采用面向对象的编程方法定义标尺类,包括定义标尺类的成员变量及成员函数;
所述的成员变量包括:一个含四个数据的静态数组,该数组用来标记每个标尺所用的单位,该数组中的四个数据与每个标尺所用的单位一一对应;
所述的成员函数包括:创建4个标尺窗口的函数、根据标尺的ID来设置单位的函数、读取系统单位设置并根据ID分发到标尺的函数、每个标尺的消息处理函数;
(2)根据标尺类的定义来创建标尺;
(3)为每个标尺派发系统默认的单位;
(4)根据用户的操作信息,消息处理函数打开横标尺或坚标尺单位设置对话框,根据用户的选择给标尺设置新的单位。
进一步,步骤(1)中,所述的创建标尺窗口的函数参数中的句柄为父窗口句柄,它为每个标尺创建一个窗口,然后为这些窗口绑定相应的消息处理函数。
所述的设置单位的函数设有两个参数,即标尺ID和单位,这个函数根据标尺的ID,来给步骤(1)中的成员变量赋值,然后在画标尺的时候读取该数组中的相应的单位来画出标尺。
所述的读取系统单位设置并根据ID分发到标尺的函数,设有一个参数即标尺的ID,它在标尺初始化的时候调用,给标尺一个系统配置的单位。
所述的消息处理函数来打开单位设置对话框,并调用设置单位的函数,并向该函数传入标尺的ID和所要设置的单位参数。
进一步,步骤(2)中,创建标尺时为每一个标尺创建一个窗口,并且每一个标尺有一个独立的消息处理函数。
进一步,步骤(4)中,根据用户的操作信息,响应鼠标右键来调用改变单位的函数以改变标尺单位,并记录在静态数组中,然后在标尺重画的时候读取并应用。
进一步,步骤(4)中,还设有一个标志来区别是在标尺上单击鼠标右键呼出的单位设置对话框还是通过菜单环境设置呼出的单位设置对话框,并根据标志来置灰关系全局参数设置的控件。
更进一步,单位设置对话框用右键菜单来代替,该右键菜单的菜单项就是预设好的各个单位。
本发明的效果在于:采用本发明所述的方法,可以在排版过程中迅速的改变某个标尺的刻度单位和系统单位,解决了现有技术中横竖不能用不同单位标尺的问题,为现在多变复杂的排版要求提供更加方便快捷的操作方式。
附图说明
图1是一种横、竖标尺独立设置单位的方法的工作流程和原理示意图;
图2是计算机后台如何处理的流程图;
图3是单击右键独立设置单位的用户操作流程图;
图4是单击右键呼出菜单来设置单位效果示意图;
图5是单击右键呼出单位设置对话框来设置单位效果示意图;
图6是单个标尺设置完单位后效果示意图。
具体实施方式
下面结合附图,对本发明作进一步的阐述:
如图1和2所示,一种横、竖标尺单击右键独立设置单位的方法,包括以下步骤:
(1)采用面向对象的方法定义标尺类,具体方法如下:
a.定义成员变量
所述的成员变量包括:一个含四个数据的静态数组,数组用来标记每个标尺所用的单位,两者一一对应。本实施例中定义一个一维的静态的数组MsrUnitID[4]。数组的下标0-3分别表示如下的意思,0-Top上标尺、1-bottom下标尺、2-Left左标尺、3-Right右标尺。MsrUnitID代表是每一个标尺的所用的标尺单位。标尺的单位就是指标尺所用刻度的长度单位,比如毫米、厘米、磅等。标尺类的定义包括了大多数标尺所共有的属性,包括原点、间隔、宽度等等。
b.定义成员函数
本实施例中,所述的成员函数包括向外面暴露的创建标尺的函数、标尺的初始化函数、单位派发等函数,及由标尺类内部调用的应用单位函数,消息处理函数,画标尺函数等函数。
1)所述的创建标尺的函数由标尺的拥有者主窗口来调用,该函数首先得到主窗口的区域大小,并根据这个大小来创建一个相应长度的标尺。然后该函数调用windows API函数CreateWindow来生成4个窗口,每个窗口对应一个标尺。在CreateWindow中为窗口指定消息处理函数,标尺接受到的所有消息都由该函数来处理。标尺类属性的初始化由构造函数来处理。
2)所述的标尺的初始化函数主要是调用单位派发函数来为每个标尺派发默认的单位。初始化从系统环境设置中读取的关于标尺的一些属性。
3)所述的单位派发函数,它是一个中转的函数,它的参数就是标尺的ID,它隐藏了标尺单位的换算、分发过程等一系列的具体实现方法。如果想要改变某个标尺的单位就把那个标尺的ID作为参数传进去即可。它的实现是:从系统的环境设置中读取单位的索引,然后把该索引所对应的单位存入与标尺ID对应的MsrUnitID数组中。
上面1)-3)中所定义的三个函数是公有函数,是可以被外部的函数来调用的。
4)所述的应用单位函数它要完成的工作量很大,参数也是标尺的ID。它根据对应标尺的ID去MsrUnitID数组中读取单位,然后根据单位来换算表尺的刻度的长度。该函数在画标尺的函数中调用。
5)所述的画标尺的函数由消息处理函数来调用,每当标尺窗口接受到WM_PAINT消息时就调用画标尺的函数来画标尺。
6)所述的消息处理函数是整个流程整合函数,它的实现是,截获标尺感兴趣的消息,其它的消息由父窗口来处理。截获鼠标右键WM_RBUTTONDOWN消息的处理是,打开单位设置对话框,从中得到要设置的单位,把这个单位赋值给系统环境设置,然后调用标尺的单位派发函数(参数为该标尺的ID),然后重画标尺,在重画标尺的函数中就会由应用单位函数来读取系统环境量中的单位。然后由画标尺函数来完成绘画。
上面4)-6)中所定义的三个函数是私有函数,只能在内部调用。
(2)创建标尺:由生成标尺的主窗口来生成一个标尺类的实例,然后调用标尺类的创建标尺函数来创建4个标尺的窗口,标尺的窗口是主窗口的子窗口。如图1所示,四个标尺窗口是相互独立的,虽然它们有着共同的特征,但是它们的行为是独立的,互相不干涉的,这个就是单独为某个标尺设置单位的基础。比如主窗口传来一个鼠标的消息,然后由主窗口分配到标尺1,那么整个程序的流程就转到标尺1的消息处理函数这里,其它的路径就被堵死,这时用户所做的改变就只是针对标尺1的改变。
(3)为每个标尺派发系统默认的单位。在创建了标尺窗口以后,由主窗口来调用标尺类的初始化函数来初始标尺的各个属性。该初始化函数内部为每个标尺调用一次单位派发函数,来给每一个标尺一个默认的单位值。其实这个过程就是标尺的初始化的一个过程,为了增加代码的可重用性,标尺的单位设置的接口都是通过单位派发函数来实现,如图1所示,由于四个标尺的行为虽然独立,但是它们的属性还是一样的,所以一次性的为4个标尺调用单位派发函数来设定一个初始的单位。
(4)标尺响应系统的鼠标消息,该消息处理函数起到一个中转的作用,它可以直接把要改变单位的标尺反应出来,而无需做复杂的为了判断是某个标尺所作的位置和区域的计算。
如图1所示,每个标尺都有一个消息处理函数来处理每个标尺的动作,由于标尺窗口是主窗口的子窗口,那么所有的消息都要经过主窗口来分配给各个子窗口,开发者不用考虑消息的该分配到哪个标尺的问题,主窗口自己会自动的分配,开发者只关心每个标尺的行为既可。
本实施例中,如果鼠标点击在横标尺1上,那么横标尺1消息处理函数响应该消息,其它标尺不会响应,做相应改变的只有横标尺1。
(5)步骤(4)的标尺消息处理函数打开标尺单位设置对话框,用户可以选择自己想要给标尺设置的新单位。
如图4所示,开发者可以通过菜单的方式来实现提供给用户一种更改标尺单位的界面,这种方法一目了然,也很快捷。还可以如图5所示提供一种对话框方式的界面给用户,它可以提供给用户更强大的一种更改方式。
(6)根据是哪个标尺的消息处理函数来为相应的ID的标尺来设置单位,通过调用标尺的ID来设置单位的函数来设置单位。
如图2所示,如果用户为标尺1更改了单位,那么就调用单位派发函数根据标尺1的ID为成员变量MsrUnitID中的第1个数组成员来赋新的值,并改变系统的单位设置。
(7)应用新的单位,重画标尺。改变系统单位。如图2所示,在调用单位派发函数后外面的工作基本上就做完了,剩下的就由内部的私有函数来完成,由应用单位函数来读取系统环境设置中的单位,然后调用标尺重画函数,重画函数会根据这个单位来重新计算标尺刻度,画出相应的标尺,至此,这个鼠标的消息就算走到头了。经过这样一个流程完成了对标尺单位的改变。改变后的效果如图6所示,横竖标尺的刻度是不一样的。
上述实施例中弹出单位设置对话框,其中有些可能是全局设置参数,不希望用户可以这样随便的改变它,以免在排其他版面时还要调整全局的版面设置。为此,可以用一个标志来区别是在标尺上单击鼠标右键呼出的单位设置对话框还是通过菜单环境设置呼出的单位设置对话框,并根据标志来置灰某些设置控件。
进一步,弹出单位设置对话框可以用右键菜单来代替,菜单项就是预设好的各个单位。
本发明所述的方法并不限于具体实施方式中所述的POP实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。
Claims (9)
1.一种横、竖标尺独立设置单位的方法,包括以下步骤:
(1)采用面向对象的编程方法定义标尺类,包括定义标尺类的成员变量及成员函数;
所述的成员变量包括:一个含四个数据的静态数组,该数组用来标记每个标尺所用的单位,该数组中的四个数据与每个标尺所用的单位一一对应;
所述的成员函数包括:创建4个标尺窗口的函数、根据标尺的ID来设置单位的函数、读取系统单位设置并根据ID分发到标尺的函数、每个标尺的消息处理函数;
(2)根据标尺类的定义来创建标尺;
(3)为每个标尺派发系统默认的单位;
(4)根据用户的操作信息,消息处理函数打开横标尺或竖标尺单位设置对话框,根据用户的选择给标尺设置新的单位。
2.如权利要求1所述的一种横、竖标尺独立设置单位的方法,其特征是步骤(1)中,所述的创建标尺窗口的函数参数中的句柄为父窗口句柄,它为每个标尺创建一个窗口,然后为这些窗口绑定相应的消息处理函数。
3.如权利要求1所述的一种横、竖标尺独立设置单位的方法,其特征是步骤(1)中,所述的设置单位的函数设有两个参数,即标尺ID和单位,这个函数根据标尺的ID,来给步骤(1)中的成员变量赋值,然后在画标尺的时候读取该数组中的相应的单位来画出标尺。
4.如权利要求1所述的一种横、竖标尺独立设置单位的方法,其特征是步骤(1)中,所述的读取系统单位设置并根据ID分发到标尺的函数,设有一个参数即标尺的ID,它在标尺初始化的时候调用,给标尺一个系统配置的单位。
5.如权利要求1所述的一种横、竖标尺独立设置单位的方法,其特征是步骤(1)中,所述的消息处理函数来打开单位设置对话框,并调用设置单位的函数,并向该函数传入标尺的ID和所要设置的单位参数。
6.如权利要求1-5之一的一种横、竖标尺独立设置单位的方法,其特征是步骤(2)中,创建标尺时为每一个标尺创建一个窗口,并且每一个标尺有一个独立的消息处理函数。
7.如权利要求1所述的一种横、竖标尺独立设置单位的方法,其特征是步骤(4)中,根据用户的操作信息,响应鼠标右键来调用改变单位的函数以改变标尺单位,并记录在静态数组中,然后在标尺重画的时候读取并应用。
8.如权利要求1-5之一的一种横、竖标尺独立设置单位的方法,其特征是步骤(4)中,还设有一个标志来区别是在标尺上单击鼠标右键呼出的单位设置对话框还是通过菜单环境设置呼出的单位设置对话框,并根据标志来置灰关系全局参数设置的控件。
9.如权利要求8所述的一种横、竖标尺独立设置单位的方法,其特征是单位设置对话框用右键菜单来代替,该右键菜单的菜单项就是预设好的各个单位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101650411A CN100435097C (zh) | 2006-12-12 | 2006-12-12 | 一种横、竖标尺独立设置单位的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101650411A CN100435097C (zh) | 2006-12-12 | 2006-12-12 | 一种横、竖标尺独立设置单位的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1987782A CN1987782A (zh) | 2007-06-27 |
CN100435097C true CN100435097C (zh) | 2008-11-19 |
Family
ID=38184590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101650411A Expired - Fee Related CN100435097C (zh) | 2006-12-12 | 2006-12-12 | 一种横、竖标尺独立设置单位的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100435097C (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2396425Y (zh) * | 1999-09-21 | 2000-09-13 | 曾小星 | 电脑荧屏活页门 |
CN1359064A (zh) * | 2001-10-18 | 2002-07-17 | 何惠昭 | 水平放置圆形罐体标尺的设计制作方法 |
US6463575B1 (en) * | 1999-07-06 | 2002-10-08 | Mitsubishi Denki Kabushiki Kaisha | Cell-layout method in integrated circuit devices |
CN2553438Y (zh) * | 2002-04-02 | 2003-05-28 | 马堃 | 带有内置人像取景定位标尺的计算机人像识别装置 |
CN2697587Y (zh) * | 2003-08-05 | 2005-05-04 | 姜述乐 | 位移感应装置和坐位体前屈测量仪 |
-
2006
- 2006-12-12 CN CNB2006101650411A patent/CN100435097C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6463575B1 (en) * | 1999-07-06 | 2002-10-08 | Mitsubishi Denki Kabushiki Kaisha | Cell-layout method in integrated circuit devices |
CN2396425Y (zh) * | 1999-09-21 | 2000-09-13 | 曾小星 | 电脑荧屏活页门 |
CN1359064A (zh) * | 2001-10-18 | 2002-07-17 | 何惠昭 | 水平放置圆形罐体标尺的设计制作方法 |
CN2553438Y (zh) * | 2002-04-02 | 2003-05-28 | 马堃 | 带有内置人像取景定位标尺的计算机人像识别装置 |
CN2697587Y (zh) * | 2003-08-05 | 2005-05-04 | 姜述乐 | 位移感应装置和坐位体前屈测量仪 |
Also Published As
Publication number | Publication date |
---|---|
CN1987782A (zh) | 2007-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10248994B2 (en) | Methods and systems for automatically searching for related digital templates during media-based project creation | |
CN103238150B (zh) | 由多个用户对博客的实时同步文档编辑 | |
CN101404152B (zh) | 信息显示装置 | |
CN1501239B (zh) | 图形用户接口及其方法 | |
CN1856796B (zh) | 基于铁笔的计算机系统和其用以接收用户通过铁笔和输入屏幕输入的手写信息的方法 | |
RU2392655C2 (ru) | Нанесение чернил в реальном времени | |
US8694890B2 (en) | Use of color in a site analysis report | |
CN104166514B (zh) | 信息处理装置、信息处理系统和信息显示方法 | |
US20050041866A1 (en) | Ink editing architecture | |
US8812957B2 (en) | Relevance slider in a site analysis report | |
CN103064535A (zh) | 触控笔、触控输入系统及更改触控操作特性的方法 | |
US20080183860A1 (en) | Intelligent node positioning in a site analysis report | |
CN101187864A (zh) | 一种用于界面展示抽象与集成的方法 | |
CN1991740B (zh) | 打印系统、打印数据提供装置、其控制方法 | |
CN108305305A (zh) | 推广图片的设计模块生成方法和装置 | |
CN100435097C (zh) | 一种横、竖标尺独立设置单位的方法 | |
CN109358843A (zh) | 一种面向金融终端交易的快速页面构建办法 | |
EP1227407A2 (en) | User interface for creating printing templates | |
CN102360395A (zh) | 一种用于幕墙不规则四边形装饰板批量展开图的绘制方法 | |
CN106598510A (zh) | 兼容两种打印方式的方法及装置 | |
US11350003B1 (en) | Dynamic print engine presentation via a GUI | |
CN106250155B (zh) | 具有记忆功能和检测判断功能的可视化编程系统 | |
CN101382861A (zh) | 移动式讯息区块显示系统及其方法 | |
Meissner | Exchange Job Definition Format | |
CN103038733B (zh) | 程序、信息处理装置、信息处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081119 Termination date: 20191212 |