カッコよく言うとね、「外部ライブラリのリソースから画像を取得して表示」してるんだけどね、あんまりすごくないですw
カッコよく言うとね、「外部ライブラリのリソースから画像を取得して表示」してるんだけどね、あんまりすごくないですw
#include "kernel32.as"//#include "user32.as"//#include "Gdi32.as"//3つDLL使うの久しぶりだ#define RT_BITMAP 2DLLNAME="ieframe.dll"LoadLibrary DLLNAMEHDLL=stat;pResourceName="Bitmap\\TRAVEL_PRESSED_XP_120.BMP"RESNAME="TRAVEL_PRESSED_XP_120.BMP"//リソースハッカーで居場所を突き止めた画像をセットFindResource HDLL, RESNAME, RT_BITMAP ;HRES=stat//LoadIcon HDLL,RESNAMESizeofResource HDLL,HRESSizeRES=statLoadResource HDLL,HRES //戻り値はHGLOBAL グローバーるメモリにロード戻り値をLockResourceに渡すとBitMapのありか(=ポインタ)を教えてくれるhLrs=statLockResource hLrslpBITMAPINFO=statdupptr BITMAPINFO,lpBITMAPINFO,44,dwWidth=wpeek(BITMAPINFO,4)dwHeight=wpeek(BITMAPINFO,8)mes dwWidthmes dwHeightszBuf=lpBITMAPINFO+40+0SetDIBitsToDevice hDC,0,0,dwWidth,dwHeight,0,0,0,dwHeight,szBuf,lpBITMAPINFO,0//この関数どんだけ引数あるんだよwwwmes statredraw 1/* 関数や構造体の定義はこちらtypedef struct tagBITMAPINFO {(44byte)=dim ***,11BITMAPINFOHEADER bmiHeader;//下記参照(40byte)RGBQUAD bmiColors[1]; //RGBQUADはDWORD(4byte)} BITMAPINFO;typedef struct tagBITMAPINFOHEADER {//(40byte)long=4 WORD=2 DWORD=4DWORD biSize;LONG biWidth;LONG biHeight;WORD biPlanes;WORD biBitCount;DWORD biCompression;DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant;} BITMAPINFOHEADER;int SetDIBitsToDevice(HDC hdc, // デバイスコンテキストのハンドルint XDest, // 転送先長方形の左上隅の x 座標int YDest, // 転送先長方形の左上隅の y 座標DWORD dwWidth, // 転送元長方形の幅DWORD dwHeight, // 転送元長方形の高さint XSrc, // 転送元長方形の左下隅の x 座標int YSrc, // 転送元長方形の左下隅の y 座標UINT uStartScan, // 配列内の最初の走査行UINT cScanLines, // 走査行の数CONST VOID *lpvBits, // DIB ビットからなる配列CONST BITMAPINFO *lpbmi, // ビットマップ情報UINT fuColorUse // RGB 値またはパレットインデックス);*/// szBuf = (char *)lpBinfo + sizeof(BITMAPINFOHEADER) + nClr * sizeof(RGBQUAD);//ncrの値は色数だが0だとフルカラーなのでよし