なるほど、
volumeでセットしているけれど、midi_setで初期化してしまっているので
結局設定値が飛んじゃって元に戻っていると。
それが正解のような気がしますね。
こんにちわ、たくさんのアドバイスありがとうございます。
結果てきにスライダーボリュームはうまくいきませんでしたので、下記のホームページ
をつくり ダウンロードして検証してもらえないでしょうか?もし改善できれば、メー
ルを送ってもらえると大変うれしいです。宜しくおねがいします。
http://www.geocities.jp/e_4720045/
e_4720045@ybb.ne.jp
#やれやれ…
最後の2つ、wood さんと PATIO さんの書き込みをよーく読んでから、それに対しても
う一度返信してください。
こういう掲示板は、質問者と回答者のやり取りだけではなく、後で同じ問題に遭遇した
人が見ることでも役立ちます。
この一連の書き込みは、あなたのためだけにあるのではありません。
したがって…
誰 も あ な た に は メ ー ル を 出 し ま せ ん 。
すみませんでした。 変な欲が出てしまいました。これから気おつけます。
ソース見ました。
>それが正解のような気がしますね。
それ以前でした。
# 間違ってはいなかった
> void volume(int x);
なぜ、直していないのでしょう?
単に volume(x) だとコンパイラに怒られるから?
もしそうなら、プロトタイプが無いからです。
void pan(int nPan);
void volume(int nVol);
んで、wood さんの指摘も考慮すると
CVcdoremiDlg::OnInitDialog() はこんな感じになります。
// m_sldr.Set~
m_sldr.SetPos(127);
if(midi_set()==0) {
EndDialog(IDCANCEL);
}
volume(m_sldr.GetPos());
以下、蛇足です。
ID IDC_SLIDER1 メンバ変数名 m_sldr → ボリューム用のスライダ
ID IDC_SLIDER2 メンバ変数名 m_sldr1 → パン用のスライダ
自分で↑わかりやすいですか? IDC_SLIDER2 と sldr1 の組み合わせはかなり
フェイクが入っていますね。
あと、int x, y; もやめて欲しいです。
何かの座標かと思ってしまいます。
# int nVol, nPan; // こんなネーミングならすぐ分かる
# // 他にも言いたいことあるけど…
今回は大サービスでダウンロードしてまで見ましたが、
今後、そんなことはあり得ないと思ってください。
けじゅ さんのお抱えデバッガではありませんから。
あと、プログラミングそのものをもう少し勉強された方がいいと思いますよ。
質問者(けじゅ さん)も大変だし、回答者はもっと大変です。
がんばって下さいね。
RISKさんありがとうございました。できました。また シャノンさん woodさん PATIO
さん たくさんの助言ありがとうございました。
私は、これからC++の勉強をきちんとやっていきます。またよろしくお願いします。