質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

3799閲覧

vs2019、c++でmfcを使う方法

sigefuji

総合スコア125

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/06/04 10:11

編集2021/06/04 12:12

前提・実現したいこと

visual studio 2019 community 上でc++言語でボタンやイメージなどのコントロールやマウスを使う比較的簡単なグラフィック描画windowsプログラムを作ろうとしています。

発生している問題・エラーメッセージ

ヘルプのチュートリアルを参照して、MFCアプリを使えば良さそうに思いました。
チュートリアルによれば、言語はc#かbasicであれば、これらのコントロールを使う画面のデザイナを動かせることは分かりました。
しかし、C++で同じようなことをやる方法がわかりません。どうすればよいでしょうか。
もっとプリミティブなwin32APIを使えば、できそうに思えますが、これらコントロールを簡便に使うことはできそうにありません。
なお、vs2019を使い、コンソールプログラムや、dllを作ることはできています。
----修正投稿です。
質問を整理しました
1.vs2019でc++のデスクトップアプリを作ります。
やりたいことは、読み込みイメージやグラフを描画する。ボタンやマウスなどで動作を制御する。
2.簡便な方法を望んでいる。方法としてチュートリアルを調べて、MFCを使うのがよさそうに思える。UWPの必要はない。win32APIを使う方法もあると思いますが、ボタンなどのコント―ロールが簡単には使えないと思っています(全部アプリで指定しなければならない)。ただグラフを書くだけならwin32apiで十分とは思うのですが、イメージ処理が手間がかかりそうです。
3.今悩んでいることは、画面デザイナの表示をすることです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/06/04 10:33

質問に付けるタグですが、C++全般に言えるご質問内容ではないので、「Visual Studio」や「MFC」も付けておいた方が良いかと思います。質問内容としては若干不明瞭に思いますが、 1. Visual Studio 2019でMFCを使ったC++のデスクトップアプリのプロジェクトを使えるようにする方法 2. MFCを使ってボタンやイメージなどのコントロールを扱う方法 3. あるいは 1.、2. どちらも。 のどれでしょう。そういったことも書き添えておくと回答をいただきやすいと思います。 (2.に関しては範囲が広すぎて1つの質問回答で終わる話ではないと思います) 尚、このコメント欄に書くのではなく、質問の本文を追記、修正するかたちで書いてください。
sigefuji

2021/06/04 11:53

ご返事ありがとうございます。初めてなのでタグの適切な使用方法がわかりませんでした。そのようにいたします。 なお主題は1と2共です。
guest

回答2

0

ベストアンサー

Visual Studio 2019 Communityの新規プロジェクトの画面ですが、

VS2019新規プロジェクト

こちらにある MFCとか、ディスクトップアプリケーションではダメでしょうか?
なお、これらのテンプレートは、インストーラで、MFCとかを選択しないと出ない場合があるようです。

[追記]
リソースビューで、リソースの追加でダイアログが作れました。
リソース
この辺で、参考になるでしょうか。
ダイアログが表示されると、ツールボックスに追加可能なツールが現れます。

  • こちらで追加したダイアログは、実行時に表示する手順が必要。ちょっと敷居が高そう、、(追記)

[追記2]
MFCの新規プロジェクト作成で、
ダイアログベース
ダイアログベースを選択すると、一つのダイアログが初期設定として作られます。
こちらの方が簡単かもしれません。
(いつの間にか、選択肢が増えてるような、、、、)

投稿2021/06/04 11:32

編集2021/06/05 09:43
pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sigefuji

2021/06/04 11:50

ご返事ありがとうございます。 そのごnetで調べて、MFCを新たにインストールすべきとの記事を見つけて、インストールするとご案内の通りのMFCアプリが現れて、これを使いましたが、IDE画面(と言うのかな?)の左側の全般(サブ枠?)には、このグループには使用なコントロールがない。項目をドラッグすべし。とあります。(これは新たにインストールする前と同じ)。この全般枠にボタンなどのコントロールアイコンを期待しました。前記項目はどこからドラグするのかわかりません。 表示タブなど探しましたがわかりませんでした。 このような方法で、C++で使えるGUIの画面デザイナが出るのでしょうか。以前に似たようなことをやったように思うのですが(xmlで編集するような)、どうだったか思い出せません。
pepperleaf

2021/06/04 12:11

XMLで編集するのは、MFCではありません。そちらは詳しくないので、どなたかに。 ただ、どの方法に方法にしても簡単に説明できるもので無いと思います。 どの方法(MFC, Form, WPF)か絞って、調べた方が良いかと思います。どれが良いかについては、一概には言えませんが、C++での Windowsアプリそのものが推奨では無いと思いました。(C#あたりがお薦め)
sigefuji

2021/06/04 12:20

・c++は長年つかっていて、あらたにC#はさけたいきもちがあります。c#でできてC++でできないのは変に思いました。 ・なお目的(別に記述)にはMFCが良いのかどうかは自信がありません。この点はいかがでしょうか。 ・xmlは、デザイナで作成した画面設計データを編集する場合に使うことは理解していますが、MFCとは直接関係なかったですね。
sigefuji

2021/06/04 12:27

長年使っていたC++(c)はコンソールアプリと、BorlandC++builderのwindowsアプリです。後者の画面デザインは簡便ですが、今回vsでやってみようと思ったのです。
dodox86

2021/06/04 12:39

MFCはC#、.NET Frameworkが出る前からある古いもので、Windowsの進化に伴って少しずつ進化はしているものの、今や主流ではないので目的の情報を得るのも簡単ではないです。C++を知っているからすぐに対応できるとも限りません。まずは以下のページなどをざっと読み、概要を掴んでから使用の検討をすることをお勧めします。 https://docs.microsoft.com/ja-jp/cpp/mfc/mfc-desktop-applications?view=msvc-160
dodox86

2021/06/04 12:48

ああ、そうか。とりあえずまずは画面が作れればいいわけですね。コントロール特有の難しさ(面倒臭さ)は後の話ですね。
Zuishin

2021/06/04 13:04 編集

私自身は今時悪名高い MFC で新規開発とか勘弁願いたいです。 C++ Builder では VCL を使っていたのだと思いますが、その後継は MFC ではなく .NET の Windows Forms だとわかるまでやってみたらいいんじゃないでしょうか。 全角英数字を見ると、「長年やってきた」というのが非常に疑問なんですが。
pepperleaf

2021/06/04 13:22

dodox86さん、Zuishinさん、コメントありがとうございます。 今、久々に動かしてみたら、手順が変わっていました。要注意ですね。 (ついでに Updateまできた)
sigefuji

2021/06/05 06:52

ご案内のリソースビューの表示にたどり着けませんでした。どんなキーワードで検索すれば良いでしょうか。 MSのMFCのドキュメントを見ると複雑な機能(熟練プログラマ用?)が可能とあるので、最初のWINDOWSプログラムとしては不向きな気もします。単にWINDOWSデスクトップアプリですと、ボタンが簡便に配置できる画面デザイナ(XAMLで記述されている)を出すことができませんでした。ただmfcならできるのかどうかもわかりませんが。 試しにuwpアプリで開始すると、画面デザイナは出てきましたので、最低限はよいかもしれません。 どなたかのご案内にあるように一からmfcアプリを作るのは面倒であり、.NETなら簡単なことがわかるだろうとのご意見をいただきましたが、それを実感するにはmfcでの入り口くらいは試してみたい気がします。まだ、mfcと.netの違いを全般的に理解していないので、判断に迷います。 余談: 小生のプログラミング歴は数十年と長いですが、MSDOSベースばかりでC++(C)やWINDOWSプログラムは必要に応じてやる程度で、いまだ存分には使いこなせていません。
KoichiSugiyama

2021/06/05 16:14

C++Builderのような操作感でアプリケーションを作成するのでしたら、MFCアプリのウィザードでアプリケーションの種類を「ダイアログベース」と選択してみてください。 ただ、ほかの方々が説明されているように、今からMFCを習得するのは少し遠回りな気がします。VCLと似たようで全然違うクラスライブラリを一から学ぶ必要がありますので、それならばいっそのことC#に進まれて.NETライブラリを習得された方が早いのではないかと思います。
sigefuji

2021/06/07 00:02

自己解決済としましたが、それはpepperleafのご回答の通りでした。ありがとうございました。 またc#と.NETを使うのが良いだろうとのご意見ありがとうございます。検討してみます。 回答への評価方法がよくわかりませんが+高評価を更新しました。
退会済みユーザー

退会済みユーザー

2021/06/07 01:16 編集

普通は一番参考になった回答、情報共有サイトとして相応しいと思われる回答をベストアンサーとします。 ベストアンサーは変更出来ます。
guest

0

MFCの画面デザイナを表示することができました
・ツールと機能の追加からアップデートする(何をどうしたかは復元できず)
・ファイル新規作成
・MFCアプリ
・アプリケーションの種類 -単一のドキュメントまたはダイアログベース 
・そうするとTODOダイアログとダイアログエヂタリストがでる。
・ボタンなどをTODOダイアログに配置できる
ここまで。
これはC++BUILDERの扱いに似ています。

投稿2021/06/06 01:02

sigefuji

総合スコア125

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2021/06/06 05:34

pepperleafさんの回答、ということなのではないのですか?
Zuishin

2021/06/06 05:40

何も新情報がないので、既存の回答をベストアンサーにすべきです。
Zuishin

2021/06/07 01:14

> 回答への評価方法がよくわかりませんが+高評価を更新しました。 この回答のベストアンサーを外し、ベストアンサーに相応しい回答に付け替えてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問