Visual Studio 2005のMFCを使用してアプリケーションを作成しようとして
いるのですが、テキストの折り返し処理がうまくいかないので、質問させて
ください。MFC初心者です。
新規作成⇒プロジェクト⇒MFCアプリケーション⇒シングルドキュメント
⇒NEXT×6⇒基本クラスを【CEditView】に変更すると、スケルトンとして
メモ帳が出来上がりますよね?このメモ帳に対して文字を入力していくと、
端でちゃんと折り返し、最大化すると文字を最大化用に敷き詰めてくれます。
これはメモ帳ですが、自分がやりたい事はあるPCからのデータをレシーブしてそこの画面に表示!!という事なので、CEditViewではなくCListViewとかを使おうとしてます。そのスケルトンに対して、実際に文字を表示させようとして、C○○View::OnDraw(CDC* pDC){
例えば *変数 ="AAABBBCCCDDDEEE";
C○○Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDC->TextOut(0,0,name);
}
窓
そうすると、
-------------
AAABBBCCCDDDE
-------------
このように表示されてしまい右にスクロールすると、残った文字が出てきます。
このプログラムを 窓
-------------
AAABBBCCCDDDE
EE
-------------
と折り返し処理をしてくれて、最大化した時は
//右端まで行ったら折り返す
-----------------
AAABBBCCCDDDEEE
-----------------
まずはこのようなプログラムにしたいのですが、アドバイス等、ご教示
いただきたいです。宜しくお願いいたします
/////////////////////////////////////////////////
開発環境 WinXP sp2 Visual Studio 2005 MFC
No.2ベストアンサー
- 回答日時:
★アドバイス
・MFCについて色々調べるよりも『オーナードロー』として検索すると良い。
あと MFC を使いこなすにあたって必要な事は C++ の知識と API 関数の知識のほかに
MFC 全体の仕組みの大まかでよいので知る必要があります。その他、ネットでの検索術
などもあります。特にネットで検索をすると MFC 以外に C/C++とAPI関数でのサンプルや
VB、C#、Delphi など他の言語の資料が見つかります。多少でもそれらのサンプルを理解する
知識があればかなり参考になります。私は HSP 用の API 資料が見やすいのでお気に入りに
入れています。→http://yokohama.cool.ne.jp/chokuto/urawaza/api/i …
・私は、MFCクラス群をすべて暗記していません。無理!でも良く使うものや一連の処理は
サンプルソースを自分で作成してフォルダで管理しています。そして、そのフォルダから
サンプルソースを見つけて『コピー&ペースト』して使っています。このサンプルは自分で
試行錯誤して作ったソース以外にネット検索で集めた MFC 小技集を自分なりにまとめたもの
です。私の財産です。→ソフト財産と呼ぶ。
・下の『参考URL』をどうぞ。
本:
・http://www.amazon.co.jp/dp/4881358219/→『Visual C++〈1〉はじめてのWindowsプログラミング』
・http://www.amazon.co.jp/dp/4881358227/→『Visual C++〈2〉はじめてのオブジェクト指向プログラミング』
・http://www.amazon.co.jp/dp/4881358235/→『Visual C++〈3〉はじめてのMFCプログラミング』
・お金に余裕があるのなら用意してみるのも良いでしょう。
ただし、本屋などでリサーチしてから買うこと。自分に合うかどうかね。
参考文献:
・http://msdn2.microsoft.com/ja-jp/library/d06h2x6 …→『MFC リファレンス』MSDNマニュアル
・http://akky.cjb.net/mfc/index.html→『MFCプログラミング』
・http://www.g-ishihara.com/mfc_ge_02.htm→『MFC編 - 開発環境をそろえよう』
参考URL:http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_L …
丁寧なアドバイスありがとうございます。
とても参考になりました。やっぱりMFCすべてを暗記するのではなく、
その時の仕様などに応じての関数やWebなどで拾ってきたソースなどを
参考に調べて構築していくのが、普通なんですね!!
でも、MFC位は普通に暗記してるよ!!って言われなくて良かったです。
何度も質問してしまって悪いのですが、C++の知識においてはどのレベル
までの知識を必要としますか??(自分ではクラスと派生と仮想関数)あたり
がMFCにあたって重要かなって思っています。
本当は完璧にC++をマスターした方がいいと思うのですが、あるアプリケーションを期限内に作らなければいけなくてC++を完璧にするのは無理っぽいので、部分的にかいつまんでやっていますが、そこらへんのアドバイスを
いただけないでしょうか??
宜しくお願いいたします。
No.3
- 回答日時:
★アドバイス
・MFC を使うには、クラスと派生と仮想関数以外にクラスの継承(親子関係?)をそれなりに
把握しておく必要があります。また、メンバ関数が Win32 API 関数とデータメンバなどが
どのようにカプセル化しているのかを大よそ見当を付けれないと混乱します。
・また、C++ 言語を完璧にマスターしても MFC の仕組みを理解しないかぎりは使いこなせない。
期限内に作らなければいけないので、重要な部分だけをつまみ食いしても良いでしょう。
時間があるときに過去のソースや経験したことをメモ程度にまとめて置けばその後に利用できます。
私はホームページ形式にまとめて閲覧、参照しています。一部は公開しています。
まぁ、1つ1つ経験的に積み重ねて行くしかないですね。
最後に:
・今回の質問は指定された長方形内に文字列を折り返しで描画すれば上手く行きそうな気はしますが、
試したことが無いので何ともいえません。エクスプローラの縮小版表示はオーナードローなどで
描画しているようです。文字列も同様に自分でオーナードローすれば出来るとは思います。
・以上。参考になりましたか。
参考URL:http://forums.belution.com/ja/vc/000/203/03s.shtml
度々にわたる丁寧な回答ありがとうございました。
今回はC++は掻い摘んで、時間がある時にしっかり把握したいと
思います。
参考URLなどを元にMFCの勉強などをしていきます。
オーナードローに関してもっと調べて見ます。
ありがとうございました。
No.1
- 回答日時:
★なぜ?CListView なのですか?
・ここに興味を持ちました。
オーナードローを使い、自分で文字列の長さを計算して折り返すしかないと思う。
CListView で折り返す考えを今まで考えたことが無いのでアイディアとして下さい。
・以上。
返答が遅くなりましてすみません。
オーナードローですか??調べてみてもピンと来ないのは完全に勉強不足です
ね・・。
MFCについて色々調べてみたいのですが、勉強になるいいサイトなどございますか?? またMFCを使うにあたって必要な知識があると思うのですが、
C++の知識とAPI関数と思っているのですが、それで宜しいでしょうか?
あと皆様はMFCを使うにあたってMFCクラス群を暗記しているのでしょうか?もし暗記しているのなら、自分には真似出来ないっておもいます。
それともこういう仕様にしたいな~って思って調べて使用するのでしょうか?
ご教示よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Excel(エクセル) 非表示にしたい行をグループ化して折り畳み 4 2022/09/17 20:17
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Excel(エクセル) Excel VBAで、行の高さを、上下1文字分程度高くしたい 3 2023/04/23 00:17
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
- Word(ワード) Word(ワード)表示の直し方について 4 2022/07/31 23:13
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで仕様書は書きますか?
-
「ルーチン」という言葉の意味
-
空elseの有無
-
きれいなコード vba vbaを勉強...
-
プログラミングのコード量に関...
-
格闘ゲームを作るのは大変なん...
-
C言語(gcc), Linux, FTPプログ...
-
あるプログラムのコマンドライ...
-
C言語の課題で、1年の秒数を計...
-
Excelで4096点以上のFFTの方法
-
0除算して、落ちるプログラムと...
-
「Outlookが他のプログラムによ...
-
C++ で、「)」が必要 というエ...
-
バッチファイルでUSB挿入時に実行
-
graph.hがincludeできない
-
正しい五十音順について
-
読み込み中にアクセス違反が発...
-
アプリのプログラムを見るには...
-
このプログラミング誰か教えて...
-
65536は2の何乗なのでしょうか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで仕様書は書きますか?
-
C言語(gcc), Linux, FTPプログ...
-
プログラミングのコード量に関...
-
空elseの有無
-
変数・オブジェクト名に漢字使用
-
C++ソースからUMLの設計書を作...
-
きれいなコード vba vbaを勉強...
-
PCの時刻精度
-
VBからシャットダウンさせる方法
-
クリップボードを排他的に利用...
-
MFC,C++/CLI,C#の共存
-
逆フーリエ変換のプログラムに...
-
【VB】データグリッドビューで...
-
COBOLのCALL文がいまいちつかめ...
-
GDLでH8/3052Fのi2cプログラム...
-
プログラム動作時のCPU処理時間...
-
「ルーチン」という言葉の意味
-
例外処理があまり使われない理...
-
良いプログラムとは?
-
実行コマンドのプロセス管理
おすすめ情報