`
xieoy
  • 浏览: 15158 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

001

01 
阅读更多
#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数据手册中文版.pdf

    STM8S001 微控制器数据手册 STM8S001 是一款 8 位微控制器,具有 16 MHz 的高性能核心、8 KByte 的闪存、128 字节的数据 EEPROM、10 位 ADC、3 个定时器、UART、SPI、I2C 等多种外设。该微控制器适用于各种应用场景...

    STM8S001例程

    STM8S001例程是一系列针对STM8微控制器的程序示例,这些示例主要展示了STM8S001型号芯片的各种外设功能如何通过库函数进行操作。STM8系列是意法半导体(STMicroelectronics)推出的一款8位微控制器,其具有高性能、...

    基于Arduino的Air001芯片PA7引脚控制彩灯的库

    标题中的“基于Arduino的Air001芯片PA7引脚控制彩灯的库”表明这是一个使用Arduino开发平台,针对Air001微控制器设计的库,主要用于通过PA7引脚来控制彩灯。Air001芯片可能是一款具有特定功能的单片机,而这个库则是...

    SPL06-001代码

    【SPL06-001代码】是一个针对MINI无人机和DIY大四轴项目的驱动程序代码,这个代码库提供了必要的控制逻辑和接口,使得这些小型飞行设备能够有效地运行和控制。SPL06-001标签是这个特定代码的标识符,可能代表一种...

    合宙Air001串口空闲中断+DMA接收

    合宙Air001是一款基于LPC11U24微控制器的开发板,由合宙公司设计,常用于嵌入式系统开发。在本文中,我们将深入探讨如何利用Air001的串口功能实现空闲中断和DMA(直接内存访问)接收,以及与之相关的编程和配置技巧...

    -J-STD-001HA &amp;-A-610HA_EN automotive addendum

    -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...

    WMB001N编程器固件

    在本案例中,我们关注的是"品胜 Pisen WMB001N 编程器"的固件文件。这个设备主要用于对各种电子设备进行软件升级或故障恢复,特别是对于那些因为固件问题导致无法正常工作的设备,被称为"救砖"。 标题中的"WMB001N...

    MSi001 Datasheet R3P3.pdf

    根据提供的文件内容,以下是关于“MSi001 Datasheet R3P3.pdf”的详细知识点总结: Mirics MSi001集成电路上述文件介绍了MSi001这款集成电路上市以来所支持的全部信息。MSi001是一种多频段硅调谐器芯片,是世界上第...

    Hi3516AV200和Hi3519V101最新sdk Hi3519_V101R001C01SPC050

    Hi3516AV200和Hi3519V101 包含版本如下: ... Hi3519_V101R001C01SPC001 以下Hi3519_V100 SDK: Hi3519_V100R001C01SPC030 Hi3519_V100R001C01SPC020 Hi3519_V100R001C01SPC010 Hi3519_V100R001C01SPC002

    xx.zip.001文件的解压方法

    在了解如何使用命令行来解压后缀为.zip.001的文件之前,我们首先需要了解.zip.001文件是一种分卷压缩文件。通常,当一个文件非常大,超过了压缩软件设定的最大压缩包大小限制,或者用户希望将大文件分割成多个小文件...

    LG001S說明書

    1. LG001S产品介绍: LG001S是Nortel Networks生产的一款SIP网关设备,该设备为HKBN 2B定制开发,配备了1个SIP接口。用户手册版本为1.2(草案),目前该文档仍处于草案状态,最终版本可能包含更新的内容和修正。 2....

    dojo_part001_001_001

    dojo_part001_001_001dojo_part001_001_001dojo_part001_001_001

    气压传感器SPL06-001.pdf

    气压传感器 SPL06-001 是一款微型化的数字气压传感器,广泛应用于无人机等设备。文档中的信息涉及产品概述、产品描述、特性、典型应用、定义、引脚配置与功能块图、规格参数、功能描述、应用案例、寄存器映射、...

    JEDEC JEP001-2A:2018 FOUNDRY PROCESS QUALIFICATION GUIDELINES –

    **JEDEC JEP001-2A标准详解** JEDEC(Joint Electron Device Engineering Council)是全球微电子行业的领先标准组织,它制定了一系列规范来确保半导体产品的互操作性和可靠性。JEP001-2A是JEDEC发布的一项重要指南...

    JEDEC JS-001-2023 JOINT JEDEC_ESDA STANDARD FOR

    《静电放电敏感度测试——人体模型(HBM)——组件级别》JS-001-2023标准详解 JS-001-2023是JEDEC(固态技术协会)与EOS/ESD协会联合制定的最新静电放电敏感度测试标准,专门针对人体模型(Human Body Model,简称HBM...

    Cat-001 1.2版本, Asterix 欧标,内行人士都懂得

    根据提供的文件信息,我们可以深入探讨Asterix标准及其在雷达数据交换中的应用,特别是针对1.2版的Cat-001(Category 001)标准。 ### 标题和描述解读 #### 标题:“Cat-001 1.2版本,Asterix欧标,内行人士都懂得...

    图集05zj001(建筑构造用料做法)

    图集05ZJ001《建筑构造用料做法》针对的是建筑中各种结构和构件的用料标准和构造做法,包括屋面、墙体、楼地面、楼梯等部分。标准图集为建筑设计师、施工人员和监理人员等提供了统一的技术参考依据,有助于提高建筑...

    ANSI/ESDA/JEDEC JS-001-2023静电放电敏感度测试-人体模型(HBM)-器件级别-完整英文电子版(56页)

    完整英文电子版 ANSI/ESDA/JEDEC JS-001-2023 Electrostatic Discharge Sensitivity Testing Human Body Model (HBM) -Component Level (静电放电敏感度测试 - 人体模型(HBM)- 器件级别)。这个标准的目的(目标)...

    SMTC 5 500 001 汽车零件和材料中禁用-限用危险物质

    标题“SMTC 5 500 001 汽车零件和材料中禁用-限用危险物质”涉及的是汽车制造业中一个重要的环保和安全标准,它规范了汽车零部件及材料在制造过程中对有害物质的使用限制。这个标准通常与欧盟的RoHS( Restriction ...

    chunghop万能遥控器Q-001说明书及代码表

    《全面解析:chunghop万能遥控器Q-001操作手册与代码表》 在现代家庭中,空调已经成为不可或缺的电器之一,而拥有一款高效的万能遥控器则能让空调操控更加便捷。chunghop万能遥控器Q-001便是其中的佼佼者,其强大的...

Global site tag (gtag.js) - Google Analytics