カッコよく言うとね、「外部ライブラリのリソースから画像を取得して表示」してるんだけどね、あんまりすごくないですw
カッコよく言うとね、「外部ライブラリのリソースから画像を取得して表示」してるんだけどね、あんまりすごくないですw
#include "kernel32.as"// #include "user32.as"// #include "Gdi32.as"//3つDLL使うの久しぶりだ #define RT_BITMAP 2 DLLNAME="ieframe.dll" LoadLibrary DLLNAME HDLL=stat ;pResourceName="Bitmap\\TRAVEL_PRESSED_XP_120.BMP" RESNAME="TRAVEL_PRESSED_XP_120.BMP"//リソースハッカーで居場所を突き止めた画像をセット FindResource HDLL, RESNAME, RT_BITMAP ; HRES=stat //LoadIcon HDLL,RESNAME SizeofResource HDLL,HRES SizeRES=stat LoadResource HDLL,HRES //戻り値はHGLOBAL グローバーるメモリにロード戻り値をLockResourceに渡すとBitMapのありか(=ポインタ)を教えてくれる hLrs=stat LockResource hLrs lpBITMAPINFO=stat dupptr BITMAPINFO,lpBITMAPINFO,44, dwWidth=wpeek(BITMAPINFO,4) dwHeight=wpeek(BITMAPINFO,8) mes dwWidth mes dwHeight szBuf=lpBITMAPINFO+40+0 SetDIBitsToDevice hDC,0,0,dwWidth,dwHeight,0,0,0,dwHeight,szBuf,lpBITMAPINFO,0//この関数どんだけ引数あるんだよwww mes stat redraw 1 /* 関数や構造体の定義はこちら typedef struct tagBITMAPINFO {(44byte)=dim ***,11 BITMAPINFOHEADER bmiHeader;//下記参照(40byte) RGBQUAD bmiColors[1]; //RGBQUADはDWORD(4byte) } BITMAPINFO; typedef struct tagBITMAPINFOHEADER {//(40byte)long=4 WORD=2 DWORD=4 DWORD 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だとフルカラーなのでよし