いくつかのLABELがある時に特定のLABELだけスクロールをさせたいのですが処理がわかりませ
ん。なおかつ、スクロールした場合にスクロールする前のLABELの値を保持し、新しくLABELを
上書きする処理をご存知の方いらっしゃいますか。
質問に質問。
表題は EDIT となってますが、文中は LABEL ですね。
対象となっている部品は、本当は何なんでしょう?
すいません。
LABELです。
回答ではありません 忠告です
あなたの質問に対して似たようなことを行った経験の方がご回答していただけること
を期待しますが
>スクロール
とは、たて・横 両方
>発言される前に「使用上の注意」を必ずお読み下さい。
まったく読んでいないでしょう
実行環境分かりませんよ
OS:Win 95・98 NT・2000・XP UNIX・LINUX・BSD
OSの仕様によって多少動き違うかも?
>LABEL
なんて表現のものはVCでなくともビルダー、フリーコンパイラなどいろいろな
コンパイラーで使用されています
VCラウンジなのでVCの質問とは思いますが、SDKとして教えてほしいのか
MFC使いたいのか明記したほうがよろしいのでは?
きちんと吟味した質問すれば、キチンとした回答得られますけど
このままですと結構ダラダラされて後で大荒れ・見放される結果が予想されます
なお、マルチポストしていないことも期待します
すいません。
もう一度質問させてもらいます。
実行環境OSはWin2000のVC++6.0です。
MFCでの質問です。
水平スクロールをリソース上に追加し、OnHScroll()を実行しているのですが
スクロールバーが動いてくれません。(動かしても元に戻ってしまう)
関数実行処理としては下記のように処理しています。
宜しくお願い致します。
不明な点があれば質問の方を宜しくお願い致します。
int pos = 0;
int min_pos = 0;
int max_pos = 0;
pos = m_ScrollBar1.GetScrollPos();
m_ScrollBar1.GetScrollRange(&min_pos, &max_pos);
case SB_LEFT:
{
pos = min_pos;
}
break;
case SB_RIGHT:
{
pos = max_pos;
}
case SB_THUMBPOSITION:
{
pos = nPos;
if(nPos < 50)
{
m_LABELState1.setText(Min);
m_LABELState2.setText(Ave);
m_LABELState3.setText(Max);
}
else
if(nPos >= 50)
{
m_LABELState1.setText(R);
m_LABELState2.setText(Cpk);
m_LABELState3.setText(");
}
}
break;
case SB_LINERIGHT:
case SB_PAGERIGHT:
{
m_LABELState1.setText(R);
m_LABELState2.setText(Cpk);
m_LABELState3.setText(");
}
break;
// 左矢印ボタンクリック
case SB_LINELEFT:
case SB_PAGELEFT:
{
m_LABELState1.setText(Min);
m_LABELState2.setText(Ave);
m_LABELState3.setText(Max);
}
break;
m_LABELState1~3の正体が不明です。
setText関数があるクラスがMFCでは無いみたいなのですが、ヘルプでは見れないものでしょう
か?それとも独自のクラスですか?
m_LABELState1~3はCLabel型のメンバ変数です。
スクロールされた場合にラベルを書き換えるという処理をしています。
すいません。MFCではないです。
はじめまして GOLGO さん
コードの最後に
m_ScrollBar1.SetScrollPos(pos);
がないからじゃないですか?
それと
>case SB_LINERIGHT:
> case SB_PAGERIGHT:
>case SB_LINELEFT:
> case SB_PAGELEFT:
のときに pos の計算がされていませんが。
初心者に丁寧におしえて頂きありがとうございます。