# 日本語 OpenVMS
日本語画面管理ライブラリ
利用者の手引き

前へ | 次へ | 目次 | 索引

# SMG$PUT_CHARS_HIGHWIDE

> The Write Double-Height Double-Width Characters ルーチンは仮想ディスプレイに4倍角の文字を書き込みます。

## 形式

> SMG$PUT_CHARS_HIGHWIDE display-id ,text [,start-row] [,start-column] [,rendition-set] [,rendition-complement] [,character-set]

## 戻り値

> ###

> OpenVMS 用法 | cond_value
> データ型 | longword (unsigned)
> アクセス | write only
> 受け渡し方 | by value

## 引数

> ### display-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 4 倍角の文字が書き込まれる仮想ディスプレイを指定します。 display-id 引数は，この仮想ディスプレイ識別子を格納した符号なしロングワードのアドレスです。

> この引数は SMG$CREATE_VIRTUAL_DISPLAY ルーチンによって与えられます。

> ### text

> VMS 用法: | char_string
> データ型: | character string
> アクセス: | read only
> 受け渡し方: | by descriptor

> 仮想ディスプレイへ書き込まれる文字。text 引数は，文字列を示すディスクリプタのアドレスです。

> ### start-row

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 文字書き込み開始行。start-row 引数は，開始行番号を格納した符号付きロングワードのアドレスです。 start-row 引数が省略されている場合, あるいはゼロに等しい場合は出力は現在の行から始まります。

> ### start-column

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 文字書き込み開始カラム。start-column 引数は，開始カラム番号を格納した符号付きロングワードのアドレスです。start-column 引数が省略されている場合，あるいはゼロに等しい場合は，出力は現在のカラムから始まります。全角文字の右半分からカラムが始まる場合は，その文字の左半分は未定義文字になります。

> ### rendition-set

> OpenVMS 用法 | mask_longword
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 属性指定子。rendition-set 引数は省略可能であり，ロングワード・ビット・マスクのアドレスです。このロングワード・ビット・マスク内の各属性を設定すると，ディスプレス内の対応する属性が設定されます。rendition-set 引数を使用して以下の属性を指定できます。

> SMG$M_BLINK | 点滅する文字を表示します。
> SMG$M_BOLD | 通常の輝度より高い輝度で文字を表示します。
> SMG$M_REVERSE | 文字を反転表示します。つまり，仮想ディスプレイの現在の省略時の属性とは逆の状態で表示します。
> SMG$M_UNDERLINE | 下線を付けた文字を表示します。
> SMG$M_INVISIBLE | 表示されない文字を指定します。つまり，仮想ディスプレイに存在していても，ペーストボードに表示されない文字を表示します。
> SMG$M_USER1からSMG$M_USER8 | ユーザ定義属性を表示します。

> ### rendition-complement

> OpenVMS 用法 | mask_longword
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 属性補足指定子。rendition-complement 引数は省略可能な，ロングワード・ビット・マスクのアドレスであり，このロングワード・ビット・マスク内の各属性を設定すると，ディスプレイ内の対応する属性が補足されます。 rendition-set 引数に指定できる属性はすべて， rendition-complement 引数で補足できます。

> rendition-set 引数と rendition-complement 引数はどちらも省略可能な引数であり，これらの引数を組み合わせて使用すれば，ユーザは仮想ディスプレイの属性を制御できます。rendition-set 引数は特定の仮想ディスプレイ属性を設定します。それに対し，rendition-complement 引数はこれらの属性を補足します。rendition-set 引数と rendition-complement 引数の両方に同じビットが指定されている場合には，最初に rendition-set 引数が評価され，その後， rendition-complement 引数が評価されます。これらの 2 つの引数を組み合わせて使用すれば，1 回のプロシージャ呼び出しで複数の仮想ディスプレイ属性を制御できます。各属性に対して，ユーザは次の組み合わせを指定できます。

> 設定 | 補足 | 動作
> --- | --- | ---
> 0 | 0 | 属性を省略時の状態に設定する。
> 1 | 0 | 属性をオンに設定する。
> 0 | 1 | 属性を省略時の逆の状態に設定する。
> 1 | 1 | 属性をオフに設定する。

> ### character-set

> OpenVMS 用法 | longword_unsigned
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 挿入されるテキストの文字集合。 character-set 引数は，文字集合コードを格納した符号なしロングワードのアドレスです。この引数を省略した場合は，SMG$CREATE_VIRTUAL_DISPLAY ルーチンまたは SMG$CHANGE_VIRTUAL_DISPLAY ルーチンで設定された値が使用されます。

> 値 | 文字集合 (コードセット)
> --- | ---
> SMG$C_ASCII | ASCII文字集合
> SMG$C_SPEC_GRAPHICS | DEC特殊文字集合
> SMG$C_SUPPLEMENTAL | 補助文字集合 1
> SMG$C_KANJI | DEC漢字文字集合
> SMG$C_JIS_KANA | JISカタカナ文字集合
> SMG$C_SDK | Super DEC 漢字コードセット

1DEC 補助文字集合または Latin-1 文字集合のいずれか。

## 説明

> SMG$PUT_CHARS_HIGHWIDEルーチンは指定された仮想ディスプレイに4倍角の文字を書き込みます。対応するペーストボードの行は，半角/全角文字と4倍角文字を混在して格納することはできません。その行が半角/全角文字を格納していた場合には，その部分は空白になります。テキストが1行よりも短い場合は，空白が埋め込まれます。仮想カーソルは，最後に書き込まれたテキストのすぐ後の文字位置に設定されます。

> ターミナルが4倍角文字をサポートしていない場合は，同じ文字が2行にわたって表示されます。

> 仮想ディスプレイからあふれた分の文字は切り捨てられますが，仮想ディスプレイに対して SMG$M_TRUNC_ICON 属性が設定されている場合には， SMG$PUT_CHAR_HIGHWIDEルーチンが行の一部を切り捨てたことを示すアイコンを出力します。

> DEC漢字または Super DEC 漢字文字集合を使用する際に，全角文字の右半分から書き込み操作が始まる場合は，その文字の左半分は未定義文字になります。また，全角文字の左半分で書き込み操作が終了する場合は，その文字の右半分は未定義文字になります。さらに，行の一部が切り捨てられる場合は，その文字の左半分は未定義文字になります。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> LIB$_INVSTRDES | 文字列ディスクリプタが誤っています。
> SMG$_INVARG | 引数が誤っています。
> SMG$_INVCOL | カラム番号が誤っています。
> SMG$_INVDIS_ID | display-id 引数が誤っています。
> SMG$_INVROW | 行番号が誤っています。
> SMG$_WILUSERMS | ペーストボードがビデオ・ターミナルではありません。
> SMG$_WRONUMARG | 引数の数が誤っています。

# SMG$PUT_CHARS_MULTI

> The Put Text with Multiple Renditions to Display ルーチンは，仮想ディスプレイに複数のレンディションで, テキストを書き込みます。

## 形式

> SMG$PUT_CHARS_MULTI display-id ,text [,start-row] [,start-column] [,flags] [,rendition-string] [,rendition-complement] [,character-set]

## 戻り値

> ###

> OpenVMS 用法 | cond_value
> データ型 | longword (unsigned)
> アクセス | write only
> 受け渡し方 | by value

## 引数

> ### display-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 影響を受ける仮想ディスプレイの識別子。 display-id 引数は，この仮想ディスプレイ識別子を格納した符号なしロングワードのアドレスです。

> ### text

> OpenVMS 用法 | char_string
> データ型 | character string
> アクセス | read only
> 受け渡し方 | by descriptor

> 出力されるテキスト。 text 引数は，テキストを示すディスクリプタのアドレスです。

> ### start-row

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 文字書き込み開始行。 start-row 引数は，行の位置を格納した符号付きロングワードのアドレスです。この引数を省略した場合は，出力は現在の行から開始されます。

> ### start-column

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 文字書き込み開始カラム。 start-column 引数は，カラム位置を格納した符号付きロングワードのアドレスです。この引数を省略した場合は，出力は現在のカラムから開始されます。全角文字の右半分からカラムが始まる場合は，その文字の左半分は未定義文字になります。

> ### flags

> OpenVMS 用法 | mask_longword
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 文字書き込み前の動作を指定する省略可能なビット・マスク。 flags 引数は，フラグを格納した符号なしロングワードのアドレスです。この引数に対して指定できる値は次のとおりです。

> 0 | 行を消去しないことを指定します(省略時の設定値)。
> SMG$M_ERASE_LINE | 行全体を消去します。
> SMG$M_ERASE_TO_EOL | 行の残りの部分を消去します。

> ### rendition-string

> OpenVMS 用法 | char_string
> データ型 | character string
> アクセス | read only
> 受け渡し方 | by descriptor

> ビデオ属性を制御するビット・マスク文字列(省略可能)。 rendition-string 引数は，ビット・マスク文字列を示すディスクリプタのアドレスです。仮想ディスプレイ上のテキスト文字列のカラムに対応する属性を指定することができます。この rendition-string 引数で指定できる属性は以下のとおりです。

> 全角文字の左半分と右半分に違う属性が指定された場合は，全角文字の左半分に指定された属性がその全角文字に適用されます。

> SMG$M_BLINK | 点滅文字を指示します。
> SMG$M_BOLD | 通常より明るい輝度の文字を指定します。
> SMG$M_REVERSE | 反転表示文字を指示します。つまり，仮想ディスプレイの現在の属性の反対の状態で文字を表示しています。
> SMG$M_UNDERLINE | 下線付き文字を指示します。
> SMG$M_INVISIBLE | 表示されない文字を指定します。つまり，文字は仮想ディスプレイ内に存在しますが，ペーストボードには表示されていません。

> ### rendition-complement

> OpenVMS 用法 | char_string
> データ型 | character string
> アクセス | read only
> 受け渡し方 | by descriptor

> ビデオ属性を制御するビット・マスク文字列(省略可能)。 rendition-complement 引数は省略可能であり，ロングワード・ビット・マスクのアドレスです。このロングワード・ビット・マスクの各属性を設定すると，仮想ディスプレイ内の対応するカラム属性は補足されます。全角文字の左半分と右半分に違う補足属性が指定された場合は，全角文字の左半分に指定された補足属性がその全角文字に適用されます。

> rendition-string 引数と rendition-complement 引数の両方に，同じビットを指定した場合は，最初に rendition-string 引数が評価され，その後 rendition-complement 引数が評価されます。これら 2 つの引数を組み合わせて使用することにより，ユーザは 1 回のプロシージャ呼び出しで仮想ディスプレイの各属性を制御することができます。各属性で次の変換が可能です。

> 設定 | 補足 | 動作
> --- | --- | ---
> 0 | 0 | 属性を省略時の状態に設定する。
> 1 | 0 | 属性をオンに設定する。
> 0 | 1 | 属性を省略時の逆の状態に設定する。
> 1 | 1 | 属性をオフに設定する。

> ### character-set

> OpenVMS 用法 | longword_unsigned
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 挿入されるテキストの文字集合。 character-set 引数は，文字集合コードを格納した符号なしロングワードのアドレスです。この引数を省略した場合は，SMG$CREATE_VIRTUAL_DISPLAY ルーチンまたは SMG$CHANGE_VIRTUAL_DISPLAY ルーチンで設定された値が使用されます。

> 値 | 文字集合 (コードセット)
> --- | ---
> SMG$C_ASCII | ASCII文字集合
> SMG$C_SPEC_GRAPHICS | DEC特殊文字集合
> SMG$C_SUPPLEMENTAL | 補助文字集合 1
> SMG$C_KANJI | DEC漢字文字集合
> SMG$C_JIS_KANA | JISカタカナ文字集合
> SMG$C_SDK | Super DEC 漢字コードセット

1DEC 補助文字集合または Latin-1 文字集合のいずれか。

## 説明

> SMG$PUT_CHARS_MULTIルーチンは，仮想ディスプレイに多様なレンディションでテキストを書き込むことを可能にします。 SMG$PUT_CHARS_MULTI ルーチンは，指定された位置にある既存のテキストを上書きします。既存のテキストを保存し，新しいテキストを書き込む場合には， SMG$INSERT_CHARSルーチンを使用してください。

> 省略時設定では，SMG$PUT_CHARS_MULTIルーチンは，新しいテキストが書かれている文字の位置のみを修正します。しかし，flags 引数にSMG$M_ERASE_LINEを指定することによって，新しいテキストが書かれる前に行を消去することができます。また，flags 引数にSMG$M_ERASE_TO_EOLを指定することによって新しいテキストが書かれた後に，残りの行を消去することができます。カーソルは，最後のテキストが書かれたすぐ後の位置に残ります。

> このルーチンは，1行のみに書き込むということに注意してください。つまり，仮想ディスプレイからあふれた分の文字は切り捨てられます。しかし，仮想ディスプレイに対してSMG$M_TRUNC_ICON属性が設定されている場合には， SMG$PUT_CHARS_MULTIルーチンが行の一部を切り捨てたことを示すアイコンを出力します。

> DEC漢字または Super DEC 漢字文字集合を使用する際に，全角文字の右半分から書き込み操作が始まる場合は，その文字の左半分は未定義文字になります。また，全角文字の左半分で書き込み操作が終了する場合は，その文字の右半分は未定義文字になります。さらに，行の一部が切り捨てられる際に，全角文字の右半分から切り捨てられる場合は，その文字の左半分は未定義文字になります。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> LIB$_INVSTRDES | 文字列ディスクリプタが誤っています。
> SMG$_INVARG | 引数が誤っています。
> SMG$_INVCOL | カラム番号の指定が誤っています。
> SMG$_INVROW | 行番号の指定が誤っています。
> SMG$_WILUSERMS | ペーストボードがビデオ・ターミナルでありません。
> SMG$_WRONUMARG | 引数の数が誤っています。

前へ | 次へ | 目次 | 索引