//~gcsTextEdit() { // Dispose(false); //} protected override void WndProc(ref Message m) { if (imeComposition != null) { //imeComposition.ImeComposition(m, 0, 0); if (imeComposition.isImeComposition(m)) { imeComposition.ImeComposition(m); } else if (imeComposition.isStartcomposition(m)) { // メンバ変数の値を元に、実際にCaretを動かす処理 int x = 0; int y = 0;; GetOrigin(ref x, ref y); x += cur_.Cur.vx; y += cur_.Cur.vl * fnt().H(); // 行番号ゾーンにCaretがあっても困るので左に追いやる if (0 < x && x < left()) { x = -left(); } imeComposition.ImeStartcomposition(m, x, y); } } base.WndProc(ref m); }