/*★ OnPaint から DC を取得して画像を描画する 前田 稔 ★*/ #include #pragma comment(lib, "user32.lib") #pragma comment(lib, "gdi32.lib") #using #using #using using namespace System; using namespace System::Windows::Forms; using namespace System::Drawing; //フォームを作成するクラス ref class FormClass : public System::Windows::Forms::Form { private: public: //Constructor FormClass() { } virtual void OnPaint(PaintEventArgs ^e) override { HDC hdc = (HDC)(e->Graphics->GetHdc().ToInt32()); ShowBMP(hdc, "c:\\data\\test\\ayu.bmp"); e->Graphics->ReleaseHdc((System::IntPtr)hdc); } //★ BMP 画像を表示する HRESULT ShowBMP(HDC hdc, LPCSTR szBitmap) { HBITMAP hBmp; HDC hBmpDC; BITMAP bm; //ファイルからイメージをロード hBmp = (HBITMAP)::LoadImage(NULL,szBitmap,IMAGE_BITMAP,0,0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); if (hBmp==NULL) return FALSE; hBmpDC= ::CreateCompatibleDC(hdc); ::SelectObject(hBmpDC,hBmp); ::GetObject(hBmp,sizeof(bm),&bm); ::BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hBmpDC,0,0,SRCCOPY); ::DeleteDC(hBmpDC); ::DeleteObject(hBmp); return TRUE; } }; //★ main() 関数 int main() { Application::Run(gcnew FormClass()); return 0; }