人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Win32APIでGUIの作成について質問です。

環境は以下のなります。
言語はC言語 及びC++
IDEはVisual Studio 2010 professional を検討
VC++で作成予定(.NETでは無くネイティブコードで作成したい為)

GUIの作成について分からない点があるので教えてください。
メインウィンドウにボタン等のコントロールを配置する場合や
幅の指定等をプログラムを書いていくのでは無く
C#のフォームデザイナの様にGUI上で操作していく事は出来ますでしょうか。
(必要ならばMFCやATL/WTLの使用も有りです)

ちなみに、上記はダイアログでは無くあくまでメインウィンドウについてです。
.NETは使用せず、ネイティブコードで生成したいのでC++/CLIの使用はしません。

もし可能なら参考になるWEBサイトや書籍等を教えて頂ければ幸いです。
以上、宜しくお願い致します。

●質問者: suica123
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● cx20
ベストアンサー

C#のフォームデザイナの様にGUI上で操作していく事は出来ますでしょうか。

VC++ の場合、フォームデザイナに相当するものは、リソースエディタ(ダイアログエディタ)になります。

ただし、VC++ のリソースエディタは、C# のフォームデザイナに比べたら、お世辞にも高機能とは言えません。例えば、コントロールの配置(レイアウト)までは、ダイアログエディタで行えますが、ウィンドウのサイズに合わせて、サイズ変更をするような設定(C# のAnchorプロパティのような設定)は行えません。(動作をプログラミングする必要があります。)


この制限は、ダイアログエディタの制限というより、リソーススクリプト(リソースの仕様)の制限によるものです。

■ リソーススクリプトについて - by AOK

http://homepage3.nifty.com/aokura/tips/rc.html

■ Resource-Definition Statements (Windows) - MSDN

http://msdn.microsoft.com/en-us/library/aa381043.aspx

ちなみに、MFC や WTL にフォーム用のクラスがありますが、結局は、ダイアログを子ウィンドウとして貼り付けたものになります。

また、Win32 ベースのアプリでも、同様に、ダイアログを子ウィンドウに貼り付けることで実現してます。


以下は、Win32 アプリケーションで、ダイアログを貼り付けるサンプルです。

■ 第255章 ダイアログを子ウィンドウとして張り付ける - 猫でもわかるプログラミング

http://www.kumei.ne.jp/c_lang/sdk3/sdk_255.htm

フォームの開発をダイアログベースで行った場合、GUI アプリケーションの開発のし易さとしては、MFC が一番かと思います。

(ただし、クラスライブラリやウィザード等の使い方を知っていることが前提です。)

■ MFC編 - フォームビューの基本

http://www.g-ishihara.com/mfc_sd_05.htm

■ MFC編 - DDXの基本1

http://www.g-ishihara.com/mfc_dx_01.htm

■ MFC編 - DDXの基本2

http://www.g-ishihara.com/mfc_dx_02.htm

デメリットは、

と言う点でしょうか。

以下は、各種ライブラリ毎のアプリケーションのサイズの参考例※です。

(※アプリケーションの種類は、SDIのアプリケーションで、Release ビルドしたものになります。)

使用ライブラリ使用クラスサイズ
MFC(スタティックリンク)CFormView3,288KB
MFC(共有DLL使用)CFormView115KB
WTLCDialogImpl125KB
Win32-82KB
VC#(Windows Form)Windows.Forms.Form10KB

使用する開発言語やクラスライブラリの決定は、アプリケーションの形態やサポートするプラットフォーム、開発者のスキルや納期と言った要因によって変わってきますので、一概にこれがベストというものはありません。

例えば、業務アプリ等、画面開発の効率が求められるケースであれば、VC#やVB.NET と言った選択肢もあるかと思います。


つまるところ、ネイティブアプリで、

と言ったところでしょうか。


以下は参考記事です。

■ C++ による Windows プログラミングの学習 (Windows)

http://msdn.microsoft.com/ja-jp/library/ff381399.aspx

■ 猫でもわかるプログラミング

http://homepage2.nifty.com/c_lang/

■ ATL/WTLを利用したVisual C++のWindowsプログラミング:CodeZine(コードジン)

http://codezine.jp/article/corner/45

■ ATL/WTL - ATL/WTL による Windows プログラミング

http://home.att.ne.jp/banana/akatsuki/doc/atlwtl2/index.html

■【 G.Ishihara流 】Visual C++ (MFC)超入門

http://www.g-ishihara.com/

■ Code Recipe - 連載! とことん VC++ | MSDN

http://msdn.microsoft.com/ja-jp/visualc/hh146885

ゼロから学ぶVisual C++―MFCの基本がわかる! (日経BPパソコンベストムック)

ゼロから学ぶVisual C++―MFCの基本がわかる! (日経BPパソコンベストムック)

C++ユーザーのためのWindowsプログラミングの基礎知識―Visual C++とMFCを利用したプログラミング入門 (Ascii books)

C++ユーザーのためのWindowsプログラミングの基礎知識―Visual C++とMFCを利用したプログラミング入門 (Ascii books)

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ