◇PocketPC2002開発 〜リソースBMPを表示〜

普通に考えると一番簡単であろう画像表示方法です。
……が、PocketPCと言うか WindowsCEの資料がほとんど無く、なかなか方法が分かりませんでした(:_;)
プログラムを組んでいるみなさん。もっとインターネット上にサンプルを掲載しましょう。

◎リソースへ組み込む

まず、画像を用意して下さい。
横240×縦320以下で、256色以下の WindowsBMP形式です(RLEはかけていない)
これ以外も扱えると思いますが、とりあえず簡単に用意できて(ペイントブラシで作成できる)、確実に表示できるものをテスト用に選びました。

BMPリソース追加方法
1. eMbedded Visual C++を起動し、左のクラス一覧が表示されている場所の下にある Resource Viewタブをクリック
2. 一番上の○○ resourcesにカーソルが当たっている事を確認して、右クリック
3. Importをクリック
4. ファイルの種類をすべてのファイルに変更
5. リソースへ追加したい BMPファイルを選択して、Importボタンをクリック
6. エディタに表示された CGが正常である事を確認
7. 左のリソース一覧に Bitmapフォルダが追加され、IDB_BITMAP1のように表示されている事を確認
 この IDB_BITMAP1はプログラムから使用しますので覚えておいて下さい。
8. メニューの File->Save ALLで保存する。
 本当に保存されたか心配な場合は、一度ツールを終了させてみる事をお勧めします。

◎BMPリソースの表示

とりあえず、一番簡単な WM_PAINTに記述を行って表示を行いたいと思います。

左側にリソース一覧が表示されている場合は、Class Viewタブをクリックしてクラス一覧に戻して下さい。
クラス一覧の WinMainをダブルクリックして表示して下さい。

・リソースヘッダをインクルードする
先程組み込んだリソースのヘッダファイルをインクルードする必要があります。
ソースの上の方に、#includeが沢山ならんでいる場所があります。
どこでも良いので、その辺に下記記述を追記して下さい。
#include "resource.h"

・変数定義
左のクラス一覧より WndProcをダブルクリックして下さい。
一番上に、変数定義が色々されているのが分かりますね?
その後ろに適当なコメントでも入れて、下記ソースを追記して下さい。

//Tekitouna
HBITMAP hBMP;
HDC hMemDC;
BITMAP bmp;

・表示ソース
ずずっと下の方を見ると、case WM_PAINT:があります。
画面表示系の記述は BeginPaintと EndPaintの間に記述するのが常識ですね。
EndPaintの直前に下記ソースを追記して下さい。

//Tekitouna
hBMP=LoadBitmap(g_hInst, MAKEINTRESOURCE(IDB_BITMAP1));
GetObject(hBMP, sizeof(BITMAP), &bmp);
hMemDC=CreateCompatibleDC(hdc);
SelectObject( hMemDC, hBMP );
BitBlt(hdc, 0, 0, bmp.bmWidth, bmp.bmHeight, hMemDC, 0, 0, SRCCOPY);
DeleteDC(hMemDC);
DeleteObject(hBMP);

トップメニュープログラマ専用PocketPC2002