当前位置:主页 > 聚焦 > > 正文

每日关注!一个最简单的窗口函数的解释 WinMain

时间: 2023-06-04 06:15:50 来源: 哔哩哔哩

代码解释写在了csdn上,链接:https://blog.csdn.net/m0_56376166/article/details/131019690?spm=1001.2014.3001.5502

#include <windows.h>

#include <gdiplus.h>


(相关资料图)

#pragma comment (lib,"Gdiplus.lib")

using namespace Gdiplus;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[] = TEXT("LoadJPEGImage");

HWND         hwnd;

MSG          msg;

WNDCLASS     wndclass;

wndclass.style = CS_HREDRAW | CS_VREDRAW;

wndclass.lpfnWndProc = WndProc;

wndclass.cbClsExtra = 0;

wndclass.cbWndExtra = 0;

wndclass.hInstance = hInstance;

wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);

wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

wndclass.lpszMenuName = NULL;

wndclass.lpszClassName = szAppName;

if (!RegisterClass(&wndclass))

{

MessageBox(NULL, TEXT("This program requires Windows NT!"),

szAppName, MB_ICONERROR);

return 0;

}

hwnd = CreateWindow(szAppName,                  // window class name

TEXT("Load JPEG Image"), // window caption

WS_OVERLAPPEDWINDOW,        // window style

CW_USEDEFAULT,              // initial x position

CW_USEDEFAULT,              // initial y position

CW_USEDEFAULT,              // initial x size

CW_USEDEFAULT,              // initial y size

NULL,                       // parent window handle

NULL,                       // window menu handle

hInstance,                  // program instance handle

NULL);                      // creation parameters

ShowWindow(hwnd, iCmdShow);

UpdateWindow(hwnd);

while (GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

static Image* pImage = NULL;

switch (message)

{

case WM_CREATE:

{

// 加载JPEG图像

pImage = Image::FromFile(L"image.jpg");

if (pImage->GetLastStatus() != Ok)

{

MessageBox(hwnd, L"Failed to load image.jpg", L"Error", MB_OK | MB_ICONERROR);

return -1;

}

break;

}

case WM_PAINT:

{

PAINTSTRUCT ps;

HDC hdc = BeginPaint(hwnd, &ps);

// 绘制图像

Graphics graphics(hdc);

graphics.DrawImage(pImage, 0, 0);

EndPaint(hwnd, &ps);

break;

}

case WM_DESTROY:

delete pImage;

PostQuitMessage(0);

return 0;

}

return DefWindowProc(hwnd, message, wParam, lParam);

}

————————————————

版权声明:本文为CSDN博主「m0_56376166」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/m0_56376166/article/details/131019690

关键词:

相关文章

每日关注!一个最简单的窗口函数的解释 WinMain

代码解释写在了csdn上,链接:https: blog csdn net m0_56376166 arti

来源:哔哩哔哩2023-06-04

这把高端局 | 极氪001千里续航套装交付宁德时代,问鼎全球纯电续航冠军

6月1日上午,极氪001WE版140kWh千里续航套装在宁德时代总部完成交付,

来源:搜狐汽车2023-06-04

三点水加个斤怎么读_三点水加个斤

1、一个三点水加个斤这个字是沂读音:[yí]部首:氵五笔:IRH。本文到此分

来源:互联网2023-06-04

【天天新要闻】东亚“领导力”的崛起:为什么外国比外国更受欢迎?

随着东亚地区当地经济的崛起,国外作为东亚地区的龙头地之一而备受瞩目

来源:檀烟说动漫2023-06-04

八开纸和a3纸的尺寸差多少_8开纸尺寸和a3一样大-今日快讯

1、你讲的这三种纸中,A3最大,尺寸是420*297。2、其实是8K纸,比A3小

来源:互联网2023-06-03