- ベストアンサー
C言語で作成するGUIについて
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
補足拝見しました、(早いっすね) イベントループなんてたいそうな名前付けてますが、単純なDo-Whileループですよ。 終了条件を作って、例えばループ内でキー入力をチェックして Alt+F4 だったら終了フラグを立ててループを抜けるって感じですね。 他の入力に関しても同じです。 簡単に仕組みを書くと 1)諸々の初期化 2)ループ開始 3) 入力チェック 4) キー入力用処理 5) マウス入力用処理 6) 画面書き換え 7)ループ終了判断 8)終了処理 こんな感じでしょう。2~7がイベントループと呼ばれます。 実際には途中にもっと処理が必要でしょうけど、とりあえず簡略化して書きました。 当然、各処理は関数化してループ内の動きがよくわかるようにしておく事をお勧めします。ループ内でごちゃごちゃ処理するとスパゲッティプログラムになっちゃいますからね。
その他の回答 (5)
- katuya
- ベストアンサー率33% (38/115)
可能です。 まずイベントハンドラとなる処理を書きましょう。 マウス、キーボードの状態を監視し(○キーが押された、△△上でダブルクリックしたなど)マウスなどの状態を表す構造体などに値をいれてやればOKです。 この処理はループの最初に一回だけ行います。 ウィンドウやアイコン、その他処理はイベントハンドラで 作成された値を参照してやれば矛盾なくスマートに作っていけると思います。 ※ウインドウやアイコンの重なり具合などスタックを用いて管理することになると思いますが、うまくやらないとメモリを案外消費します。 作ったものを個人/社内だけで使用するなら市販のライブラリを使用すると開発は楽ですが、商用で配布などするなら一から作ったほうがいいかもしれません。
- 参考URL:
- C言語第2版
shigatsu様、イベントルールならば、do-whileよりもwhile文の 方が適しているのではないでしょうか。理由は簡単で、一度も イベントを実行せずに終了することもあり得るからです。 実際Windows APIでプログラムを組むとイベントループが while文になっています。エラーが発生したときなど、ループを 実行せずに終了させたいからです。 ここから、イベントループを学びたいのであれば、Windowsの APIの本でもいいと思いますよ。もしくは、X-WindowのGUI プログラミングの本でもいいのでは? ではでは☆
- 参考URL:
- やっぱりMFCよりAPIの方がわかりやすいよなぁ。
- okami3
- ベストアンサー率6% (1/15)
DOS上というのが、ちょっと気になりますが、Windowsで動作するGUIベースのものを作るという意味で捕らえていいでしょうか? それでしたら、マイクロソフトのVisual C++やインプライズのC++ Builderなどを使用すると、楽に作成できると思います。 また、フリーのソフトで、gcc Developer Stationというものがあります。URLを参考にしてください。 もし、Windows上でなくて、ほんとうのDOSベースでということになると、また違ってくると思いますが、出来ないことはないはずです。 その辺は、他の方のアドバイスをお待ち下さい。
- shigatsu
- ベストアンサー率26% (511/1924)
DOSでGUIとなると、ESCシーケンスを使うんでしょうかね。いわゆるグラフィックとなるとかなり機種依存してしまうのではないかと思われます。DOS/Vオンリーなら問題無いのかな。 で、キー操作やマウス操作は、大きなループの中で入力の判断をして、状態の変化が有った場合にはその状態に応じた処理を行うというのが一般的だと思います。 いわゆるイベントループというやつですね。 終了する場合は、そのループから抜けるという感じです。 MS-CのVer6あたりでは、Windowsアプリもこんな風に作ってました。違いはグラフィック回りだけでしょう。
- BEJOE
- ベストアンサー率0% (0/2)
DOSアプリケーションを開発しなければならない状況の時、私どもは「B-Forp」というソフトウェアを利用しておっしゃっている機能を実現しています。 但し、販売元も「マニュアルの在庫がなくなり次第販売を終了します」との事なので、入手されるなら急がれた方がいいと思います。 販売元のホームページをあげておきます。
お礼
回答ありがとうございます。 B-Forpのページも拝見させていただきました。 値段が少々張るので迷っていますが、 販売元と連絡をとりツールの機能をもう少し詳細に聞いてみたいと思います。
関連するQ&A
- C言語でGUI作成の手段
C言語でGUIを作成するための手段として、 APIやX-windowシステムなどが挙げられますが、 他にこういった方法はありますでしょうか? また、どういった方法がC言語で最も簡単にGUIを作成できますか? 宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- C言語について教えてください
skypとかlinuxはC言語で作られてるって聴くんですけど CってDOS画面上でしか操作できないのにGUIとかに対応させる事ができるんですか? Cと他の言語を組み合わせてGUIを完成させているんですか? どうか、教えてくださいまた参考になるサイトがあるなら教えてください お願いします。
- 締切済み
- C・C++・C#
- GUIアプリケーションを作成
GUIアプリケーションを作成 初めてのGUI作成です。 メモ帳とCygwin(コンパイル,実行の際に使用するソフト)だけでは,GUIプログラミングは出来ないのでしょうか? 幾つかC言語のwindowsプログラムを見ましたが、見慣れない記述ばかりでした。 (使ったことはないですが、)一般的には、VC++やBCC++のGUI開発の支援ソフトを利用するものなのでしょうか? JAVAの方が,Swingを使用すればGUIが簡単に習得出来るそうで、C言語より早く習得できそうです。JAVAでGUI作成をするときのデメリットがあれば教えて下さい。
- 締切済み
- C・C++・C#
- ソフト開発のGUIに向いた言語を教えてください
今現在C言語を勉強しているんですが難しいしGUI操作に向いていないと聞くのですがGUIで操作するのに向いている言語はなんですか? できればネットワークに興味があるのでネットワークプログラムに向いている言語をおしえてください またC言語を難しいっていってるぐらいだったらやめろとかそおいうのもOKです 厳しい意見などもいってください 聞いた話なんですけどC++がGUIとかに向いてるってきくんですが本当ですか? 教えてください
- ベストアンサー
- その他(プログラミング・開発)
- C言語で自作GUIツールキットを作成したい
こんにちは。 初めて、C言語でGUIツールキットを自作したいと考えております。 目的としては、どうやってGTK+などのGUIツールキットは画面にウィンドウやボタンといったものが表示しているのか学習をしたいためです。 最初は、GUIツールのソースをみて解釈しようとしたのですが、C言語自体が独学なので意図が読み取れなかったり、どこで画面を作成しているのか分からず挫折をしてしまいました。 ですので、わかりやすい書籍やWebページがありましたら教えてください。
- ベストアンサー
- Linux系OS
- C++でGUIアプリケーションを作成するには?
C++でGUIアプリケーションを開発しようとしていますが、どのように作成すればよいのかわからなかったため、質問させて頂きました。 アプリケーションのイメージとしては、ボタン・背景などはすべてこちらの用意した画像で表示し、Windowsっぽいテイストは一切出さないアプリケーションです。ボタンを押すと画面全体が切り替わるイメージです(例えばプリクラみたいな) 現在JavaのSwingでアプリを作成しており、全体が切り替わる機能としてはJPanelのCardLayoutを使用しています。 ボタンはJButton等で完全に画像onlyのアプリを実現しています。 ただ、JavaはWEBカメラからの画像取得が640*480が限界であり、カメラの限界性能(1600*1200等)が使用できるopencv(c++)で画像キャプチャのところだけ作成しました。 このままアプリ全体はJavaで作成し、画像キャプチャ時はc++のexeを裏で実行させるという方法もあるのですが、言語を統一したほうがいいのではないか?と思ったので現在c++でGUIアプリの作成方法を調べています。 参考になるページもご紹介いただけるとありがたいです。
- ベストアンサー
- C・C++・C#
- ラズベリーパイ3 C言語でGUIを作成する方法
ラズベリーパイ3(OS raspbian light)のC言語を使って通信用のプログラムを作成しています。 現在このプログラムはコンソールアプリケーションなのですが、 GUIで、パラメータ設定や、受信データのグラフ化をできるようにしたいと考えています。 VCのように、ボタン押下でイベントを発生させて画像やグラフを表示する開発環境はないものでしょうか。あればどのような手順で構築すれば良いでしょうか。 ご助言頂ければ幸いです。
- ベストアンサー
- C・C++・C#
- C++とC#を使ったアプリケーション作成
アプリケーションと言って良いのかは微妙なのですが、アプリケーションを作ることになりました。 既存のいくつかのプログラムを1つにまとめて、GUIで操作できるようにするのが最終目的です。 もとのプログラムはC++で書かれています。 今回は、GUIの部分を 「Microsoft Expression Blend 2」でデザインしようと考えているのですが、 GUIの部分をC#で作成し、メインの処理をC++で書くことは可能なのでしょうか? それとも、メインの処理をC#で書き直すことが必要でしょうか? 知恵を貸してください。 よろしくお願いします!!
- ベストアンサー
- C・C++・C#
- cでなぜguiアプリが作成出来るのか。
cでなぜguiアプリが作成出来るのか。 現在cについて学習中です。 テキストエディタで書きターミナルで実行しています。 cではアプリが作れるようになるといいますが 現在のままではcuiのソフトしかできる気がしません。 一般的に言われるアプリケーションというものを 作成するにはまた別の手段が必要なのでしょうか。
- ベストアンサー
- C・C++・C#
補足
回答ありがとうございます。 C言語のイベントループに関して参考になる書籍などはご存知でしょうか。GUIをCで開発したことが無いためにどのように構築したらよいのか、手をつけかねてしまっております。