![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
<プログラム環境>
Windows XP
VC++6.0
MFC AppWizard(exe)
ダイアログベース
<症状>
ダイアログエディタでスピンボタンを配置し、ClassWizardでCSpinButtonCtrl型のメンバ変数を追加しました。
その後コンパイルするとエラー出ないのですが、実行出来ませんでした。
デバッグをすると、「ハンドルされていない例外は、試作.exeに
あります:0xC0000005: Access Violation。」
が表示されて、それ以上先には進めません。
メンバ変数を削除すると、症状は無くなります。
<質問>
メンバ変数を追加するだけで何故このような症状が出るのでしょうか?
スピンボタンでは
初期値40
レンジ:0~80
増加幅:10
減少幅:-10
で設定したいのですが、どのようにしたら良いのでしょか?
宜しければご指摘お願い致します。
No.2ベストアンサー
- 回答日時:
すみません.ちょっとコードが間違えてました
CSpinButtonCtrl* m_Spin = (CSpinButtonCtrl*)GetDlgItem(IDC_SPIN1);
でしたね.まえのコードでは"GetDlgIte"で,"m"が足りませんでした.
このコードで,ClassWizardを使って自動的にメンバ変数を作るところを直接入力して,スピンコントロールのメンバ変数を作っています.
このメンバ変数はポインタで定義されているので
m_Spin->SetPos()で初期値を,m_Spin->SetRange()で範囲を決定させます.たぶんm_Spin->までうったらVCなら候補がでると思いますよ.
>また、変数m_Spinの使い道が分からないのですが、
スピンボタンをクリックして、変化した値がm_Spinに格納されるので
しょうか?
スピンコントロールは単体で使うことはまずありません.基本的にはエディットボックスにくっつけて使うのがほとんどです.
ですのでスピンボックスのアップダウンボタンをクリックすることで,エディットボックス内の数字を上下させます.なので,スピンボタンをクリックして変化した値は,エディットボックスのメンバ変数に格納されますね.
スピンボタンのメンバ変数m_Spinの使い道としては
・くっついているエディットボックス内の数字の初期値の設定
・その数字の範囲の設定
・その数字の増分の設定
といったことをしてくれます.
fujtomo様、有難うございます。
以下のコーディングで、範囲、増分の設定ができました。
UDACCELudAccel;//構造体
udAccel.nSec = 0;//意味不明
udAccel.nInc = 10;//1クリックの増加数
CSpinButtonCtrl* m_Spin=(CSpinButtonCtrl*)GetDlgItem(IDC_SPIN1);
m_Spin->SetPos(40);
m_Spin->SetRange(0,100);
m_Spin->SetAccel(1,&udAccel);
また、以下のコーディングでエディットボックスの値を取得する
事もできました。
charpcScaleDown[3] = {3,0,0};
BYTEbScaleDown;//エディットボックスの値
CEdit* m_bScaleDown;
m_bScaleDown = (CEdit*)GetDlgItem(IDC_EDIT5);
m_bScaleDown->GetLine(0,pcScaleDown);
bScaleDown = atoi(pcScaleDown);
スピンボタンの使用を諦めかけていたので、出来て本当にうれしいです。
有難うございました。
No.1
- 回答日時:
こんにちは.自分もまだまだVCはじめたばっかりなのですが,前に同じ症状になったことがあったので回答させて頂きます.
まず,メンバ変数を追加したら「ハンドルされていない~」っていうのがデバック時にでる理由はよくまだわからないのですが,自分のときは
CSpinButtonCtrl* m_*** = (CSpinButtonCtrl*)GetDlgIte(IDC_***)
とメンバ変数をClassWizardを使わないで定義したらうまくコンパイルが通りました.
スピンボタンの設定ですが
初期値40はSetPos(40)
レンジ0~80はSetRange(0,40)
増加幅,減少幅の設定は
http://athomejp.com/goldfish/mfc/cobject/spinste …
をみてみたらいかがでしょうか?
この回答への補足
fujtomo様、有難うございます。
CSpinButtonCtrl* m_Spin = (CSpinButtonCtrl*)GetDlgIte(IDC_SPIN1)
を、OnInitDialog()の関数内にコーディングしました。
スピンボタンの設定で
SetPos()
SetRange()
を使ったのですが、どちらも「定義されていない識別子です。」
とエラーが出ました。
何かインクルードする必要があるのでしょうか?
また、変数m_Spinの使い道が分からないのですが、
スピンボタンをクリックして、変化した値がm_Spinに格納されるので
しょうか?
宜しければご指摘お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- Excel(エクセル) エクセルで指定したセルの増減ボタンを作りたい 2 2022/12/02 11:03
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- その他(Microsoft Office) Office(Windows版,Word/Excel/PowerPoint等)にログインできません 4 2022/07/24 15:18
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- その他(Microsoft Office) excel テーブル 4 2023/03/18 16:11
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 1 2022/06/18 21:20
- その他(ニュース・時事問題) コロナ第七波が来ても、まん延防止は行わない? ましてや緊急事態宣言は絶対に無い? 9 2022/04/02 09:22
- ノートパソコン タブレット(dynapadN72)を知人に譲る時、どうしたら・・・ 4 2023/06/23 15:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
旦那さんの精子がしょっぱいの...
-
夫の性癖に困っています。31歳...
-
高校生男です。ズボンのもっこ...
-
精子を飲んでみたいです 中2の...
-
イった(オナニー)後、必ず膀...
-
汚い写真ですいません。 少し前...
-
彼氏と性行為をする時、指一本...
-
包丁で刺された時ってどんな痛...
-
左手が、痺れる
-
これは白血病のアザでしょうか?
-
同じ症状で別の病院にかかったら?
-
勃起させない方法を教えてください
-
腕に赤い斑点が大量発生してま...
-
処女膜について
-
17歳でメラノーマになる確率が...
-
デパス0.5mgを一気に10錠飲んで...
-
病気の方へ書類を送付する際の...
-
今入院してるんですけど オナニ...
-
障害者って本当に職場に来たら...
-
白血病でしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
旦那さんの精子がしょっぱいの...
-
高校生男です。ズボンのもっこ...
-
白血病でしょうか?
-
夫の性癖に困っています。31歳...
-
精子を飲んでみたいです 中2の...
-
汚い写真ですいません。 少し前...
-
足の裏が痛痒いです
-
イった(オナニー)後、必ず膀...
-
これは白血病のアザでしょうか?
-
左手が、痺れる
-
彼氏と性行為をする時、指一本...
-
今入院してるんですけど オナニ...
-
教えて下さい!耳の後ろにしこり
-
同じ症状で別の病院にかかったら?
-
ばね指の治療法はありますか?
-
17歳でメラノーマになる確率が...
-
包丁で刺された時ってどんな痛...
-
口の中に突然大きな血豆ができ...
-
腕に赤い斑点が大量発生してま...
-
先ほど唇が腫れているのに気が...
おすすめ情報