メルマガ:あゆしゃのC言語プログラミング
タイトル:あゆしゃのC言語プログラミング(Vol.608) CE24 プレビュー  2005/10/03


/*========================================================*/
    <<<あゆしゃのC言語プログラミング>>>
/*========================================================*/
 第608回 CE24 プレビュー
 発行    2005年10月3日(月曜日)
 発行数   約2500

{magclick}
/*========================================================*/
 はじめに ( 決り文句 )
/*========================================================*/
・このメールマガジンは、主にまぐまぐさんから発行しています。
・ジャンルは、マルチメディアのプログラム、C言語です。
・横60文字で作成し、インデントは大抵半角スペース4つです。
・ここで扱うプログラムは、C言語と半光年以内のものです。
・登録解除は、メルマガのホームページでお願いします。
・過去ログはバックナンバー(下欄参照)を活用して下さい。
・内容は私が感じたもので、最新の技術も、へたれもあります。
・わかりやすさを優先させる為、たまに嘘があるかもしれません。

/*========================================================*/
 ご挨拶
/*========================================================*/

 こんにちは。あゆしゃです。

 先日、「3DRPGプログラミング」のサンプルソースを
ダウンロードしてみました。

 そして、DirectXのプログラミングに初挑戦です。

 現在、ポリゴン1枚を表示するプログラムが動かず、四苦八苦
です。

{magclick}
/*========================================================*/
 今回のお題  << CE25 ステータスバー >>
/*========================================================*/

 前回までの内容を元に、クラスを作りました。

class CCETool : public CCEImage
{
public:
    enum {
        MARGIN = 8,
        ITEM_WIDTH = 80,
        ITEM_HEIGHT = 16 + MARGIN,
        ITEM_NUM = 2,           // メニューの数
        SCR_WIDTH = ITEM_WIDTH + MARGIN * 2,
        SCR_HEIGHT = ITEM_HEIGHT * ITEM_NUM + MARGIN * 2,
    };
public:
    CCETool();
    // サイズ変更チェック
    virtual BOOL CheckResize( int width, int height );
    // ヒットチェック
    virtual int HitCheck( POINT& pos );
    // 背景描画
    virtual void DrawBack();
    // 選択消去
    virtual void EraseSelect();
    // 選択描画
    virtual void DrawSelect();
};

 CCEImageを単純に継承するだけの形になっています。

 今後、メニュークラスを作って1メニューあたり1オブジェクト
を保有させます。

/*========================================================*/

 話は進めて、プレビューです。

 ワークエリアで、拡大された画像を編集している場合、必ず
その実際の画像を見たくなります。

 私がキャラエディッタを作って、自分で使っていたときがそう
だったので、後々、プレビューを追加したのです。

 プレビューは簡単です。

 ワークエリアにあるデータを表示するとき、他の場所に一緒に
SetPixelしてあげればよいだけです。

 問題はオブジェクトですが、ワーククラスを拡張しましょう。

 ワーククラスはフレームまでを持つ画像データですが、それを
下のほうに余分のあるサイズとして、

 その余白にプレビューを表示させましょう。

 また、マウスがどの座標を指しているかというテキストも
リアルタイムで欲しいところです。

 ワークエリアのすぐしたに座標を表示し、

 さらにその下にプレビューを表示させましょう。

 座標のテキストは2ドットの小さめなマージンを入れ、

 プレビューにはフレームつきのマージンなしとしましょう。

 サイズは16+2*2+ワークサイズ、

 64ドットを修正するものなら84ドットを余分に確保する
ことで対応できるでしょう。

{magclick}
/*========================================================*/
 さいごに
/*========================================================*/

 動かないなぁと悩んでいたところ、照明を置いていないことに
気が付きました。

 あ、これかも。。

{magclick}
/*========================================================*/
 次回予告
/*========================================================*/

 次回は10月5日(水曜日)に、第609回をお送りします。
 お題は「CE25 ステータスバー」

 簡単なコメントを表示する「ステータスバー」の作成です。

 お楽しみに!

/*========================================================*/
 最後の決り文句
/*========================================================*/
 このメールマガジンは、まぐまぐさんから発行しています。
 このメールマガジンを解除したい場合は、まぐまぐさんをご利用
ください。このメルマガのまぐまぐアイディーは最後にあります。
 このメールマガジンには広告が挿入されていますか?
 このメールマガジンの内容に文面の引用はありませんか?
 めーらっくすの場合はめーらっくすの利用方に従ってください。
 このメールマガジンの内容の、転用、流用、宣伝、リンク、
メッシュとバーテックスとマテリアル??? なんて大歓迎です。

{magclick}
/*========================================================*/
 
/*========================================================*/

発行者 あゆしゃ

ホームページ::あゆしゃの世界
http://ayusya.hp.infoseek.co.jp/

ご意見・ご感想・ご質問メール
mailto:ayusya@flamenco.plala.or.jp

まぐまぐ::アイディー
0000020674

まぐまぐ::登録と解除
http://www.mag2.com/m/0000020674.htm

まぐまぐ::バックナンバー
http://jazz.tegami.com/backnumber/frame.cgi?id=0000020674

めーらっくす::アイディー
MM3E1AEE285AB4F

めーらっくす::登録と解除
http://www.mailux.com/mm_dsp.php?mm_id=MM3E1AEE285AB4F

めーらっくす::バックナンバー★最近のものならこちらが便利★
http://www.mailux.com/mm_bno_list.php?mm_id=MM3E1AEE285AB4F

ブラウザの閉じるボタンで閉じてください。