下記コードを記入し、スピンボタンの増加をクリックすると
最初の一回目に触った時のみ値がマイナスされる現象がでます。
なぜでしょうか?
1)INIファイルから値を読み込みエデットボックスに表示する。
2)スピンボタンの増加をクリックすると、最初の一回目に触った時のみ値がマイナスされる
(エデットボックスの値が50だとすると49になる)
3)再度INIファイルから値を読み込みエデットボックスに表示する。
4)二回目からマイナスされない。
(エデットボックスの値が50だとすると51になる)
スピンボタンのOnDeltapos
UDACCEL stUD;
stUD.nSec = 1;
stUD.nInc = 1; // ここで変化量設定
CSpinButtonCtrl* m_Spin=(CSpinButtonCtrl*)GetDlgItem(IDC_SPIN1);
m_Spin->SetRange32(0,300); //レンジ
CString str;
((CEdit*)GetDlgItem(IDC_EDIT1))->GetWindowText(str);//エディットから文字列を
int a=atoi(str);//文字列を数字に変換
m_Spin->SetPos(a); //初期値
m_Spin->SetAccel(1,&stUD);//変化量
m_Spin->SetBuddy((CSpinButtonCtrl*)GetDlgItem(IDC_EDIT1));//エディットに関連付け
環境
Windwos XP,Microsoft Visual C++ 6.0
No.1ベストアンサー
- 回答日時:
提示されたコードは、初期化に相当するコードでしょうから、スピンボタンがクリックされるたびに呼び出されるOnDeltaposで処理するのは不適切ではないですか?
おそらく、原因は、最初にスピンボタンがクリックされた時には、SetRange32が呼び出されていないため、初期状態の動作である減算を行っていて、その処理の途中でSetRange32しただけでは、すでに開始されている減算の処理を変えることはできないということでしょう。
初期化処理は、ダイアログならOnInitDialog、ビューならOnInitialUpdateなどで行うべきでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PSQLExceptionが発生する
-
ダブルクォーテーションを含む...
-
【Excel VBA】繰り返し処理がで...
-
ResultSetの内部構造(Java)
-
ArrayListの要素数の上限
-
matchesを否定文として使う方法...
-
BCD形式で時刻を!
-
暗号化文字列を英数字のみにしたい
-
byteからshortへの変換について
-
long型に値を代入したい。
-
CASL(CASL2)でこんな問題が...
-
実行シェルからCOBOLへパラメー...
-
JSPでの計算結果表示
-
wsprintf関数の使い方について
-
StringBufferクラスについて
-
Stringクラスの変数の格納アド...
-
StringBuilderをStringに代入
-
DOSバッチで変数の値を変数名に...
-
javaというか文字列について少...
-
C言語の変数(LSB)の合わせ込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
ArrayListの要素数の上限
-
DateTimePickerに値を入れたい...
-
wsprintf関数の使い方について
-
Stringクラスの変数の格納アド...
-
BCD形式で時刻を!
-
javaのCSVデータ読込についてです
-
このプログラミング誰か教えて...
-
Evaluate()に文字列の形式の数...
-
JSPでHashMap・配列の変数の値...
-
このプログラミング誰か教えて...
-
特定の文字列を複数抜き出した...
-
matchesを否定文として使う方法...
-
DOSバッチで変数の値を変数名に...
-
Javaの問題なのですが、「3文字...
-
excel vba 時間計算と条件分岐...
-
実行シェルからCOBOLへパラメー...
-
日付や時刻の"01"を" 1"に変換...
-
VB6,論理演算子Orの使い方がわ...
-
char型での演算子
おすすめ情報