【漢直】T-Code/TUT-Codeスレ Lesson2【連習】at UNIX
【漢直】T-Code/TUT-Codeスレ Lesson2【連習】 - 暇つぶし2ch911:871
04/03/20 20:16
>>906
わざわざチェックして頂いて有難うございます。


912:871
04/03/20 20:38
>>910
じゃあ、漢直winのをパクっちゃいましょう。

//この辺の数字をいじる。

#define CHAR_SIZE (12) // 文字の大きさ
#define LARGE_CHAR_SIZE (16) // 大きい文字の大きさ
#define BLOCK_SIZE (18) // 仮想鍵盤のキーの大きさ
#define MARGIN_SIZE (4) // 仮想鍵盤の天地左右の余白
#define WIDTH (MARGIN_SIZE * 2 + BLOCK_SIZE * 11 + 1) // 仮想鍵盤の横幅
#define HEIGHT (MARGIN_SIZE * 2 + BLOCK_SIZE * 5 + 1) // 仮想鍵盤の縦幅



//これをWM_PAINTを処理している所にいれる。

// 外枠の大きさを取得
RECT winRect;
GetWindowRect(hwnd, &winRect);
// 中身の大きさを取得
RECT clientRect;
GetClientRect(hwnd, &clientRect);
// 外枠と中身の差を取得
int dX = (winRect.right - winRect.left)
- (clientRect.right - clientRect.left);
int dY = (winRect.bottom - winRect.top)
- (clientRect.bottom - clientRect.top);
int sX = ptCaret.x - (winRect.right - winRect.left) / 2;
int sY = ptCaret.y + (winRect.bottom - winRect.top) / 5;
MoveWindow(hwnd, sX, sY, WIDTH + dX, HEIGHT + dY, TRUE);



913:871
04/03/20 20:43
#コピベする範囲を間違えてしまった。(^^;
POINT ptCaret;
if (tc->OPT_followCaret
&& GetCaretPos(&ptCaret)
&& (ptCaret.x || ptCaret.y)
&& ClientToScreen(activeWin, &ptCaret)) {
// 外枠の大きさを取得
RECT winRect;
GetWindowRect(hwnd, &winRect);
// 中身の大きさを取得
RECT clientRect;
GetClientRect(hwnd, &clientRect);
// 外枠と中身の差を取得
int dX = (winRect.right - winRect.left)
- (clientRect.right - clientRect.left);
int dY = (winRect.bottom - winRect.top)
- (clientRect.bottom - clientRect.top);
int sX = ptCaret.x - (winRect.right - winRect.left) / 2;
int sY = ptCaret.y + (winRect.bottom - winRect.top) / 5;
MoveWindow(hwnd, sX, sY, WIDTH + dX, HEIGHT + dY, TRUE);
}


914:871
04/03/20 20:47
#これも必要そう。
// 入力フォーカスを持つウィンドウを取得
HWND targetWin = GetForegroundWindow();
DWORD targetThread = GetWindowThreadProcessId(targetWin, NULL);
DWORD selfThread = GetCurrentThreadId();
AttachThreadInput(selfThread, targetThread, TRUE);
HWND activeWin = GetFocus();


915:871
04/03/20 20:59
#だんだん解らなくなってきたが、これもWindow移動後に必要そう。

// スレッドを切り離す
AttachThreadInput(selfThread, targetThread, FALSE);

#漢直winでは文字を出力した後でMoveWindowしてますね。


916:の
04/03/20 21:03
>912
あれ?漢直winのどのコード?検索しても見付からないけど……

917:871
04/03/20 21:20
これはkw127cの中にあるコードです。
T is for T-Codeというサイトからdownloadできます。


918:871
04/03/20 21:22
URLリンク(www.sato.kuis.kyoto-u.ac.jp)

919:883
04/03/20 21:35
>>908
さっそく SaikoroPencil20040320 使わせていただきました。
ぐはぁ、つ、ついに、MS-IME2002 に漢字交じりの文字列が渡せるようです。
これから、設定ファイルを作りなおして、色々試してみようと思います。

ただ、今回は 「MSVCR71.dllが見つからなかったため、・・」と
起動時にエラーが出まして、MSVCR71.dll を拾ってきて
system32 フォルダに入れたら動作しました。

>>909
ひらがなだけの文節を Enter で一々確定するのはストレスになりますね。
漢直使いにとっては無変換直接入力が標準で、変換は補助機能だから。

そこで >>872 に書いた事は、何をやったかと言うと、
かな文字のみ変換に渡して、
<KeyEvent code="0x46" iskeyup="false"><inputIme input="あ"/></KeyEvent>
句読点や漢字が入力された時に
<KeyEvent code="0x44" iskeyup="false"><inputIme input="、"/><sendImeWord index="asis" /></KeyEvent>
<KeyEvent code="0x34" iskeyup="false"><inputIme input="漢"/><sendImeWord index="asis" /></KeyEvent>
として、それまで入力していたかな文字をそのまま変換無しで
確定するようにしたのでした。これはこれで結構面白い動作でした。

920:871
04/03/20 22:02
>>919
やってみました。
といっても私はまだ漢字コードを定義していないのですが、
句読点を入力したとたんに、
かなだけの文節がどっと出力されるのはおもしろいですね。


921:の
04/03/20 22:13
>919
おおっと!!
xerces がDLLを要求する設定になっていました。
修正したのをUpしました。
URLリンク(www.fiercewinds.net)
ファイル自体はsourceforgeに置いてます。


922:871
04/03/20 22:23
>>919
なるほどasisというのが無変換だったんですね。
asisをMに割当てたらEnterを押す必要が無くなったので楽になりました。


923:の
04/03/21 00:46
>917
kw127は独自パッチみたいですな。>918のサイトは接続できず……


924:名無しさん@お腹いっぱい。
04/03/21 01:15
「の」氏と「のっ」氏は違うのですか?

925:の
04/03/21 02:03
>924
別人です。「野分」の「の」ですな。


926:のっ=883
04/03/21 02:09
あはははは、「の」氏と「のっ」は違います。
「の」氏は、SaikoroPencil 作者でおはしまする神。

「のっ」の方は、T-Code 漢字ストロークの記憶に四苦八苦しているヘタレです。
最初はコテハン「のが~」だったんだけど、
「のっ」と打ち間違ってしまったため、そのまま使っていたのでした。

実は「883=のっ」だったりする。


927:871
04/03/21 09:04
>>923
接続出来ないのはサーバ・メンテとかが理由ではないかと思います。

>>926
話は変わりますが、「風」もwndファイルを作成することによって、
お好みのかな配列を使用する事が出来る様です。
ただ純然たる2ストローク・コードでは打鍵数が多すぎていかがなものかと思いますが、
SKY配列やAZIKならそれなりに快適な入力が出来そうです。

「風」の最新判には、かきつばた、ききょう、、、といった配列が追加されています。


928:871
04/03/21 09:32
最近私は、自宅で漢直winを使用する時は「変換機能」を一切使用しない様に、
wu,uwにカナとかなの切替え機能を割り当て、「交ぜ書き変換」を呼出せない様にしています。

phoenix@漢直winなら第二水準の漢字を出すのでなければ、変換機能は必要ないです。


929:883
04/03/21 20:31
SaikoroPencil と MS-IME2002 との組み合せを試してみたので、報告いたします。
今回はHana_WithGlobalIME.xmlを参考に T-Code 配列を作り、
全ての2ストローク文字を inputGlobalIme で IME-2002に渡してみました。

カタカナ文字がひらがなとして入力されてしまう以外は、上手く入力できています。
これは IME-2002の仕様でしょう。
交ぜ書き変換は特に辞書を用意しなくても、多くの場合正しく変換されるようです。

しかし、NotePadでは文字入力できましたが、MS Word と Excel では文字が入力されず
使用できませんでした。これは Word と Excel が IME を直接コントロールしているため
だと思います。因みに、OpenOffieでは正しく入力できます。

MS-IME で漢直ができるなんて・・・うーむ、一人で感慨を抱いております・・・

930:871
04/03/21 23:15
Word,Excelに入力できないのは痛いですね。
それでもこれで多少なりとも楽が出来る様になったのであれば、よろこばしいですね。




931:のっ
04/03/22 01:17
>>930
MS-IME で変換できても楽にならないのですが、漢直できる環境があれば
体験したくなってしまうのです。これはほとんど病(ry

>>927, >>928
私は漢直Winでは仮想鍵盤を表示しないようにしており、瞬時に入力できない字は
すぐに変換してしまいます。仮想鍵盤の中から文字を見つけ出そうとすると、
書こうとしていた考えが止まってしまう・・・

その昔 (また昔話です)、DOS上で演算星組の風は、各種の配列と組み合せて
使用できました。ローマ字打ちだけでなく、自作 TSR (もはや死語か?) なんかを使って、
親指シフトと新JISかなで風を使っていました。Dvorak+新JISかな+風、が一番好みだったな。

漢直連習に費した時間は無駄だったとは思っていないけれど、
親指シフト、新JIS、花、Dvorak、ATOK、松茸、風、TUT、T と入力方式/配列を
渡り歩いてきた事については、「人生の無駄だった~ぁぁ」、と叫びたい気持になる。
今まで使った入力方式の中では、やはり tc2 での T-Code 入力が一番好きですね。
皆さま、漢直修得を目ざして邁進しましょう。

# しかし、どの入力方式/配列もそれなりにマスターできたことは、自分でも不思議に思ふ。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch