#include <windows.h>
#pragma comment(lib,"gdiplus.lib")
#include <gdiplus.h>
using namespace Gdiplus;
/*
//画一条直线
VOID OnPaint(HDC hdc)
{
Graphics graphics(hdc);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawLine(&pen, 45, 67, 200, 100);
}
*/
/*
//画字符串
VOID OnPaint(HDC hdc)
{
Graphics graphics(hdc);
SolidBrush brush(Color(255, 0, 0, 255));
FontFamily fontFamily(L"Times New Roman");
Font font(&fontFamily, 24, FontStyleRegular, UnitPixel);
PointF pointF(10.0f, 20.0f);
graphics.DrawString(L"Hello World!", -1, &font, pointF, &brush);
}
*/
/*
//画矩形
VOID OnPaint(HDC hdc)
{
Graphics graphics(hdc);
Pen blackPen(Color(255, 0, 0, 0), 5);
graphics.DrawRectangle(&blackPen, 10, 10, 100, 50);
}
*/
/*
//加载并显示图像
VOID OnPaint(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"D:\\13lhc-600.jpg");
graphics.DrawImage(&image, 20, 100);
}
*/
/*
//缩放并剪切图像
VOID OnPaint(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"D:\\13lhc-600.jpg");
UINT width = image.GetWidth();
UINT height = image.GetHeight();
// Make the destination rectangle 30 percent wider and
// 30 percent taller than the original image.
// Put the upper-left corner of the destination
// rectangle at (150, 20).
Rect destinationRect(150, 20, 1.3 * width, 1.3 * height);
// Draw the image unaltered with its upper-left corner at (0, 0).
graphics.DrawImage(&image, 0, 0);
// Draw a portion of the image. Scale that portion of the image
// so that it fills the destination rectangle.
graphics.DrawImage(
&image,
destinationRect,
0, 0, // upper-left corner of source rectangle
0.75 * width, // width of source rectangle
0.75 * height, // height of source rectangle
UnitPixel);
}
*/
//缩放时使用插值模式控制图像质量
VOID OnPaint(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"D:\\13lhc-600.jpg");
UINT width = image.GetWidth();
UINT height = image.GetHeight();
// Draw the image with no shrinking or stretching.
graphics.DrawImage(
&image,
Rect(10, 10, width, height), // destination rectangle
0, 0, // upper-left corner of source rectangle
width, // width of source rectangle
height, // height of source rectangle
UnitPixel);
// Shrink the image using low-quality interpolation.
graphics.SetInterpolationMode(InterpolationModeNearestNeighbor);
graphics.DrawImage(
&image,
Rect(10, 350, 0.6*width, 0.6*height), // destination rectangle
0, 0, // upper-left corner of source rectangle
width, // width of source rectangle
height, // height of source rectangle
UnitPixel);
// Shrink the image using medium-quality interpolation.
graphics.SetInterpolationMode(InterpolationModeHighQualityBilinear);
graphics.DrawImage(
&image,
Rect(250, 350, 0.6 * width, 0.6 * height), // destination rectangle
0, 0, // upper-left corner of source rectangle
width, // width of source rectangle
height, // height of source rectangle
UnitPixel);
// Shrink the image using high-quality interpolation.
graphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
graphics.DrawImage(
&image,
Rect(490, 350, 0.6 * width, 0.6 * height), // destination rectangle
0, 0, // upper-left corner of source rectangle
width, // width of source rectangle
height, // height of source rectangle
UnitPixel);
}
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, INT iCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASS wndClass;
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
// Initialize GDI+
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
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 = TEXT("GettingStarted");
RegisterClass(&wndClass);
hWnd = CreateWindow(
TEXT("GettingStarted"), // window class name
TEXT("Getting Started"), // 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);
}
GdiplusShutdown(gdiplusToken);
return msg.wParam;
} // WinMain
LRESULT CALLBACK WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(message)
{
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
OnPaint(hdc);
EndPaint(hWnd, &ps);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
} // WndProc
分享到:
相关推荐
STM8S001 微控制器数据手册 STM8S001 是一款 8 位微控制器,具有 16 MHz 的高性能核心、8 KByte 的闪存、128 字节的数据 EEPROM、10 位 ADC、3 个定时器、UART、SPI、I2C 等多种外设。该微控制器适用于各种应用场景...
STM8S001例程是一系列针对STM8微控制器的程序示例,这些示例主要展示了STM8S001型号芯片的各种外设功能如何通过库函数进行操作。STM8系列是意法半导体(STMicroelectronics)推出的一款8位微控制器,其具有高性能、...
标题中的“基于Arduino的Air001芯片PA7引脚控制彩灯的库”表明这是一个使用Arduino开发平台,针对Air001微控制器设计的库,主要用于通过PA7引脚来控制彩灯。Air001芯片可能是一款具有特定功能的单片机,而这个库则是...
【SPL06-001代码】是一个针对MINI无人机和DIY大四轴项目的驱动程序代码,这个代码库提供了必要的控制逻辑和接口,使得这些小型飞行设备能够有效地运行和控制。SPL06-001标签是这个特定代码的标识符,可能代表一种...
合宙Air001是一款基于LPC11U24微控制器的开发板,由合宙公司设计,常用于嵌入式系统开发。在本文中,我们将深入探讨如何利用Air001的串口功能实现空闲中断和DMA(直接内存访问)接收,以及与之相关的编程和配置技巧...
-J-STD-001HA/A-610HA: Automotive Addendum to .J-STD-001H Requirements for Soldered Electrical and Electronic Assemblies and I.PC-A-610H Acceptability of Electronic Assemblies J-STD-001HA/-A-610HA is...
在本案例中,我们关注的是"品胜 Pisen WMB001N 编程器"的固件文件。这个设备主要用于对各种电子设备进行软件升级或故障恢复,特别是对于那些因为固件问题导致无法正常工作的设备,被称为"救砖"。 标题中的"WMB001N...
根据提供的文件内容,以下是关于“MSi001 Datasheet R3P3.pdf”的详细知识点总结: Mirics MSi001集成电路上述文件介绍了MSi001这款集成电路上市以来所支持的全部信息。MSi001是一种多频段硅调谐器芯片,是世界上第...
Hi3516AV200和Hi3519V101 包含版本如下: ... Hi3519_V101R001C01SPC001 以下Hi3519_V100 SDK: Hi3519_V100R001C01SPC030 Hi3519_V100R001C01SPC020 Hi3519_V100R001C01SPC010 Hi3519_V100R001C01SPC002
在了解如何使用命令行来解压后缀为.zip.001的文件之前,我们首先需要了解.zip.001文件是一种分卷压缩文件。通常,当一个文件非常大,超过了压缩软件设定的最大压缩包大小限制,或者用户希望将大文件分割成多个小文件...
1. LG001S产品介绍: LG001S是Nortel Networks生产的一款SIP网关设备,该设备为HKBN 2B定制开发,配备了1个SIP接口。用户手册版本为1.2(草案),目前该文档仍处于草案状态,最终版本可能包含更新的内容和修正。 2....
dojo_part001_001_001dojo_part001_001_001dojo_part001_001_001
气压传感器 SPL06-001 是一款微型化的数字气压传感器,广泛应用于无人机等设备。文档中的信息涉及产品概述、产品描述、特性、典型应用、定义、引脚配置与功能块图、规格参数、功能描述、应用案例、寄存器映射、...
**JEDEC JEP001-2A标准详解** JEDEC(Joint Electron Device Engineering Council)是全球微电子行业的领先标准组织,它制定了一系列规范来确保半导体产品的互操作性和可靠性。JEP001-2A是JEDEC发布的一项重要指南...
《静电放电敏感度测试——人体模型(HBM)——组件级别》JS-001-2023标准详解 JS-001-2023是JEDEC(固态技术协会)与EOS/ESD协会联合制定的最新静电放电敏感度测试标准,专门针对人体模型(Human Body Model,简称HBM...
根据提供的文件信息,我们可以深入探讨Asterix标准及其在雷达数据交换中的应用,特别是针对1.2版的Cat-001(Category 001)标准。 ### 标题和描述解读 #### 标题:“Cat-001 1.2版本,Asterix欧标,内行人士都懂得...
图集05ZJ001《建筑构造用料做法》针对的是建筑中各种结构和构件的用料标准和构造做法,包括屋面、墙体、楼地面、楼梯等部分。标准图集为建筑设计师、施工人员和监理人员等提供了统一的技术参考依据,有助于提高建筑...
完整英文电子版 ANSI/ESDA/JEDEC JS-001-2023 Electrostatic Discharge Sensitivity Testing Human Body Model (HBM) -Component Level (静电放电敏感度测试 - 人体模型(HBM)- 器件级别)。这个标准的目的(目标)...
标题“SMTC 5 500 001 汽车零件和材料中禁用-限用危险物质”涉及的是汽车制造业中一个重要的环保和安全标准,它规范了汽车零部件及材料在制造过程中对有害物质的使用限制。这个标准通常与欧盟的RoHS( Restriction ...
《全面解析:chunghop万能遥控器Q-001操作手册与代码表》 在现代家庭中,空调已经成为不可或缺的电器之一,而拥有一款高效的万能遥控器则能让空调操控更加便捷。chunghop万能遥控器Q-001便是其中的佼佼者,其强大的...