Tips エディタのテキストを揃える
エディタ部品の
テキストはふつう左揃えで表示されます。これを中央揃えにしたり右揃えにしたい場合は、APIを使います。
'***** サンプル *****
'定数設定
GWL_STYLE=-16
ES_LEFT=$0
ES_CENTER=$1
ES_RIGHT=$2
'部品作成
エディタAとは
エディタ。
エディタAの
テキストは「なでしこ」
ボタンBとは
ボタン。
ボタンBについて
テキストは「左」。
ポケットはES_LEFT
クリックした時は~書式変更
ボタンCとは
ボタン。
ボタンCについて
テキストは「中」。
ポケットはES_CENTER
クリックした時は~書式変更
ボタンDとは
ボタン。
ボタンDについて
テキストは「右」。
ポケットはES_RIGHT
クリックした時は~書式変更
●書式変更
HndAはエディタAの
ハンドル。 'エディタ部品のウィンドウハンドル取得
newStyle=
イベント部品→
ポケット。 'クリックしたボタンのポケットの値を取得
Styleとは整数。
Style=GetWindowLong(HndA,GWL_STYLE) '現在の書式を取得
Style=AND(Style,$FFFFFFFC)+newStyle '書式部分をクリア($FFFFFFFC)してから変更
SetWindowLong(HndA,GWL_STYLE,Style) '新たな書式を設定
textA=エディタA。エディタAは「」。エディタAはtextA。 '書き換えないと反映しない
'API宣言
●GetWindowLong(hWnd,nIndex) =DLL("user32.dll",
"LONG GetWindowLongA(
HWND hWnd, // ウィンドウハンドル
int nIndex // 取得するデータの指定
)")
●SetWindowLong(hWnd,nIndex,dwNewLong) =DLL("user32.dll",
"LONG SetWindowLongA(
HWND hWnd, // ウィンドウハンドル
int nIndex, // 変更するデータの指定
LONG dwNewLong // 新しい値
)")
'***** ここまで *****
文字位置を設定するには、
エディタ部品のGWL_STYLEに、ES_LEFT(左寄せ)、ES_CENTER(中央揃え)、ES_RIGHT(右寄せ)を設定します。
GetWindowLongで
エディタ部品の現在の状態を取得し、Styleに代入します。
GWL_STYLEの最後の2ビットを書き換えることにより、変更できるのですが、変更前の状態がわからないために、一度クリアしてから値(newStyle)を加えています。
SetWindowLongで変更したStyleをGWL_STYLEに設定します。
上記プログラムの「定数設定」部分と「API宣言」部分は、なでしこライブラリの「windows.nako」に定義されていますので、次のように取り込むことで、わざわざ定義しなくても済みます。
'***** サンプル *****
!「windows.nako」を取り込む。
'部品作成
エディタAとは
エディタ。
エディタAの
テキストは「なでしこ」
ボタンBとは
ボタン。
ボタンBについて
テキストは「左」。
ポケットはES_LEFT
クリックした時は~書式変更
ボタンCとは
ボタン。
ボタンCについて
テキストは「中」。
ポケットはES_CENTER
クリックした時は~書式変更
ボタンDとは
ボタン。
ボタンDについて
テキストは「右」。
ポケットはES_RIGHT
クリックした時は~書式変更
●書式変更
HndAはエディタAの
ハンドル。 'エディタ部品のウィンドウハンドル取得
newStyle=
イベント部品→
ポケット。 'クリックしたボタンのポケットの値を取得
Styleとは整数。
Style=GetWindowLong(HndA,GWL_STYLE) '現在の書式を取得
Style=AND(Style,$FFFFFFFC)+newStyle '書式部分をクリア($FFFFFFFC)してから変更
SetWindowLong(HndA,GWL_STYLE,Style) '新たな書式を設定
textA=エディタA。エディタAは「」。エディタAはtextA。 '書き換えないと反映しない
'***** ここまで *****
最終更新:2008年06月26日 17:35