web-dev-qa-db-ja.com

C ++を使用してWindowsアプリケーションのGUIを作成するにはどうすればよいですか?

小さなc ++/win32 apiプロジェクト(Visual Studio C++ 2008で動作)のGUIを開発する方法を決定しています。プロジェクトは、メインプロセスを開始するためにいくつかのコンポーネントのみを必要とするため、非常に軽量になります(1つのボタンと1つのテキストボックスがかなり...)。私の質問はこれです:

WindowsでGUIを開発した経験はありませんが、簡単に学ぶことができます。だから、私は何を使うべきですか?ビジュアルエディター(ドラッグアンドドロップコード生成g:デスクトップGUI設計の私の好み(Java/swing))。または、特定のライブラリを使用する必要がありますか?いずれにせよ、どのライブラリまたはビジュアルエディタを使用すべきですか?私は誰かがC#でGUIを書いてからC++コードを呼び出すと言っているのを聞いた...事は、これはとてもシンプルなGUIであり、すべてをC++で保持する方が簡単だと思うが、最良の提案は。

24
Zombies

非常にシンプルなGUIを使用していて、既にVisual Studioを使用している場合は、MFCを使用するだけで十分な場合があります。 Visual Studio MFCウィザードを使用して、ダイアログベースのアプリケーションを作成し、2つのコントロールをドロップして、すぐに使用できます。

MFCには日付があり、かなりの煩わしさがありますが、ボタンとテキストボックスについて話しているだけの場合は、確実に機能します。

Qtの経験がないので、2つを比較することはできません。

13
17 of 26

群を抜いて最高のC++ GUIライブラリは Qt であり、包括的で学習しやすく、非常に高速で、マルチプラットフォームです。

ああ、最近LGPLライセンスを取得したので、無料でダウンロードして商用プログラムに含めることができます

15
Javier

Microsoft Visual Studioを使用してネイティブのWin32アプリを作成することを強くお勧めします。

説明したものと同じくらいシンプルなGUIの場合は、単純に ダイアログボックス を作成し、それをメインアプリケーションウィンドウとして使用できます。 Visual StudioのWin32プロジェクトウィザードによって作成されたデフォルトのアプリケーションは実際にウィンドウをポップするため、 replace そのウィンドウをダイアログボックスに置き、WndProcを同様の(しかしよりシンプルな)に置き換えることができます DialogProc

質問は、ツールとコストの1つです。 Visual C++の Express Edition は、実際にダイアログテンプレートリソースを作成することを除いて、必要なすべてを実行します。このためには、 RCファイルを手動で または メモリを手動で でコーディングできます。関連SO question: リソースファイルを使用しないWindows APIダイアログ

または、他の人が推奨している 無料のリソースエディタ のいずれかを試すこともできます。

最後に、 Visual Studio 2008 Standard Edition はより高価なオプションですが、統合されたリソースエディターを提供します。

10
David Citron

新しいMFC C++アプリを作成するだけです。組み込みで非常に簡単で、世界中に数千の例があります...

さらに、Visual Studioで直接ダイアログボックスを設計し、変数名を付けると、コードの90%が自動的に生成されます。

3
LarryF

プレーンなWin32を使用することは強くお勧めします。すべての状況で正常に動作させるのはかなり難しく、かなり退屈で退屈な作業であり、Common Controlsライブラリはthat完全ではありません。また、ほとんどの作業はあなたのために行われました。

単純なWin32を実行するたびに、すべてのパラメーター、フラグ、関数、マクロを検索し、それらを適切に接続する方法を見つけ出す必要があるため、最も些細なタスクに少なくとも数時間を費やさなければなりません。私は一般的に、単純なドラッグアンドドロップで、私の頭を使わずに、私のタイプのソリューションを好み、2分以内に一緒にバタンと叩きます。

軽量のツールキットとして omgui をお勧めします。これにはきれいできれいなAPIがあります。ただし、ツールは付属していません。

ツールのサポートが必要な場合は、おそらくMFC(Visual Studioに組み込まれたリソースエディター)またはQtのいずれかを使用することになります。 wxWidgetsにツールがあるかどうかはわかりませんが、あると思います。

Edit:David Citronは、明らかにVisual StudioのリソースエディターがWin32互換のリソースファイルを生成することを述べているため、おそらく、物事をシンプルに保ちます。

3
Jasper Bekkers

QT(初心者向け)や役に立たないライブラリ(このような基本的なことは馬鹿げている)を避ける

VS Win32 APIウィザードを使用して、ボタンとテキストボックスを追加するだけで、すべて完了です!

25秒で!

2
ghkio

NokiaのQtが間違いなく道を行くことです。別のオプションはgtkですが、Qtの方がより適切にサポートされ、文書化されています。どちらにしても、どちらも無料です。また、どちらも広く使用されており、よく知られているため、質問への回答を簡単に見つけることができます。

2
Chris

このような単純なアプリケーションの場合、MFCでさえも行き過ぎです。別の依存関係を導入したくない場合は、単純なVanilla Win32で行ってください。 MFCを使用したことがない方が簡単です。

Charles Petzoldによる古典的な「Programming Windows」またはオンラインチュートリアル(例 http://www.winprog.org/tutorial/ )を確認すれば、準備は完了です。

2
devdimi

いくつかのテキストとボタンを持つ単純な「ウィンドウ」は単なるMessageBoxです。単一の関数呼び出しで作成できます。ライブラリはまったく必要ありません。

1
MSalters

Win32について学習したい場合、WTL http://wtl.sourceforge.net/ はMFCと同等の非常に軽量なものですが、使用するにはテンプレートが必要です。

シンプルなMFCが既にVSに統合されている場合は、大量の追加コードと既にネットにある既知のバグの回避策もあります。

また、Qtは本当に素晴らしいフレームワークであり、ツール、ダイアログエディター、テーマ、その他多くの優れたセットを備えています。また、アプリケーションはクロスプラットフォームになる準備ができていますが、慣れるまでに時間がかかります。

Gtk、wxWindowもあり、Linuxで既に使用している場合は問題ありません。

1
Ismael

私は小さなプロジェクトにwxWidgetsを使用しましたが、とても気に入りました。 Qtは別の良い選択ですが、商用で使用するには、おそらくライセンスを購入する必要があります。 C++で記述する場合は、Win32 APIを使用しないでください。Win32APIをオブジェクト指向にすることになります。これは簡単で時間もかかりません。また、Win32 APIにはマクロが多すぎるため、提供するものが複雑すぎると感じています。

0
jpastuszek