4. テキストの表示
テキストの表示と編集(ビュー)
ビュー(HVIEW)は、テキストの内容を「エディトボックス」「リストボックス」「メニュー」「1行入力」「アウトライン」などで表示します。
エディトボックスでは、テキストの内容がそのまま表示されます。
リストボックスでは、テキストの各段落がリスト表示されます。タブ区切りの項目は桁揃え表示されます。
1つのテキストを複数のビューで表示することもできます。ビューで編集すると、他のビューにも反映されます。
ビューを作成するにはvnew APIを用います。
HVIEW v = vnew(text,wp,WS_VISIBLE|TWS_LIST|WS_TABSTOP|WS_VSCROLL,WID1,0);
テキストの現在位置は、ビューのカーソル位置と連動して移動します。複数のビューがある場合は、一番手前のビューと連動します。
テキストとビューのカーソル位置を明示的にセットするには、ビューのメソッドを呼び出します。
v.getcur(); | // ビューのカーソル位置を、テキストの現在位置に移動。 |
v.setcur(); | // テキストの現在位置を、ビューのカーソル位置に移動。 |
ビューは、テキストと同様にプロパティの取得・設定して、ビューの情報の取得や、動作の変更が可能です。
記述の例:
v.clip = ID_ALL;
ビューの主なプロパティ:
place | (getset)配置 |
cxmin | (getset)配置の最小幅 |
cymin | (getset)配置の最小高さ |
cxal | (getset)配置の幅を指定 |
cyal | (getset)配置の高さを指定 |
rate | (getset)配置の幅または高さの割合を%で指定 |
read | (getset)閲覧モード |
jmptag | (getset)クリッカブルURLやE-Mailを有効にするか |
clbtn | (set)×ボタンを付けるか |
xbase | (set)横スクロール位置 |
idx | (set)MBXの表示用フラグ |
eable | (getset)1:編集可能フラグを++、0:編集可能フラグを-- |
clip | (getset)範囲選択モード |
clitop | (get)範囲選択の先頭アドレス |
cliend | (get)範囲選択の末尾アドレス |
clipms | (getset)マウスによる範囲選択 |
hist | (set)ヒストリをセット |
aform | (getset)自動整形 |
top | (getset)画面上端に表示する行 |
tagrv | (getset)HTMLのタグの縮小表示 |
charrv | (getset)HTMLの文字参照の文字表示 |
width | (get)実際に横一列に表示する文字数 |
w | (get)(HWND)ウィンドウハンドル |
text | (get)(HTEXT)テキストハンドル |
key | (get)(HTEXT)キー定義 |
filter | (get)絞り込み |
ビューの主なメソッド:
base | なるべくxbase=0,ybase=0になるようにフラッシュする |
selcp | カーソル位置が段落を移動したイベントを発生 |
flush | 設定内容を反映 |
getcur | テキストの現在位置に、ビューのカーソル位置を移動 |
setcur | ビューのカーソル位置に、テキストの現在位置を移動 |
filtbk | 絞り込み文字列のBackspace-Delをおこなう |
center | カーソル段落をビューの中央に表示されるように移動 |
term | 設定内容をリセットする |
jmpbdy | MIMEの本文へジャンプ |
複数のビューの使用
ダイアログボックスとアプリケーションウィンドウは、複数のビューで構成されています。
ビューのウィンドウIDには、WID1からWID90までを指定します。それぞれのビューに個別のIDを指定し、通常はWID1,WID2,WID3,...の順に使います。[Tab]キーのフォーカス移動は、WID1から順におこなわれます。
ウィンドウ内のビューは自動で配置され、ウィンドウのリサイズ時の再配置も自動でおこないます。
ビューの配置は、ウィンドウ内の先頭のビューから位置とサイズを割り振っておこないます。まず先頭のビューに必要なサイズを割り当てます。残りの領域から、次のビューに必要なサイズを割り当てます。
ビューのウィンドウ内の順序でビューの位置が決まるので、必要に応じてビューの順序をSetWindowPos WindowsAPIやwdo APIで変更しておきます。
位置はビューのplaceプロパティで決まります。
ID_TOP | 上側に配置 |
ID_BOTTOM | 下側に配置 |
ID_LEFT | 左側に配置 |
ID_RIGHT | 右側に配置 |
サイズはビューのcxmin,cymin,cxal,cyal,rateで決まります。
cxmin | 配置の最小幅(place=LEFT,RIGHT) |
cymin | 配置の最小高さ(place=TOP,BOTTOM) |
cxal | 配置の幅を指定(place=LEFT,RIGHT) |
cyal | 配置の高さを指定(place=TOP,BOTTOM) |
rate | 配置の幅(place=LEFT,RIGHT)または高さ(place=TOP,BOTTOM)の割合を%で指定 |
ビューの種類に応じて位置やサイズのデフォルト値が決まっています。
位置決定用の特別なビューもあります。詳しくはサンプルプログラムを参照してください。
TWS_LF | 改行(top) |
TWS_LFB | 改行(bottom) |
TWS_LFV | 改行(縦,left) |
TWS_LFVR | 改行(縦,right) |
TWS_LF,TWS_LFVにはLF_SPLIT2,LF_SPLIT0オプションを指定できます。LF_SPLIT2で2分割、LF_SPLIT0で分割終了します。詳しくはファイラーのサンプルプログラムを参照してください。
メニュー
Text-Cでは、メニューはテキストで実現されています。
テキストの各段落がメニューの各項目になります。
コマンド名 タブ 表示内容 改行
コマンド名には6文字までの任意の英数字(識別値)を指定できます。