スクロールバーを制限

制作:KrK (Knuth for Kludge)

情報・ご感想はこちら

KrK's Cracked Text > はしくれコード


環境

ソース


#include <windows.h>    // Win32API

//---------------------------------------------------------------------
// スクロールバーを制限
// 作成 20140112 KrK
// 引数(I/O) pScroll:スクロールバー構造体
//---------------------------------------------------------------------
VOID LimitScroll(SCROLLINFO* pScroll)
{
  // スクロールアップし過ぎは戻す
  if (pScroll->nPos < 0)
  {
    pScroll->nPos = 0;
  }

  // スクロールダウンし過ぎは戻す
  if (((unsigned int)pScroll->nMax - pScroll->nPage + 1)
      < (unsigned int)pScroll->nPos)
  {
    pScroll->nPos = pScroll->nMax - pScroll->nPage + 1;
  }
}

使い方


SCROLLINFO scrollV;     // 縦スクロールバー情報
SCROLLINFO scrollH;     // 横スクロールバー情報

// スクロールバー情報を取得
GetScrollInfo(hWnd, SB_VERT, &scrollV);
GetScrollInfo(hWnd, SB_HORZ, &scrollH);

// スクロールバーを移動
scrollV.nPos = ~;
scrollH.nPos = ~;

// 移動し過ぎは戻す
LimitScroll(&scrollV);
LimitScroll(&scrollH);

// 描写
SetScrollInfo(hWnd, SB_VERT, &scrollV, FALSE);
SetScrollInfo(hWnd, SB_HORZ, &scrollH, FALSE);
InvalidateRect(hWnd, NULL, FALSE);

使用条件


免責事項