#include <GdiPlus.h>
#pragma comment(lib, "GdiPlus.lib")
using namespace Gdiplus;
class mygdiplus { GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; public: mygdiplus() { GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); } ~mygdiplus() { GdiplusShutdown(gdiplusToken); } };
Rect rect(20, 20, 326, 326);
Graphics grpx(hdc);
Image* pImage = new Image(TEXT("a1.png"));
//Image* pImage = Gdiplus::Image::FromFile(TEXT("a1.png"));
grpx.DrawImage(pImage,rect);
case WM_PAINT: { hdc = BeginPaint(hWnd, &ps); /*Image image(L"a1.png"); Graphics graphics(hdc); graphics.DrawImage(&image, 0, 0);*/ //GdiplusStartupInput gdiplusStartupInput; //ULONG_PTR gdiplusToken; //GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); Rect rect(20, 20, 326, 326); Graphics grpx(hdc); Image* pImage = new Image(TEXT("a1.png")); //Image* pImage = Gdiplus::Image::FromFile(TEXT("a1.png")); grpx.DrawImage(pImage,rect); delete pImage; // shut down - only once per process //GdiplusShutdown(gdiplusToken); EndPaint(hWnd, &ps); return 0;
#include <windows.h> #include <GdiPlus.h> #pragma comment(lib, "GdiPlus.lib") using namespace Gdiplus; class mygdiplus { GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; public: mygdiplus() { GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); } ~mygdiplus() { GdiplusShutdown(gdiplusToken); } }; LRESULT CALLBACK MyWinMain(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);//回調函數(消息的) class cWNDCLASSEX { public: cWNDCLASSEX(HINSTANCE h, int n) :hInstance(h), nCmdShow(n) {}; //WNDCLASSEX wndclass; void cj(); private: int nCmdShow; HINSTANCE hInstance; //WNDCLASSEX wndclass; }; void cWNDCLASSEX::cj() { WNDCLASSEX wndclass; HBRUSH hBrush = ::CreateSolidBrush(RGB(236, 236, 236)); HWND hWnd; wndclass.cbClsExtra = 0; wndclass.cbSize = sizeof(wndclass); wndclass.cbWndExtra = 0; wndclass.hbrBackground = hBrush; wndclass.hCursor = 0; wndclass.hIcon = 0; wndclass.hIconSm = 0; wndclass.lpfnWndProc = MyWinMain; wndclass.lpszClassName = TEXT("Leo"); //注冊窗口時候要的名字,作為參數 wndclass.lpszMenuName = 0; //菜單名字 wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.hInstance = hInstance; if (RegisterClassEx(&wndclass) == false) { //MessageBox(NULL, "注冊失敗", "提示", MB_OK); //return 0; } hWnd = CreateWindow( TEXT("Leo"), TEXT("Small Test"), WS_OVERLAPPEDWINDOW|WS_VSCROLL, 0, 200, 500, 500, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); MSG msg; while (::GetMessage(&msg, 0, 0, 0)) { ::TranslateMessage(&msg); //將得到的消息翻譯 ::DispatchMessage(&msg); //翻譯來的消息發送 } } int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { cWNDCLASSEX a1(hInstance, nCmdShow); a1.cj(); return 0; } LRESULT CALLBACK MyWinMain(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)//回調函數(消息的) { //HBRUSH m_hbr = CreateSolidBrush(RGB(255, 0, 0)); HDC hdc; //設備描述表句柄 PAINTSTRUCT ps;//繪制窗口 //RECT rect; mygdiplus mygdiplusS; switch(uMsg) { case WM_PAINT: { hdc = BeginPaint(hWnd, &ps); /*Image image(L"a1.png"); Graphics graphics(hdc); graphics.DrawImage(&image, 0, 0);*/ //GdiplusStartupInput gdiplusStartupInput; //ULONG_PTR gdiplusToken; //GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); Rect rect(20, 20, 326, 326); Graphics grpx(hdc); Image* pImage = new Image(TEXT("a1.png")); //Image* pImage = Gdiplus::Image::FromFile(TEXT("a1.png")); grpx.DrawImage(pImage,rect); delete pImage; // shut down - only once per process //GdiplusShutdown(gdiplusToken); EndPaint(hWnd, &ps); return 0; } case WM_CLOSE: //自動退出 ::PostQuitMessage(0); break; } return DefWindowProc(hWnd, uMsg, wParam, lParam); //返回消息的默認處理 }