文書番号: 403860
最終更新日: 1999/03/19
//ダイアログのクラス class CMyDialog : public CDialog { int myScrollPos: // スクロールバーのつまみの現在の位置 // 横スクロールバーが操作された時のメッセージ処理関数 afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); : } // 横スクロールバーが操作された時の処理 void CAboutDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // pScrollBar が NULL ならウィンドウやダイアログに付加されている // スクロールバーなのでここでは何もしない if( pScrollBar == NULL) { CDialog::OnHScroll(nSBCode, nPos, pScrollBar); return; } // スクロールバーが動かされた処理によって現在の位置を計算する // スクロールバーの値の範囲はデフォルトで 0 ~ 100 です。 switch( nSBCode ) { case SB_LEFT: // 左端にきた myScrollPos = 0; break; case SB_RIGHT: // 右端にきた myScrollPos = 100; break; case SB_PAGELEFT: // つまみの左の余白が押された myScrollPos -= 10; // わざと break していない case SB_LINELEFT: // 左矢印ボタンが押された myScrollPos = max(0, myScrollPos - 1); break; case SB_PAGERIGHT: myScrollPos += 10; case SB_LINERIGHT: myScrollPos = min(100, myScrollPos +1 ); break; case SB_THUMBPOSITION: case SB_THUMBTRACK: myScrollPos = (int)nPos; break; } // 自分で描画する pScrollBar -> SetScrollPos(myScrollPos); }
Keywords: KBHOWTO VC10 VC15 VC20 KB403860
Technology: kbAudDeveloper kbvc150 kbVC32bitSearch kbVCsearch