Пример #1
0
        //~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);
        }