こんばんわ、VC++入門で勉強中の青二才ですがよろしくお願いいたします。
分割ウィンドを用いたプログラムを作っています。
左ペイン?にBMP表示を右に描画ボタンを配置しました。
分割にする前はうまく描画できたのですが、分割にしたとたん
コンパイルも通らなく表示もできなくなりました。
描画ボタンのコードは以下です。
CaaaViewクラスで以下の関数を定義しました。
CaaaView.h //左側
:
BOOL Hyoji();
Void D_BMP();
:
CbbbDlg.cpp //右側
:
void CbbbDlg::OnButtonByouga()
{
if (CaaaView::Hyoji() == FALSE)
{
AfxMessageBox(エラー);
}
else
{
CaaaView::D_BMP();
}
}
ビルドのエラーは静的でないメンバ関数が正しくありません。
関数の定義を見直してくださいでした。
環境はwin2k,VC++6.0です。
ほんと初心者の質問で申し訳ございません。
どう直してよいか皆目検討がつきませんでした。
どうかご教授の程よろしくお願いいたします。
他のペインのビューの表示を更新したい場合は、
ドキュメントに対して「ビューを更新しろ」と言ってやります。
//元のビューの中で
GetDocument()->UpdateAllViews(this);
そうすると、呼び出し元以外の各々のビューのOnUpdate()が自動的に呼び出される
ので、この中で自クラスのメンバ関数なりを呼び出してやるといいです。
void CaaaView::OnUpdate()
{
if(Hyoji()==FALSE){...}
else D_BMP();
}
対処療法的には、nさんが紹介されている内容がヒントになりますが、
エラーの内容が理解できないようなら、C++言語の勉強を先にされた方がよろしいかと
思います。
どうも、C++言語の知識が無いままMFCを使ってプログラミングをしようとされている
ようですが、MFC自体がC++言語で構築されているのでC++言語の知識が無いとMFCを
使いこなせません。
MFCを使ってアプリを作ってみるよりもMFC無しのコンソールアプリケーションを使って
C++言語の入門書の勉強をされた方がいいと思います。
あと、ドキュメント・ビュー・アーキテクチャの勉強もしたほうが良いかな。
こちらはC++言語の勉強の後でもいいと思いますけれどね。
ドキュメント・ビュー・アーキテクチャについてはMSDNを参照すれば、
それについての記述があったと思いますよ。
ちなみにVC++の入門書でC++言語の勉強は出来ないと考えた方が良いです。
VC++というのはあくまでも開発環境なので、VC++の入門書は開発環境の入門書です。
C++言語の入門書を購入して勉強しないとC++言語の勉強は出来ないと思いますよ。
ご教授ありがとうございます。
早速C++の勉強からはじめます。
なにかお勧めの書物等ございますか?
これは人によって違うでしょうね。
私は、ソフトバンク社の「プログラミング講義C++」を使って
勉強しました。以前はハードカバーでしたが、今は装丁が変わっているようですね。
書名も「新装版 プログラミング講義C++」となっているようです。
柴田望洋さんが昔、Cマガジンで連載していた内容をまとめて加筆訂正したものだった
と思います。
私的にはよい本だったと思っています。
あと、実践になったらEffective C++でしょうかねぇ。
More Effective C++と言うのもあります。
この辺は基礎をやった後で良いと思うので参考程度に。
他の方でお勧めがあれば、教えてあげてください。
私の紹介は範囲が狭いので。
どうもありがとうございました。