• ベストアンサー

Viewウインドウに直接ボタンを貼り付けるには

VC++6.0 APPWizard(exe) SDI で作成したViewウインドウにボタンを貼り付けたいのですが、どうすればよいか教えてください。 普通にダイアログにボタンを貼り付ける場合のように簡単ではないのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • gonbee774
  • ベストアンサー率38% (198/511)
回答No.2

ANo.1です。 以前APIで組まれたアプリをMFCを使って書き換えたことがあり、そのときいくつかの書籍をみて、試行錯誤しながらつくりました。 MFCからwindowsプログラムをはじめ、後からAPIを学び直しました。 なので私の方法がどれほどまっとうな方法か解りませんが… ボタンウインドウをAPIでつくるのも可能ですが、CBUTTONクラスを使えば良いではないかと思います。 viewクラスのメンバとしてボタンクラスのインスタンスをもち、viewクラスのOnCreate()ハンドラ(追加します)でボタンをcreateすればよいのだと思います。 また追加したボタンに関するハンドラ、メッセージマップもウイザードではなく、手で(コードエディタで)入力しました。 あと、ボタンをShowWindow(TRUE)する必要があります。 いまprojectを作ってみて気が付きました。 とりあえずviewのOnCreate()の中でやってみました またAPIを使う場合ですが、ウインドウハンドルHWNDはそれぞれのウインドウ(今回はview)がメンバ変数m_hWndとして持っています。 インスタンスハンドルHINSTANCEはアプリケーションクラスがメンバ変数m_hInstanceとして持っています。 それと >とすれば、HWND, HINSTANCEとかは、VC++では何に対応するのですか? 書き間違えかも知れませんが、VC++ではなく、MFCですね。 VC++は言語、MFCはライブラリです。 #実は私も当初混同していました(汗)

abingo333
質問者

お礼

これは参考になります、ありがとうございました。 日数はかかると思いますが、練習がてら取り組んでみます。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • gonbee774
  • ベストアンサー率38% (198/511)
回答No.3

すいません。以下は私の勘違いです。 VC++とC++を取り違えました(大汗)。 >それと >>とすれば、HWND, HINSTANCEとかは、VC++では何に対応するのですか? >書き間違えかも知れませんが、VC++ではなく、MFCですね。 >VC++は言語、MFCはライブラリです。 >#実は私も当初混同していました(汗)

すると、全ての回答が全文表示されます。
  • gonbee774
  • ベストアンサー率38% (198/511)
回答No.1

ドラッグアンドドロップではできず、コードを書かなければなりません。

abingo333
質問者

補足

なにかこのあたりを記述した書籍、サイト等をご存知ないですか? ボタンウインドウを作ることからはじめないといけないのでしょうね。 ソースウインドウでCreateWindow(と入力すると、 HWND CreateWindow(......., .. HWND hWndParent, .. HINSTANCE hInstance, .. ) というWinAPI関数がでてきますが、これを使用すればよいのですか? とすれば、HWND, HINSTANCEとかは、VC++では何に対応するのですか? たとえば、GetParent( とたたくと、 CWnd* とガイドがでるので、HWNDはCWndと似たり寄ったりかなとは思いますが。

すると、全ての回答が全文表示されます。

関連するQ&A