◀ANSI版開発トップへ
  • 3196 プレビュー時の移動キーとハンドドラッグ
    • 3220 RE: プレビュー時の移動キーとハンドドラッグ
  • [3196] プレビュー時の移動キーとハンドドラッグ サイコジプシー 2003年09月29日 11:11

    // CEditWnd::DispatchEvent_PPB
    ...
    case WM_KEYDOWN:
    switch(wParam){
    case VK_UP:
    OnVScroll(MAKEWPARAM(SB_LINEUP, 0), m_hwndVScrollBar);
    break;
    case VK_DOWN: ... break;
    case VK_PAGEUP:
    // トップを表示していれば前のページへ。さもなければ上にずらす。
    GetScrollInfo(m_hwndVScr~, SB_CTL|SB_VERT, &m_si);
    if(m_si.nPos == 0 || m_si.nPos == m_si.nMin)
    OnVScroll(MAKEWPARAM(SB_PAGEUP, 0), m_hwndVSc~);
    else OnPreviewGoPage(m_nCurPageNum-1); ... break;
    case VK_PAGEDOWN: ...

    SCROLLINFOをメンバーに加えれば(m_si)、{G,S}etScroll{Pos,Range}を{G,S}etScrollInfoに吸収合併できるし、コードの節約になる。

    できたら、WM_LBUTTON{DOWN,UP},WM_MOUSEMOVEをハンドルして、ハンドドラッグを実装してください。プレビュー時に手の形のカーソルにし、ドラッグしたらスクロールするように。制限時間30分。
    • [3220] RE: プレビュー時の移動キーとハンドドラッグ げんた 2003年10月09日 00:05

      >ハンドドラッグを実装してください。プレビュー時に手の形のカーソルにし、ドラッグしたらスクロールするように。
      ん?既にできるんじゃない?
      カーソルの形は変わらないようだけど.