アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。
今、MFCの学習をし始めたばかりです。
学習の最終目標の成果物としましては、
MSペイントに近いアプリを作成することです。

でもまずは簡単な機能(線、矩形、円、自由線の描画、色換え)から着手する予定です。

つきましては、参考になるサイト、書籍、その他アドバイス等あれば、ご教授頂けると助かります。

環境はVisualStudio2005のMFCです。
お願い致します。

A 回答 (4件)

MSDNに"そのまんま"のサンプルがあります。


URL参照。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうなんですか!?
まんまというのはMSペイントまんま??

お礼日時:2008/08/27 22:59

 こんばんは。

ペイントソフトは4つ程作成した事があります。

 私もMSペイントをお手本にしていた時期があります。シンプルなのですが、以外に大変です。
 ただ、MFCを使用するようなので、その点では作業量は低減されると思います。

>>でもまずは簡単な機能(線、矩形、円、自由線の描画、色換え)から着手する予定です。
(1)線、矩形、円、自由線の描画
 C++で抽象化した方が楽でしょう。
 入門書籍に良く出てくる文句に以下の様なものがあります。
 class IShape
 {
 public:
 virtual void Draw() = 0;
 };

 class CBox : public IShape
 {
 public:
 virtual void Draw(){//□を描く}
 };

 class CCircle : public IShape
 {
 public:
 virtual void Draw(){//○を描く}
 };

 こう言った事は、「オーバーライドの必要性を説く為に書かれたもの」なので、応用は出来ますが、実際には此の程度で済む程、単純な物ではないです。
 「クリックして、ひっぱって、放すと描写される」をしますので、マウスのキャプチャーもバックバッファリングも必須になってきます。
 兎に角、これらの取り扱いに慣れる必要があるかもしれません。
 此処でのポイントは、後々に備えて「伸縮倍角」が変化する事も含めた作成しておく事でしょうか。
 後になって「虫眼鏡」の機能を追加する時、座標計算の方法を修正するのも大変です。

(2)色換え
 MSペイントで「色彩ダイアログ」がありますが、これは「コモンダイアログ」の一つで、直にでも使う事が出来ます。
 「CColorDialog]
 http://msdn.microsoft.com/ja-jp/library/6w6cd538 …

 もちろん、徹底して自作しても良いでしょう。

・その他、思いついた事を記載させていただきます。
(1)何をするにも「STL」辺りは必須になってくるかもしれません。
 これは、
 p = new Class(...)
 とか、
 p = (xxx*)::malloc(...)
 //pを使う
 //遠く離れた所で
 //pのサイズを拡大する
 などと言う事を繰り返していると、その内失敗します(大変な事になる)。

(2)SetPixel()/GetPixel()を使用しない事でしょうか(重たいので画像処理には向かないです)。
(3)復元機能が有るなら、そちらを先にやらないと厳しいかもしれません(データ構造の要素にグラフィックバッファを格納し、其れをイテレータで参照して描写する事に成るかもしれません)。
(4)画像変換入出力と描画ツールの具象クラスは、DLLに置いた方が良いかもしれません。
(5)参照カウンタ式のスマート「ポインタ・リソース」位は無いときついかもしれません。
 諸事情の理由によって、此の場合は「開放」して、此の場合だけは「開放」しない・・・。
 こう言った事を繰り返しているうちに「メモリ・リソース」リークが生じたりします。そう言った事を無くす為にもスマート「ポインタ・リソース」があります(完全ではないが)。
 ネットで検索していれば、誰かしら作っているかもしれませんが、「BOOSTライブラリ」に数種類スマートポインタがあるので、手っ取り早くそれを持って来るか、テンプレートメタプログラムして、自分で実装するかです。
 ただし、標準のstd::auto_ptr<T>だけは、止めて置いた方が無難だと思います。
 ・・・とまぁ、色々あって全然書き切れないのですが、取り敢えず「実に面倒」な部分は、今まで挙げて来た部分でしょうか。先ずは、気軽に作って見ては如何でしょう。
    • good
    • 0
この回答へのお礼

ありがとうございます。
正直、現時点では知識が足りなすぎて、ピンときていないですが、
後に役立ちそうな気がします。

お礼日時:2008/08/29 00:07

> まんまというのはMSペイントまんま??



なわけない ^^;
こいつをベースにすればDraw系ツールの
たいていのことができるはず。
    • good
    • 0
この回答へのお礼

ありがとうございます。
MSDNでサンプルがあるんですね。
ここまで作られた手順が知りたいですが、自力で解析しろって感じですかね。

お礼日時:2008/08/29 00:06

失礼、貼りそこねました。



参考URL:http://msdn.microsoft.com/ja-jp/library/92y4h944 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!