顯示檔的 MOUBTN (滑鼠按鈕) 關鍵字

使用此檔案層次或記錄層次關鍵字,可將「指令」鍵或 EVENT-ID 參數,與一或兩個指標裝置事件連結。

當執行指定的指標裝置單一事件時,如果沒有其他功能具有更高優先順序, 則會鎖定鍵盤、將游標移至指標裝置游標位置,並將指定的「指令」鍵或 EVENT-ID 傳回應用程式。 如果「指令」鍵或 EVENT-ID 通常導致輸入欄位資料驗證,則會先執行資料驗證。 如果指定的「指令」鍵或 EVENT-ID 通常傳回輸入欄位資料,則會包含入埠輸入欄位資料。

若為指標裝置雙重事件,則要等到亦發生尾端邊緣事件時,才會傳回入埠資料。 當偵測到前導邊緣事件時,會進入可程式化雙重事件狀態,並在指標裝置游標的位置周圍 繪製記號方框 (字元周圍的 4 條藍線),在顏色不可程式化工作站 (NWS) 上, 將指標裝置游標的顏色變為白色,並尋找尾端邊緣事件。按鍵及主電腦資料串流將取消可程式化雙事件狀態。 當等待尾端邊緣事件時,會忽略某些指標裝置事件。當收到尾端邊緣事件時, 會消除記號方框,並將指標裝置游標顏色變更為禁止輸入,然後鎖定鍵盤, 將文字游標移至指標裝置游標的位置,並將入埠資料傳回主電腦。

註: 雖然理論上可以在同一滑鼠按鈕及移位狀態上,撰寫指標裝置事件的某些組合, 但不建議您這樣做。例如,如果撰寫滑鼠右鍵程式,則不應撰寫連按兩下滑鼠右鍵程式, 否則會因按滑鼠右鍵事件導致鎖定鍵盤,而無法偵測到它。使用 *QUEUE 參數可允許應用程式處理此狀況。
此關鍵字的格式為:
MOUBTN(EVENT  [TRAILING-EVENT]  {Command key | EVENT-ID}
[*QUEUE | *NOQUEUE])

EVENT 參數是必要參數,其指示將與「指令」鍵或 EVENT-ID 參數關聯的指標裝置事件。EVENT 參數的有效值如下:

意義
*ULP
鬆開 Shift 鍵並按滑鼠左鍵
*ULR
鬆開 Shift 鍵並放開滑鼠左鍵
*ULD
鬆開 Shift 鍵並連按兩下滑鼠左鍵
*UMP
鬆開 Shift 鍵並按滑鼠中間鍵
*UMR
鬆開 Shift 鍵並放開滑鼠中間鍵
*UMD
鬆開 Shift 鍵並連按兩下滑鼠中間鍵
*URP
鬆開 Shift 鍵並按滑鼠右鍵
*URR
鬆開 Shift 鍵並放開滑鼠右鍵
*URD
鬆開 Shift 鍵並連按兩下滑鼠右鍵
*SLP
按住 Shift 鍵並按滑鼠左鍵
*SLR
按住 Shift 鍵並放開滑鼠左鍵
*SLD
按住 Shift 鍵並連按兩下滑鼠左鍵
*SMP
按住 Shift 鍵並按滑鼠中間鍵
*SMR
按住 Shift 鍵並放開滑鼠中間鍵
*SMD
按住 Shift 鍵並連按兩下滑鼠中間鍵
*SRP
按住 Shift 鍵並按滑鼠右鍵
*SRR
按住 Shift 鍵並放開滑鼠右鍵
*SRD
按住 Shift 鍵並連按兩下滑鼠右鍵

TRAILING-EVENT 參數是選用性的。如果指定,則此參數會定義兩個事件指標裝置定義的尾端事件。 此參數與 EVENT 參數的有效值相同。TRAILING-EVENT 是多個前導邊緣事件的尾端邊緣事件, 而且每個事件都有不同的「指令」鍵或 EVENT-ID 連結。作為尾端邊緣事件的事件也被定義為單一事件 (具有不同的「指令」鍵或 EVENT-ID 連結)。

註: 對「事件」的定義有一些限制。
  • 一個事件不能同時作為單一事件及兩個事件順序的前導邊緣。
  • 前導邊緣事件僅能有一個尾端邊緣事件與其連結。

如果將同一事件用作具有多個滑鼠按鈕定義的單一事件或前導邊緣事件,則僅會使用第一個定義。

您必須指定「指令」鍵或 EVENT-ID 參數,並將「指令」鍵或 EVENT-ID 值與第一個 (及第二個,如果有提供的話) 參數指示的指標裝置事件連結。 「指令」鍵的有效值是:CA01 至 CA24、CF01 至 CF24、ENTER、ROLLUP、ROLLDOWN、HELP、HOME、PRINT 及 CLEAR。 有效的 EVENT-ID 是 E00 至 E15。EVENT-ID 與 CAxx 鍵的相似之處在於不會從裝置傳輸任何輸入資料。

QUEUE 參數是選用性的,指定如果在鎖定鍵盤時收到要定義的單一事件, 控制器是否應將其排入佇列。此功能主要用來允許對於已定義按下或放開相同按鈕的滑鼠按鈕,定義連按兩下。 如果並未對連按兩下啟用佇列,則應用程式可能不知道已發生連按兩下, 因為鍵盤這時仍被鎖定,因而無法處理按鈕的按下/放開。預設值為 *NOQUEUE。

當已在 MOUBTN 關鍵字上使用列出的「指令」鍵時,不能指定下列關鍵字:

指令鍵 互斥關鍵字
CFxx

ALTHELP(CAyy)、CAxx
其中 xx=yy。

CAxx

ALTPAGEDWN(CFyy)、ALTPAGEUP(CFyy)、CFxx
其中 xx=yy。

CF01 不具有參數的 ALTHELP
CA07 不具有參數的 ALTPAGEUP
CA08 不具有參數的 ALTPAGEDWN

儘管不是必要的,但是即使將相關聯的功能鍵定義為單一或雙滑鼠事件的指令鍵, 仍可以指定 CA01-CA24、CF01-CF24、ROLLUP、ROLLDOWN、PAGEUP、PAGEDOWN、CLEAR 及 HLPRTN 關鍵字。 將「指令」鍵與滑鼠事件連結,將自動從鍵盤啟用相對應的「指令」鍵。 如果要將回應指示器與功能鍵連結,您必須使用所列出的其中一個關鍵字來執行此動作。 在此情況下,不論「指令」鍵是來自鍵盤還是滑鼠事件,都會設定回應指示器。

選項指示器對此關鍵字有效。

範例

下列範例顯示如何指定 MOUBTN 關鍵字。

|...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8
     A                                      MOUBTN(*URP CF03)
     A                                      MOUBTN(*SRP CF12)
     A                                      CF12(12 'CANCEL')
     A          R RECORD1
     A                                      MOUBTN(*ULP *UMP ROLLUP)
     A                                      MOUBTN(*UMP *ULP ROLLDOWN)
     A                                  1 10'ONE--:'
     A            FIELD1        10A  I  1 17TEXT('ONE')
     A                                  2 10'TWO--:'
     A            FIELD2        10A  I  2 17TEXT('TWO')
     A

在此範例中,共定義 2 個「可程式化滑鼠按鈕」事件, 它們將對此檔案內的所有記錄有效 (除非在記錄層次置換)。這些定義將「鬆開 Shift 鍵並按滑鼠右鍵」事件與 CF03 鍵連結,並將「按住 Shift 鍵並按滑鼠右鍵」事件與 CF12 鍵連結。 CF03 鍵沒有與其連結的回應指示器,而 CF12 鍵具有與其連結的回應指示器 12。

在 RECORD1 內,共定義兩個雙重事件滑鼠按鈕事件。第一個事件將後面是「鬆開 Shift 鍵並按滑鼠中間鍵」的「鬆開 Shift 鍵並按滑鼠左鍵」,與 ROLLUP 鍵連結。 第二個事件將後面是「鬆開 Shift 鍵並按滑鼠左鍵」的「鬆開 Shift 鍵並按滑鼠中間鍵」, 與 ROLLDOWN 鍵連結。僅當 RECORD1 是要寫入顯示畫面的最後一筆記錄時,這些定義才有效。