質問編集履歴

1

プログラムの追加

2020/01/31 09:46

投稿

wing
wing

スコア20

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,96 @@
5
5
  Visualstdioでダイヤログベースに表示させているエディットボックスにスクロールバーを使用して数字を入力して、表示したロボットアームを動かすということをやっているのですが。アームは関節が二つあり、スクロールバーを関節ごとに分けたいと思っている。水平スクロールバーを複数表示させたい。
6
6
 
7
7
 
8
+
9
+ ###プログラム
10
+
11
+ void CBRX01Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
12
+
13
+ {
14
+
15
+ int barPos1; // スクロールバーの位置
16
+
17
+
18
+
19
+ // スクロールバーの位置の取得
20
+
21
+ barPos1 = pScrollBar->GetScrollPos ();
22
+
23
+
24
+
25
+ // スクロールバーへの操作により処理を分ける
26
+
27
+ switch (nSBCode)
28
+
29
+ {
30
+
31
+ case SB_LINELEFT: // スクロールバーの上ボタンが押された
32
+
33
+ barPos1 --; // つまみの位置を 1 つ上へ移動
34
+
35
+ break;
36
+
37
+ case SB_LINERIGHT: // スクロールバーの下ボタンが押された
38
+
39
+ barPos1 ++; // つまみの位置を 1 つ下へ移動
40
+
41
+ break;
42
+
43
+ case SB_PAGELEFT: // スクロールバーの上ボタンからつまみ間の領域が押された
44
+
45
+ barPos1 -= 10; // つまみの位置を上に 10 移動
46
+
47
+ break;
48
+
49
+ case SB_PAGERIGHT: // スクロールバーの下ボタンからつまみ間の領域が押された
50
+
51
+ barPos1 += 10; // つまみの位置を下に 10 移動
52
+
53
+ break; case SB_THUMBPOSITION: // つまみをドラッグして移動した
54
+
55
+ barPos1 = nPos;
56
+
57
+ break;
58
+
59
+ default:
60
+
61
+ break;
62
+
63
+ }
64
+
65
+
66
+
67
+ // つまみ位置が範囲外になった場合
68
+
69
+ if (barPos1 < -82)
70
+
71
+ barPos1 = -82;
72
+
73
+ if (barPos1 > 82)
74
+
75
+ barPos1 = 82;
76
+
77
+
78
+
79
+ // スクロールバーのつまみ位置を設定
80
+
81
+ pScrollBar->SetScrollPos (barPos1);
82
+
83
+
84
+
85
+ // メンバ変数 m_vsbVal のスクロールバーの現在の位置を検出して代入
86
+
87
+ m_moveDist1 = -m_vsbVal1.GetScrollPos();
88
+
89
+
90
+
91
+ // ダイアログボックスに変数(m_addVal2)からデータを転送
92
+
93
+ UpdateData (FALSE);
94
+
95
+
96
+
97
+ }
8
98
 
9
99
  ### 発生している問題・エラーメッセージ
10
100