画面に描画をしてみよう - 1 / 3 -
// // Square.c // #include "AEEModGen.h" // モジュール インターフェイスの宣言 #include "AEEAppGen.h" // アプレット インターフェイスの宣言 #include "AEEShell.h" // シェル インターフェイスの宣言 #include "Square.bid" // Square アプレットのクラス ID をインクルード // 前方宣言 static boolean Square_HandleEvent(IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam); static void Square_OnAppStart(AEEApplet* app); // // BREW アプレットを作成する関数 // int AEEClsCreateInstance( AEECLSID ClsId, // 作成するアプレットのクラス ID IShell * pIShell, // シェル オブジェクト IModule * po, // モジュール オブジェクト void ** ppObj) // 作成したアプレットを返す { *ppObj = NULL; if (ClsId == AEECLSID_SQUARE) { if (AEEApplet_New(sizeof(AEEApplet), ClsId, pIShell, po, (IApplet**)ppObj, (AEEHANDLER)Square_HandleEvent,NULL) == TRUE) { return (AEE_SUCCESS); } } return (EFAILED); } // // Square アプレットのイベント ハンドラ // static boolean Square_HandleEvent( IApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam) { switch (eCode) { case EVT_APP_START: Square_OnAppStart((AEEApplet*) pi); return TRUE; case EVT_APP_STOP: return TRUE; default: break; } return FALSE; } // // アプリケーション開始時に呼び出される // static void Square_OnAppStart(AEEApplet* app) { IShell* shell; IDisplay* disp; AEEDeviceInfo devinfo; AEERect whole_rect; AEERect red_rect; RGBVAL light_blue = MAKE_RGB(200, 200, 255); RGBVAL red = MAKE_RGB(255, 0, 0); // IShell オブジェクトを取得する shell = app->m_pIShell; // IDisplay オブジェクトを取得する disp = app->m_pIDisplay; // 携帯電話の画面の大きさを取得する ISHELL_GetDeviceInfo(shell, &devinfo); // 画面の大きさの長方形を作成 whole_rect.x = 0; // 左上の X 座標 whole_rect.y = 0; // 左上の Y 座標 whole_rect.dx = devinfo.cxScreen; // 幅 whole_rect.dy = devinfo.cyScreen; // 高さ // 画面全体を淡い青で塗りつぶす IDISPLAY_FillRect(disp, &whole_rect, light_blue); // 赤い四角形の枠を描画する red_rect.x = 20; red_rect.y = 20; red_rect.dx = 40; red_rect.dy = 30; IDISPLAY_DrawRect(disp, &red_rect, red, 0, IDF_RECT_FRAME); // 画面ビットマップへの描画を実際に表示する IDISPLAY_Update(disp); }