質問があります。
CViewの上で右クリックを押したところにボタンを設置しようとしたのですが、1個目の
ボタンは設置できたのですが2個目を設置しようとするとエラーになってしまいます。
原因がわかる方いらっしゃいましたらご教授ください
開発環境はVC++.NET 2003
MFC MDI
CButton m_button;
hIcon=(HICON)LoadIcon(AfxGetInstanceHandle(),(char *)IDI_ICON1);
m_button1.Create(_Tgo,WS_CHILD|WS_VISIBLE|BS_ICON,
CRect(point.x,point.y,point.x+32,point.y+32),this,10000);
m_button.SetIcon(hIcon);
という具合です。
CButton が1個しか用意されてないから?
m_buton をどこで定義しているかわかりませんので、ズバリは言えませんが・・・
ボタンを動的確保するようにすればどうですか?
>m_buton をどこで定義しているかわかりませんので、
誤字orz
m_button をどこで定義しているかわかりませんので、
エラーになるとは?ASSERTIONでしょうか?
もしm_の示すとおりm_buttonがメンバ変数であるのであれば、
Createメソッドによって、2個目のボタンを作ろうとすると
すでに1個目で作成済みであるため、起こられるのではないでしょうか?
上限が決まっていないのであれば、CArrayやstd::vectorをつかって
メンバ変数を宣言しておいたほうがよいでしょう。
上限が決まっているのであればCButtonの配列にする。
返信が遅れてしまいました。すみません。
keichanさん,Blueさん返信ありがとうございます。
blueさんのご指摘のとおりCArrayでボタンを追加していく方法をとらせていただくこと
にしました。
CArray <CButton* ,CButton*> m_button;
CButton *button = new CButton;
としてこれをCArrayに保存していくことで実現できました。
おかげでこの配列とpointをセットで保存して再配置できるように使用と思います。。
keichanさんBlueさんありがとうございました。
解決チェック忘れました。
# 老婆心ながら、うっかりやりがちなのでdeleteを忘れずに。