亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法

文檔序號:6610351閱讀:155來源:國知局
專利名稱:一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法
技術(shù)領(lǐng)域
本發(fā)明屬于人機(jī)交互領(lǐng)域,具體涉及一種可設(shè)置多值域區(qū)間的編輯控 件的創(chuàng)建方法。
背景技術(shù)
在計算機(jī)技術(shù)領(lǐng)域內(nèi),控件實際上是子窗口,在應(yīng)用程序與用戶進(jìn)行交互的過程中,控件是主要角色。以Windows才喿作系統(tǒng)為例,Windows ^是 供了五花八門的標(biāo)準(zhǔn)控件。這些控件的目的就是方便程序與用戶的交互。 應(yīng)用程序應(yīng)該根據(jù)自己的實際情況,選擇合適的控件。控件的創(chuàng)建有自動 和手工兩種常用方法??丶淖詣觿?chuàng)建是通過向?qū)υ捒蚰0逯刑砑涌丶?現(xiàn)的。手工創(chuàng)建控件是一種比較專業(yè)的方法,包括以下步驟構(gòu)建一個控 件對象,定義必要的控件屬性,調(diào)用控件對象的Create成員函數(shù)創(chuàng)建控件。 控件的屬性是程序設(shè)計時為該控件對象指定的一個數(shù)據(jù)存儲空間。在標(biāo)準(zhǔn) 的控件中,通常只定義了控件運行所需的最基本的屬性。在實際的應(yīng)用中, 程序員常常需要根據(jù)要求定義一些必要的控件屬性。這些控件屬性通常包 含了計算機(jī)進(jìn)行運算時所需的運算數(shù)據(jù)。計算機(jī)需要通過某種方法來對這些控件屬性進(jìn)行查詢和設(shè)置。訪問控 件有四種方法利用對話框的數(shù)據(jù)交換功能訪問控件,通過控件對象來訪 問控件,利用CWnd類的一些用于管理控件的成員函數(shù)來訪問控件,用 CWnd:: GetDlgltem訪問控件。在現(xiàn)有的可—見化應(yīng)用專欠件的界面控件中,以Windows應(yīng)用程序為例, 如果釆用自動創(chuàng)建的方法來添加控件的話,系統(tǒng)通常只允許用戶為數(shù)值型 控件(比如編輯控件)指定一個最大值和最小值。當(dāng)用戶輸入超出該值域 范圍以外的值時,系統(tǒng)將給出錯誤提示。控件對數(shù)據(jù)有效性的檢驗降低了 非法輸入對業(yè)務(wù)邏輯帶來的安全隱患,降低了應(yīng)用程序的系統(tǒng)風(fēng)險。但在 實際的工程應(yīng)用中,某個變量的值域往往由多個非封閉區(qū)間組成,顯然,
已有的標(biāo)準(zhǔn)界面控件,無法滿足工程軟件的開發(fā)需要。本發(fā)明描述了 一種手動創(chuàng)建控件的方法,通過在控件中添加 一個控件 屬性來實現(xiàn)設(shè)置多值域區(qū)間數(shù)據(jù)的需要。發(fā)明內(nèi)容針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是提供一種可設(shè)置多值域 區(qū)間的編輯控件的創(chuàng)建方法。通過該方法創(chuàng)建的編輯控件能夠?qū)θ我庵涤?區(qū)間的參數(shù)進(jìn)行數(shù)據(jù)校驗。為達(dá)到以上目的,本發(fā)明采用的技術(shù)方案是一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法,包括以下步驟 步驟一,首先定義三元組,所述的三元組包括操作碼、左區(qū)間值、右 區(qū)間值,所述的操作碼用于描述左右區(qū)間的閉合情況; 步驟二,定義三元組中的操作碼;步驟三,定義包含三元組序列的數(shù)據(jù)結(jié)構(gòu);步驟四,在操作系統(tǒng)的標(biāo)準(zhǔn)編輯控件上派生一個新的控件,在新的控 件中定義一個屬性,并將該屬性的數(shù)據(jù)結(jié)構(gòu)定義為鏈表;步驟五,將多值域數(shù)值拆成多個單值域的并集,每個單值域采用一個 三元組進(jìn)行描述,并將該三元組插入到鏈表中完成初始化。進(jìn)一步,步驟一中,所述的三元組是(操作碼,左區(qū)間值,右區(qū)間值)、 (左區(qū)間值,操作碼,右區(qū)間值),或者是(左區(qū)間值,右區(qū)間值,操作 碼)。進(jìn)一步,步驟一中,所述的三元組是(操作碼,左區(qū)間值,右區(qū)間值)。 進(jìn)一步,步驟二中所定義的三元組中的操作碼為閉區(qū)間——0、開區(qū)間——3、左閉右開——2、左開右閉——1。進(jìn)一步,步驟三中,所述的數(shù)據(jù)結(jié)構(gòu)是線性鏈表、數(shù)組或循環(huán)鏈表。 進(jìn)一步,步驟三中,所述的數(shù)據(jù)結(jié)構(gòu)是線性鏈表,該線性鏈表由依次鏈接的一組結(jié)點組成,結(jié)點數(shù)動態(tài)擴(kuò)展,每一個結(jié)點對應(yīng)一個三元組。
本發(fā)明采用的另外一種技術(shù)方案是 一種可設(shè)置多值域區(qū)間的編輯控 件的創(chuàng)建方法,包括以下步驟步驟一,首先定義四元組,所述的四元組包括左區(qū)間閉合判定碼,左 區(qū)間值,右區(qū)間值,右區(qū)間閉合判定碼;步驟三,定義包含四元組序列的數(shù)據(jù)結(jié)構(gòu);步驟四,在操作系統(tǒng)的標(biāo)準(zhǔn)編輯控件上派生一個新的控件,在新的控 件中定義一個屬性,并將該屬性的數(shù)據(jù)結(jié)構(gòu)定義為鏈表;步驟五,將多值域數(shù)值拆成多個單值域的并集,每個單值域采用一個 四元組進(jìn)行描述,并將該四元組插入到鏈表中完成初始化。進(jìn)一步,步驟三中,所述的數(shù)據(jù)結(jié)構(gòu)是線性鏈表、數(shù)組或循環(huán)鏈表。進(jìn)一步,步驟三中,所述的數(shù)據(jù)結(jié)構(gòu)是線性鏈表,該線性鏈表由依次 鏈接的一組結(jié)點組成,結(jié)點凄t動態(tài)擴(kuò)展,每一個結(jié)點對應(yīng)一個四元組。本發(fā)明的效果在于本發(fā)明解決了傳統(tǒng)控件只能對封閉單區(qū)間的參數(shù) 提供數(shù)據(jù)校驗的問題,提出了 一種新型的可對任意值域區(qū)間的參數(shù)進(jìn)行數(shù) 據(jù)校驗的數(shù)值控件,筒化了工程軟件界面的開發(fā)流程。因此,本發(fā)明解決 了傳統(tǒng)控件只能對閉合單區(qū)間進(jìn)行數(shù)據(jù)校驗的問題,可廣泛應(yīng)用于任何工 程軟件的界面開發(fā)中。


圖1是本發(fā)明所述第一種技術(shù)方案的流程圖; 圖2是本發(fā)明所述的線性表的推演示意圖; 圖3是線性表的結(jié)構(gòu)示意圖; 圖4是一個Windows下的^^圖系統(tǒng)示例圖; 圖5是本發(fā)明所述的控件數(shù)據(jù)校驗流程圖。
具體實施方式
下面結(jié)合具體實施方式
和附圖對本發(fā)明作進(jìn)一步的描述。一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法,包括以下步驟步驟一,首先選用一種可方便轉(zhuǎn)換為計算機(jī)程序的形式化表達(dá)方法來 對單值域進(jìn)行描述。在數(shù)學(xué)中, 一個值域區(qū)間被表示為[a,b],或者a《X《 b,這里a為最小值,b為最大值。但這種純粹的數(shù)學(xué)表達(dá)式是不能直接用 現(xiàn)有編程語言進(jìn)行表達(dá)。通常我們使用數(shù)學(xué)范式來進(jìn)行描述。在本實施例 中,我們優(yōu)先選用三元組來定義一個值域區(qū)間。 一個三元組由#:作碼、最 大值和最小值三部分組成。三元組的定義方式有很多種,可以是(操作碼, 左區(qū)間值,右區(qū)間值)、(左區(qū)間值,操作碼,右區(qū)間值),也可以是(左 區(qū)間值,右區(qū)間值,操作碼)。本發(fā)明我們優(yōu)先選用(操作碼,左區(qū)間值, 右區(qū)間值)的方式。數(shù)學(xué)中的值域區(qū)間除了用三元組外還可以采用其他方式描述,比如四 元組(左區(qū)間閉合判定碼,左區(qū)間值,右區(qū)間值,右區(qū)間閉合判定碼)。步驟二,定義操作碼。在本發(fā)明中,操作碼用于描述左右區(qū)間的閉合 情況,因為,以左區(qū)間為例,如果為閉合表示變量可以取大于或者等于最 小值的數(shù)值;如果不是閉合,則只能取大于最小值的數(shù)值。在本實施例中, 由于我們優(yōu)先選擇了三元組,所以需要用 一個操作碼來定義左右區(qū)間的閉 合情況,如果是步驟一中所述的四元組,則操作碼只需定義左區(qū)間或者右 區(qū)間的閉合情況即可。由于左右區(qū)間的閉合情況只有四種組合左右均閉,左右均開,左閉 右開,左開右閉。所以操作碼的定義方法只要能對以上四種情況進(jìn)行區(qū)分 即可。定義的方法有很多種,我們優(yōu)先用0, 1, 2, 3, 4來對以上四種情 況進(jìn)行約定。也可以采用一個兩位的二進(jìn)制數(shù)來進(jìn)行編碼,比如二進(jìn)制數(shù) 的第二位表示左區(qū)間的閉或者合,第一位表示右區(qū)間的閉或者合,這樣的 編碼串為00, 10, 01, 11四種。步驟三,以上兩個步驟解決了單個值域的定義問題,即用一個三元組 來定義一個值域區(qū)間。所謂多值域?qū)嶋H上由多個單值域組成。因此,步驟 三只要定義一個可以包含三元組序列的數(shù)據(jù)結(jié)構(gòu)即可。在常用的數(shù)據(jù)結(jié)構(gòu)
中,我們可以選4爭線性鏈表、數(shù)組、循環(huán)鏈表等方式。本實施例中我們優(yōu) 先選擇用線性鏈表(或簡稱線性表)來定義一個可包含多個三元組的數(shù)據(jù) 結(jié)構(gòu)。該線性鏈表由依次鏈接的一組結(jié)點組成,結(jié)點數(shù)動態(tài)擴(kuò)展,每一個結(jié)點對應(yīng)一個三元組;步驟四,在操作系統(tǒng)的標(biāo)準(zhǔn)編輯控件上派生一個新的控件,在新的控 件中定義一個屬性,并將該屬性的數(shù)據(jù)結(jié)構(gòu)定義為鏈表。步驟五,將多值域數(shù)值拆成多個單值域的并集,在數(shù)學(xué)中,這種表達(dá) 方式是確定的,且是唯一的。每個單值域釆用一個三元組進(jìn)行描述,并將 該三元組插入到線性鏈表中完成初始化。經(jīng)過以上五步驟創(chuàng)建的控件,即可滿足多值域數(shù)據(jù)的需求了 。例如,如圖l所示,用戶需要用一個Windows的編輯控件來采集一個 數(shù)據(jù),該數(shù)據(jù)的值域空間為-1《X《l且X^0。首先,定義一個三元組的數(shù)據(jù)結(jié)構(gòu)來描述單值域。以下以C語言為例Struct {int operajfloat min;float max} —value其次,以上三元組結(jié)構(gòu)中的操作碼opera,采用如下編碼方式 其中操作碼分別定義為閉區(qū)間一一0 、開區(qū)間——3 、左閉右開—— 2 、左開右閉——1 ;第三步,定義一個以三元組為結(jié)點的線性鏈表。 Struct { —value node; —value * pt; } —valueChain;本發(fā)明所述的線性表的推演如圖2所示; 本發(fā)明所述的線性表的結(jié)構(gòu)如圖3所示。第四步,繼承Windows的標(biāo)準(zhǔn)空間CEdit,創(chuàng)建一個新的編輯控件,
并定義一個屬性,聲明為線性鏈表類型。CMyEdit: public Cedit —valueChain data;第五步,將-1<X《1JL X^O拆分為多個單值域的合集,即[-1, 0) u (O,l]。每個單值域采用一個三元組進(jìn)行描述,并將該三元組插入到線性鏈表中完成初始化?!獀alue * pt;pt=new(sizeof(—value)); pt》opera-2;〃左閉右開區(qū)間; pt->min=-1; pt->max=0;data.add(pt);〃添加三元組; pt=new(sizeof(—value)); pt->opera=3 ;〃左開右閉區(qū)間; pt->min=0; pt->max=l;}至此, 一個擁有多值域區(qū)間的控件創(chuàng)建完畢。在本發(fā)明的技術(shù)方案中 一、本發(fā)明首先解決任意值域區(qū)間的形式化表達(dá)問題。本發(fā)明將該問 題歸為四類a) 不等于的表達(dá)問題;b) 區(qū)間的表達(dá)問題;c) 無窮大的表達(dá)問題;d) 并集的表達(dá)。對于不等于的問題,本發(fā)明可以用后三類問題來表示,比如X^a,可
轉(zhuǎn)化為(一oo,a)U(a, +oo)。無窮大的問題,可以用計算機(jī)可表達(dá)的最大的值M A X來解決。 對于區(qū)間,本發(fā)明定義了一個三元組——(操作碼,左區(qū)間值,右區(qū)間值)來表示,其中操作碼分別定義為閉區(qū)間——0、開區(qū)間一一3、左閉右開——2 、左開右閉——1 。在實現(xiàn)中,本發(fā)明利用指針的概念來解決并集的問題。由此,任意一個值域區(qū)間都可用一個或多個三元組的并集來表達(dá)。比如-1《X《l且X-O這樣的值域范圍可以表達(dá)為[-l, 0) U (0, l]。二、 其次,本發(fā)明定義一種線性表來對以上的數(shù)學(xué)表達(dá)式進(jìn)行描述。 該表由依次鏈接的一組結(jié)點組成,結(jié)點數(shù)可動態(tài)擴(kuò)展,每一個結(jié)點對應(yīng) 一個三元纟且。三、 再次,本發(fā)明在操作系統(tǒng)的標(biāo)準(zhǔn)編輯控件上派生一個新的控件, 在該控件中定義一個屬性,并將其聲明為本發(fā)明定義的線性表類型,按 照附圖中的操作說明對其初始化后便可使用了 。四、 在控件的使用中,當(dāng)編輯控件有數(shù)值輸入時,可通過對線性表中 的結(jié)點進(jìn)行遍歷來實現(xiàn)數(shù)據(jù)的有效性校驗。本實施例中以Windows下的一個繪圖系統(tǒng)為例。如圖4所示,在直線 的繪制系統(tǒng)中,本實施例中假定接受用戶輸入不超過1000的非0正整數(shù)作 為線寬的有效輸入。1. 該值域的表示方式為(0, 1000〕,在動態(tài)數(shù)組中的三元組表示方 式,為(1, 0, 1000 )。2. 創(chuàng)建一個新的編輯控件,申明該控件為CEdit的子類3. 使用Windows標(biāo)準(zhǔn)類庫中的動態(tài)數(shù)組來定義線性表4. 初始化線性表5. 響應(yīng)控件的En—change消息,當(dāng)編輯控件有變4匕時,系統(tǒng)遍歷動態(tài) 數(shù)組進(jìn)行有效性檢驗,并給出對應(yīng)的提示信息。新型控件數(shù)據(jù)校驗處理流 程見圖5。術(shù)人員根據(jù)本發(fā)明的技術(shù))案得^其:的實i方式,、、同5屬于本發(fā)明4技術(shù)創(chuàng)新范圍。
權(quán)利要求
1.一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法,包括以下步驟步驟一,首先定義三元組,所述的三元組包括操作碼、左區(qū)間值、右區(qū)間值,所述的操作碼用于描述左右區(qū)間的閉合情況;步驟二,定義三元組中的操作碼;步驟三,定義包含三元組序列的數(shù)據(jù)結(jié)構(gòu);步驟四,在操作系統(tǒng)的標(biāo)準(zhǔn)編輯控件上派生一個新的控件,在新的控件中定義一個屬性,并將該屬性的數(shù)據(jù)結(jié)構(gòu)定義為鏈表;步驟五、將多值域數(shù)值拆成多個單值域的并集,每個單值域采用一個三元組進(jìn)行描述,并將該三元組插入到鏈表中完成初始化。
2. 如權(quán)利要求1所述的一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法, 其特征是步驟一中,所述的三元組是(操作碼,左區(qū)間值,右區(qū)間值)、(左區(qū)間值,操作碼,右區(qū)間值),或者是(左區(qū)間值,右區(qū)間值,操作碼)。
3. 如權(quán)利要求2所述的一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法, 其特征是步驟一中,所述的三元組是(操作碼,左區(qū)間值,右區(qū)間值)。
4. 如權(quán)利要求l、 2或3所述的一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng) 建方法,其特征是步驟二中所定義的三元組中的操作碼為閉區(qū)間——0、 開區(qū)間——3、左閉右開——2、左開右閉——1。
5. 如權(quán)利要求l、 2或3所述的一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng) 建方法,其特征是步驟三中,所述的數(shù)據(jù)結(jié)構(gòu)是線性鏈表、數(shù)組或循環(huán)鏈 表。
6. 如權(quán)利要求5所述的一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法, 其特征是步驟三中,所述的數(shù)據(jù)結(jié)構(gòu)是線性鏈表,該線性鏈表由依次鏈接 的一組結(jié)點組成,結(jié)點數(shù)動態(tài)擴(kuò)展,每一個結(jié)點對應(yīng)一個三元組。
7. —種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法,包括以下步驟 步驟一,首先定義四元組,所述的四元組包括左區(qū)間閉合判定碼,左區(qū)間值,右區(qū)間值,右區(qū)間閉合判定碼; 步驟二,步驟三,定義包含四元組序列的數(shù)據(jù)結(jié)構(gòu); 步驟四,在操作系統(tǒng)的標(biāo)準(zhǔn)編輯控件上派生一個新的控件,在新的控件中定義一個屬性,并將該屬性的數(shù)據(jù)結(jié)構(gòu)定義為鏈表;步驟五,將多值域數(shù)值拆成多個單值域的并集,每個單值域采用一個四 元組進(jìn)行描述,并將該四元組插入到鏈表中完成初始化。
8. 如權(quán)利要求7所述的 一種可"&置多值域區(qū)間的編輯控件的創(chuàng)建方法, 其特征是步驟三中,所述的數(shù)據(jù)結(jié)構(gòu)是線性鏈表、數(shù)組或循環(huán)鏈表。
9. 如權(quán)利要求8所述的一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法, 其特征是步驟三中,所述的數(shù)據(jù)結(jié)構(gòu)是線性鏈表,該線性鏈表由依次鏈接 的一組結(jié)點組成,結(jié)點數(shù)動態(tài)擴(kuò)展,每一個結(jié)點3于應(yīng)一個四元組。
全文摘要
本發(fā)明涉及一種可設(shè)置多值域區(qū)間的編輯控件的創(chuàng)建方法。在現(xiàn)有的可視化應(yīng)用軟件的界面控件中,系統(tǒng)通常只允許用戶為數(shù)值型控件指定一個最大值和最小值。當(dāng)用戶輸入超出該值域范圍以外的值時,系統(tǒng)將給出錯誤提示。本發(fā)明提出了一種新型的可對任意值域區(qū)間的參數(shù)進(jìn)行數(shù)據(jù)校驗的數(shù)值控件,簡化了工程軟件界面的開發(fā)流程。因此,本發(fā)明解決了傳統(tǒng)控件只能對閉合單區(qū)間進(jìn)行數(shù)據(jù)校驗的問題,可廣泛應(yīng)用于任何工程軟件的界面開發(fā)中。
文檔編號G06F9/44GK101118492SQ20071012221
公開日2008年2月6日 申請日期2007年9月24日 優(yōu)先權(quán)日2007年9月24日
發(fā)明者雯 熊 申請人:北大方正集團(tuán)有限公司;北京北大方正電子有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1