お世話になっております。
現在MFCを学ぼうと思っているのですがいまいち理解できないので、
ご指導願いたいと思います。
環境はWin2000、VC++6.0です。
今までSDKでプログラムしてましたが、MFCも必要になり参考書を読んでます。
以前、SDKをやってからの方がMFCの理解が早いと聞いてたのですが、
どうもそれがうまくいきません。
もちろん、C++の基礎(クラスなど)については一応勉強しました。
何が分からないというのが上手く説明できないのですが、
例えば、SDKでは、どこを押すとどこに飛んで行くかというのがよく分かるのですが、
MFCでは、メニューを押した時やクライアント領域に描画をしたいという時に、
どの部分にコーディングすればいいかというのがよく分からないのです。
オブジェクト中心に考えるというのは理解しているつもりですが、
どこでその実体を取ればいいのかと悩みます。
(ハンドルなどを他のモジュールで使いたい時など)
これは、ドキュメント/ビューっていうのが理解できてないのでしょうか?
上手に説明できなくて申し訳ありませんが、
同じような経験をされてMFCを習得された方がいらっしゃいましたら
どうかアドバイスいただけますでしょうか?
私は何(どの部分)から勉強すればいいのでしょうか?
1つ質問なんですけど、ClassWizardは使いこなせてますか?
あー、あとSDI/MDIではなくて、ダイアログベースのアプリケーションはどれくらい
作成できますか?
例えばボタンを配置してそれを押下するとメッセージボックスが表示されるとか。
コンボボックスやリストコントロールなど基本的なコントロールは扱えるとか。
どうでしょうか。
加発さん、返事ありがとうございます。
ダイアログベースのアプリ、ClassWizardについての質問をされて、
分からない部分が少し明確になりました。
両方とも、初級の参考書程度の使い方しかできません。
というのは、何かのコントロールを作った時に、それがどこに属するのか分からないのです。
特に、クラスウィザードの「クラス名」の部分にAppとかDlgとか出ますよね?
で、例えばダイアログにボタンを追加すると**Dlg::Buttonとかなりますよね。
ダイアログだけなら少し分かるのですが、DocとかViewになると全くわかりません。
例を出していただきましたが、
>ボタンを配置してそれを押下するとメッセージボックスが表示
という場合、ボタンをダブルクリックして関数作成しますよね?
でも、その後でまた悩みます。
メッセージボックスはグローバル関数でいいのだろうか?と。
それともCButton、Dlgのメンバ関数?
これに関しては、ただ親をどうするかだけの問題だとは思いますが、
どのクラスも同じ名前のメンバ関数を持っているから悩みます。
MFCの階層図などの理解が不十分なのでしょうか?
GIUです,こんにちは。
自分は,C→SDK→C++→MFCで勉強しましたが,SDK及びMFCで参考にしたのは,
「Windowsプログラミング第5版」(SDK)と「MFCによるWindowsプログラミング」でした。
両方ともMicrosoftPressから出版されています(かなり値が張りますが)。
この場でMFCとはなんぞや,という話をするには,かなりスペースが足らないと思います。
一度,こういう本を読んでみて,具体的に分からないことが発生した場合にまた質問を
投げかけるのはどうでしょう?
基本的な考え方などはさほどSDKとMFCで変わるものではないと思っています。どちらも
イベントドリブンであり,Windowsのプログラミングでは避けてとおれません。
Document/Viewは,さらにデータ管理・データ描画の良い方法の1つであり,
MFCで推奨されている
ものです。特にDocument/Viewだから,といったことはないと思います。また,Document/
Viewで開発する必要性も厳密にはありません(が,MFCの多大なる恩恵は受けられないでしょう)
。
なので,加発さんが言われるように,ダイアログベースで色々といじってみて勉強するのも
一つの手だと思います。
こんにちは。
私は冬弥さんとは逆に、MFC から入り、それから SDK を始めました。MFC は初心者
でも簡単に扱えるようなイメージがありますが、結局は C++ は勿論のことWindows
プログラミングに長けたプロフェッショナル用のツールのように思えます。私は SDK
を始めてやっとブラックボックスの中身が見えてくるようになりました。
歯がゆい思いをしていることと思いますが、冬弥さんはボックスの中身を本当は
知っているはずです。クラスでラッパーした SDK プログラム(MFCもどき)を
一度組んでみてはどうでしょうか。私はこれを行うことで MFC で沸いた疑問が
かなり解消されました。
GIUさん、しっぽさん
お返事ありがとうございます。
ご指摘いただいたようにMFCもどき(?)でダイアログベースの
プログラムを作って、いろいろやってみます。
本を読んでサンプルをやってても理解できないのでちょっと焦ってましたが、
相談に乗ってもらえて少し落ち着きました。
具体的な疑問点が出てきたらまた質問させていただきたいと思いますので、
その時はまたよろしくお願いします。
答えていただきありがとうございました。