スピンボタンの連動コントロールを設定するには?

[戻る]
Miya−N [E-Mail] [HomePage] 2001/08/26(日) 20:12:41
初めまして。Miya−Nともうします。

今、スピンボタンを使用したプログラムを作っているのですが、
スピンボタンの連動コントロールの設定がうまくいきません。

まず、市販の参考書に書いてあった方法:
プロパティで「自動関連づけ」チェックをオンにした後
タブオーダーを連続した値に設定する
を試してみたのですが、きちんとコンパイルは出来るのですが
実行して、そのウィンドウを開こうとするとエラーが出ます。
英文のエラーで、wincoreというファイルにエラーがあるらしいのですが、
これはプログラムの方で直せと言うことだと思います。

そこで、コードから「SetBuddy()」を使おうと思って
下のようなコードを入力してみたところ、
これもコンパイルは正常に出来るのですが、
ウィンドウを開こうとするとエラーが出てしまいます。
このエラーは、前とは違い、「ページ違反」のエラーです。

これがその部分のコードです。
m_spinがスピンボタンのメンバ変数、
m_numberが連動コントロールにしたいエディットボックスのメンバ変数です。

CWnd* NN;
NN->Attach(m_number);
m_spin.SetBuddy(NN);

どこがいけないのでしょうか。
もしよろしければ、御指南いただければうれしいです。
よろしくお願いいたします。
それでは失礼します。

Bun 2001/08/27(月) 08:19:39
NNにインスタンス(実体)が指定されていないのでは?

はずしていたらごめんなさい。

sugar 2001/08/27(月) 12:20:15
> NN->Attach(m_number);
> m_spin.SetBuddy(NN);
>
m_numberがCEdit型オブジェクトであるなら、

m_spin.SetBuddy(&m_number);

だと思います。
CEditはCWndを継承して作られているクラスなので、
SetBuddyの引数に指定することができます。

Miya−N [E-Mail] [HomePage] 2001/08/27(月) 22:25:06
[[解決]]
sugarさんのおっしゃったとおりでした。
無事処理を完成することが出来ました。

Bunさん、sugarさん、
回答どうもありがとうございました。

古いスレッドには追加発言できません。