右クリックでボタンを設置する – プログラミング – Home

右クリックでボタンを設置する
 
通知
すべてクリア

[解決済] 右クリックでボタンを設置する


オレトオマエト…
 オレトオマエト…
(@オレトオマエト…)
ゲスト
結合: 18年前
投稿: 3
Topic starter  

質問があります。
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);

という具合です。


引用未解決
トピックタグ
keichan
 keichan
(@keichan)
ゲスト
結合: 18年前
投稿: 28
 

CButton が1個しか用意されてないから?
m_buton をどこで定義しているかわかりませんので、ズバリは言えませんが・・・
ボタンを動的確保するようにすればどうですか?


返信引用
keichan
 keichan
(@keichan)
ゲスト
結合: 18年前
投稿: 28
 

>m_buton をどこで定義しているかわかりませんので、
誤字orz
m_button をどこで定義しているかわかりませんので、


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

エラーになるとは?ASSERTIONでしょうか?

もしm_の示すとおりm_buttonがメンバ変数であるのであれば、
Createメソッドによって、2個目のボタンを作ろうとすると
すでに1個目で作成済みであるため、起こられるのではないでしょうか?

上限が決まっていないのであれば、CArrayやstd::vectorをつかって
メンバ変数を宣言しておいたほうがよいでしょう。
上限が決まっているのであればCButtonの配列にする。


返信引用
オレトオマエト…
 オレトオマエト…
(@オレトオマエト…)
ゲスト
結合: 18年前
投稿: 3
Topic starter  

返信が遅れてしまいました。すみません。
keichanさん,Blueさん返信ありがとうございます。
blueさんのご指摘のとおりCArrayでボタンを追加していく方法をとらせていただくこと
にしました。
CArray <CButton* ,CButton*> m_button;

CButton *button = new CButton;
としてこれをCArrayに保存していくことで実現できました。
おかげでこの配列とpointをセットで保存して再配置できるように使用と思います。。

keichanさんBlueさんありがとうございました。


返信引用
オレトオマエト…
 オレトオマエト…
(@オレトオマエト…)
ゲスト
結合: 18年前
投稿: 3
Topic starter  

解決チェック忘れました。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

# 老婆心ながら、うっかりやりがちなのでdeleteを忘れずに。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました