◀ANSI版開発トップへ
  • 1533 Ctrl + Home、Shift + ↓
    • 1558 Re:Ctrl + Home、Shift + ↓
      • 1566 Re2:Ctrl + Home、Shift + ↓
        • 1595 Re3:Ctrl + Home、Shift + ↓
          • 1596 Re4:Ctrl + Home、Shift + ↓
            • 1600 Re5:Ctrl + Home、Shift + ↓
              • 1603 Re6:Ctrl + Home、Shift + ↓
  • [1533] Ctrl + Home、Shift + ↓ やざき 2002年02月09日 23:55

    Ctrl + Homeを実行すると行頭にカーソルが移動し、
    続けてShift + ↓を実行すると、一行だけ丸ごと範囲選択だと思うのですが、
    実際には、2行目も少し選択されるようです。

    2行目は、Ctrl + Homeを実行する前のカーソル位置まで選択されるみたいです。
    • [1558] Re:Ctrl + Home、Shift + ↓ hor 2002年02月11日 22:30

      ▼ やざきさん
      > Ctrl + Homeを実行すると行頭にカーソルが移動し、
      > 続けてShift + ↓を実行すると、一行だけ丸ごと範囲選択だと思うのですが、
      > 実際には、2行目も少し選択されるようです。
      >
      > 2行目は、Ctrl + Homeを実行する前のカーソル位置まで選択されるみたいです。

      範囲選択中にファイルの先頭,末尾へ移動する場合はこの動作がいいと思います。
      特に矩形選択時は直前のカーソル位置が↑↓キーで復元できないとつらい・・・

      でも選択中じゃないときは直前のカーソル位置を復元しなくても良いような気もしますので、
      CEditView::Command_GOFILETOP と CEditView::Command_GOFILEEND の
      return 直前に if( !IsTextSelected() ) m_nCaretPosX_Prev = 0;
      ってゆうのをいれてみてはいかがでしょうか?
      • [1566] Re2:Ctrl + Home、Shift + ↓ やざき 2002年02月13日 10:14

        > でも選択中じゃないときは直前のカーソル位置を復元しなくても良いような気もしますので、
        > CEditView::Command_GOFILETOP と CEditView::Command_GOFILEEND の
        > return 直前に if( !IsTextSelected() ) m_nCaretPosX_Prev = 0;
        > ってゆうのをいれてみてはいかがでしょうか?

        いれてみまーす。ありがとう~。
        • [1595] Re3:Ctrl + Home、Shift + ↓ hor 2002年02月14日 18:09

          ▼ やざきさん
          > > でも選択中じゃないときは直前のカーソル位置を復元しなくても良いような気もしますので、
          > > CEditView::Command_GOFILETOP と CEditView::Command_GOFILEEND の
          > > return 直前に if( !IsTextSelected() ) m_nCaretPosX_Prev = 0;
          > > ってゆうのをいれてみてはいかがでしょうか?
          >
          > いれてみまーす。ありがとう~。

          CEditView::Command_GOFILEEND は

          if( !IsTextSelected() ) m_nCaretPosX_Prev = m_nCaretPosX;

          にした方が良さそう・・・
          • [1596] Re4:Ctrl + Home、Shift + ↓ やざき 2002年02月14日 19:21

            ▼ horさん

            これじゃだめ??
            Command_GOFILETOP

            /* 先頭へカーソルを移動 */
            // Sep. 8, 2000 genta
            AddCurrentLineToHistory();
            MoveCursor( 0, 0, TRUE );
            + m_nCaretPosX_Prev = m_nCaretPosX;
            + m_nCaretPosX = 0;

            Command_GOFILEEND

            Command_GOLINEEND( bSelect, TRUE ); // 2001.12.21 hor Add
            MoveCursor( m_nCaretPosX, m_nCaretPosY, TRUE ); // 2001.12.21 hor Add
            + m_nCaretPosX_Prev = m_nCaretPosX;

            カーソル関係はさっぱり理解してないけれど、私が意図しているのは
            これで動く動作なのです。いかがでございましょう?
            • [1600] Re5:Ctrl + Home、Shift + ↓ hor 2002年02月14日 22:03

              ▼ やざきさん
              > ▼ horさん
              >
              > これじゃだめ??
              > Command_GOFILETOP
              >
              > /* 先頭へカーソルを移動 */
              > // Sep. 8, 2000 genta
              > AddCurrentLineToHistory();
              > MoveCursor( 0, 0, TRUE );
              > + m_nCaretPosX_Prev = m_nCaretPosX;
              >
              > Command_GOFILEEND
              >
              > Command_GOLINEEND( bSelect, TRUE ); // 2001.12.21 hor Add
              > MoveCursor( m_nCaretPosX, m_nCaretPosY, TRUE ); // 2001.12.21 hor Add
              > + m_nCaretPosX_Prev = m_nCaretPosX;
              >
              > カーソル関係はさっぱり理解してないけれど、私が意図しているのは
              > これで動く動作なのです。いかがでございましょう?

              大きなファイルの矩形編集がつらくなってしまいそうな気がします。
              下記のどちらかでいきませんか?

              ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

              Command_GOFILETOP
              if( !IsTextSelected() ) m_nCaretPosX_Prev = 0;
              return;
              Command_GOFILEEND
              if( !IsTextSelected() ) m_nCaretPosX_Prev = m_nCaretPosX;
              return;

              ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

              Command_GOFILETOP
              if( !(IsTextSelected() && m_bBeginBoxSelect) ) m_nCaretPosX_Prev = 0;
              return;
              Command_GOFILEEND
              if( !(IsTextSelected() && m_bBeginBoxSelect) ) m_nCaretPosX_Prev = m_nCaretPosX;
              return;
              • [1603] Re6:Ctrl + Home、Shift + ↓ やざき 2002年02月15日 13:31

                じゃぁこういうのはどうかな?

                Command_GOFILETOP

                /* 先頭へカーソルを移動 */
                // Sep. 8, 2000 genta
                AddCurrentLineToHistory();
                + MoveCursor( m_nCaretPosX, 0, TRUE );
                +//m_nCaretPosX_Prev = m_nCaretPosX;

                カーソルのX座標はそのままに、1行目に移動。
                そうすれば、選択範囲と、カーソルの位置が食い違わなくて済む。
                違和感があったのは、選択範囲と、実際のカーソル位置(X座標)が食い違っていたからです。

                カーソルをホントにファイルの先頭に移動したいときは、
                CTRL+HOME→HOME
                と2回押さなきゃいけなくなるけど。

                GOFILEENDのほうも同様