none
クラスウィーザードについて質問です。 RRS feed

  • 質問

  •  

    ツールバーのボタンを変更しようとしてるんですが

    VC++6.0なら変更したツールバーのボタンに付けたIDでクラスウィーザードから

    関数の追加できるようですが、VC++2005では、どうしたらよいかわかりません。

    言葉たらずかもしれませんがどなたかわかる方教えていただきたいです。

    2008年1月28日 8:44

回答

すべての返信

  •  まさ1111 さんからの引用

    ツールバーのボタンを変更しようとしてるんですが

    VC++6.0なら変更したツールバーのボタンに付けたIDでクラスウィーザードから

    関数の追加できるようですが、VC++2005では、どうしたらよいかわかりません。

    ボタンの変更というのは分かりませんが、ボタンを押したときの処理を書きたいのですか?

    クラスウィザードは廃止されましたので、クラスビューを開いて、そこで出てくるクラスを選択し、プロパティウィンドウからハンドラを追加する形になります。

     

    次のサイトが参考になると思います。

    http://itpro.nikkeibp.co.jp/members/edu/ITBASIC/20030619/1/

    2008年1月28日 13:54
    モデレータ
  • 実は、http://tserve01.aid.design.kyushu-u.ac.jp/~fujiki/vc_lecture/c_6.htmのページを参考してるんですが

    ツールバーのボタンとIDを変更した後どうやったらプロパティウィンドウのイベントの欄にコマンドを追加させる

    ことが出来るのかがわからないです。

    初心者の質問でもうしわけないですが、詳しく教えていただけないでしょうか。

    お願いいたします。

    2008年1月29日 7:13
  • お手軽なのはメニューにも同じIDのものを追加することです。

    こうすれば、プロパティウィンドウから追加できるはずです。

    http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200308/03080033.txt

     

    手動でのやり方

    ※MainFrameかViewかは問わないはずですが、ここではCMainFrameに追加することを考えます。

    1.ツールバーのプロパティからリソースIDを調べる(例:ID_BUTTON_TEST)

    2.MainFrame.hファイルに次のような関数宣言を追加する。

     

    Code Snippet
    afx_msg void OnButtonTest();

     

     

    3.MainFrame.cppファイルの先頭にあるBEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)とEND_MESSAGE_MAP()の間に次のように追加する。(この例ではID_BUTTONTESTをOnButtonTest関数に割り当てている)

    Code Snippet
    ON_COMMAND(ID_BUTTONTEST, OnButtonTest)

     

     

    4.同じMainFrame.cppファイルのどこかにOnButtonTest関数を追加する(位置は問いませんが、最後のあたりかな)

    Code Snippet
    void CMainFrame::OnButtonTest()
    {
     AfxMessageBox(_T("Hello"));
    }

     

     

    5.ビルドして実行し、ボタンを押してみる。
    2008年1月29日 14:09
    モデレータ
  •  

    大変分かりやすい説明

    ありがとうございました。

     

    2008年1月31日 8:14