首页 > 系统相关 >Windows编程系列:图形编程基础2

Windows编程系列:图形编程基础2

时间:2024-04-08 10:58:07浏览次数:41  
标签:200 Windows WM 编程 int hdc 坐标 图形 绘制

通过函数BeginPaint画图

1、创建一个Windows桌面应用程序

 

2、找到WM_PAINT消息的处理函数,添加代码如下:

1 case WM_PAINT:
2     {
3         PAINTSTRUCT ps;
4         HDC hdc = BeginPaint(hWnd, &ps);
5         TextOut(hdc, 10, 20, L"HelloWorld", 10);  //绘制文本 
6         Ellipse(hdc, 50, 50, 200, 200);           //绘制椭圆
7         EndPaint(hWnd, &ps);
8     }
9     break;

 

这里主要用到了TextOut和Ellipse函数来进行文本绘制和椭圆绘制。

TextOut函数声明如下:

1 BOOL TextOutW(
2   [in] HDC     hdc,
3   [in] int     x,
4   [in] int     y,
5   [in] LPCWSTR lpString,
6   [in] int     c
7 );

参数说明:

[in] hdc

设备上下文的句柄。

[in] x

系统用于对齐字符串的引用点的 x 坐标(以逻辑坐标表示)。

[in] y

系统用于对齐字符串的引用点的 y 坐标(以逻辑坐标表示)。

[in] lpString

指向要绘制的字符串的指针。 字符串不需要以零结尾,因为 cchString 指定字符串的长度。

[in] c

lpString 指向字符串的长度(以字符为单位)。

 

返回值:

成功,返回非0,失败,返回0

 

Ellipse函数声明如下:

1 BOOL Ellipse(
2   [in] HDC hdc,
3   [in] int left,
4   [in] int top,
5   [in] int right,
6   [in] int bottom
7 );

参数说明:

[in] hdc

设备上下文的句柄。

[in] left

边界矩形左上角的 x 坐标(以逻辑坐标表示)。

[in] top

边界矩形左上角的 y 坐标(以逻辑坐标表示)。

[in] right

边界矩形右下角的 x 坐标(以逻辑坐标表示)。

[in] bottom

边界矩形右下角的 y 坐标(以逻辑坐标表示)。

 

返回值:

成功,返回非0,失败,返回0

 

3、运行效果

 

验证BeginPaint只用于无效区域的绘图

1、创建一个Windows桌面应用程序

2、在WM_LBUTTON消息处理函数中,产生一个从(100,100)到(200,200)的无效区域范围,添加代码如下:

 case WM_LBUTTONDOWN:
 {
     RECT rect{ 100,100,200,200 };
     InvalidateRect(hWnd, &rect, FALSE);
     bDown = TRUE;
 }
     break;

3、在WM_PAINT的消息处理函数中,从(0,0)到(400,400)进行画线,

 1     case WM_PAINT:
 2         {
 3             PAINTSTRUCT ps;
 4             HDC hdc = BeginPaint(hWnd, &ps);
 5             if (bDown)
 6             {
 7                 MoveToEx(hdc, 0, 0, NULL);  //移动到(0,0)位置
 8                 LineTo(hdc, 400, 400);      //绘制从(0,0)到(400,400)的线
 9             }
10             EndPaint(hWnd, &ps);
11         }
12         break;

4、由于无效区域只在(100,100)到(200,200),所以当鼠标按下时只有这个区域会进行绘制,运行效果如下

 5、如果此时改变窗口大小,会使整个客户区无效,就能绘制出完整的线,效果如下

 

 

以定时间隔进行绘制

 

标签:200,Windows,WM,编程,int,hdc,坐标,图形,绘制
From: https://www.cnblogs.com/zhaotianff/p/18120634

相关文章

  • Windows 系统下,软件在运行时通知阻止关机
    官方相关文档:https://learn.microsoft.com/zh-cn/windows/win32/shutdown/shutdown-changes-for-windows-vistahttps://learn.microsoft.com/zh-cn/windows/win32/api/processthreadsapi/nf-processthreadsapi-setprocessshutdownparametershttps://learn.microsoft.com/zh-cn/w......
  • Visual Studio 2022插件的安装及使用 - 编程手把手系列文章
          这次开始写手把手编程系列文章,刚写到C#的Dll程序集类库的博文,就发现需要先介绍VisualStudio2022的插件的安装及使用,因为在后面编码的时候会用到这些个插件,所以有必要先对这个内容进行介绍。      其实笔者使用的VisualStudio2022的插件不多,因为有些插件......
  • VS+QT编程找不到新增UI文件控件对象的问题
    转载自:VS写Qt项目时,ui界面拖拽的控件代码找不到引用的解决办法_vsqt中ui下的组件没有-CSDN博客1.保存Ui文件在拖拽控件之后,Ctrl+S2.重新编译ui文件鼠标右键选择要编译的UI文件,找到编译 3.右键项目,重新扫描解决方案 ......
  • Linux编程中进程的概念和环境变量
    目录概述1认识进程1.1进程的定义1.2进程状态1.3进程的调用2进程环境2.1进程ID2.2父进程与子进程2.3UID和GID2.4环境变量2.4.1通过main函数参数获取环境变量2.4.2environ全局变量获取环境变量2.4.3getenv()函数获取环境变量2.5环境变量的作用3......
  • adb工具安装——windows
    1、工具包下载下载地址:https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn 2、工具包解压解压后进入platform-tools文件下,并copy此路径 3、环境变量配置系统属性-高级-环境变量在系统变量path中添加拷贝的路径 4、cmd中验证安装情况在......
  • 入门级Python编程题(8)洛谷《大象喝水》
    题目描述一只大象口渴了,要喝 2020 升水才能解渴,但现在只有一个深 ℎh 厘米,底面半径为 r 厘米的小圆桶(h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。Update:数据更新,这里我们近似地取圆周率 π=3.14。输入格式输入有一行:包行两个整数,以一个空格分开,分别表示......
  • Ascend C编程模型与范式
    并行计算架构抽象指令流、信号流、数据流的基本概念指令流:指令流是指在计算过程中,指令的执行顺序。在并行计算架构中,如何安排指令流以最大化并行度和资源利用率是一个关键的设计问题。信号流:信号流涉及到的是在硬件电路中,信号(数据、控制信号等)如何在不同的组件和模块之间......
  • 第四个OpenGL程序,vector 向量 (矩阵变换之 旋转,缩放)后续 绘制多个 图形
    效果: 代码main.cpp#include<iostream>#include<glad/glad.h>#include<glfw3.h>#include"Shader.h"#defineSTB_IMAGE_IMPLEMENTATION#include<stb_image.h>#include<glm/glm.hpp>#include<glm/gtc/matrix_transfo......
  • [算法前沿]--022-使用 StarCoder 创建一个编程助手
    文章目录StarCoder调优测试StarCoderBigCode开发的StarCoder,这是一个在一万亿的token、80多种编程语言上训练过的16B参数量的模型。训练数据多来自GitHub上的issues、使用Git提交的代码、JupyterNotebook等等。得益于对企业友好的许可证、长度为8......
  • FL Studio Producer Edition 2024直接安装版(Windows Mac)免激活
    今天为大家展示了FLStudio24.0.99.4077ProducerEdition2024年最新完整汉化版安装激活教程,今天让我们看一看还有哪些新变化?FLStudio24.0.99.4077ProducerEdition全称FruityLoopsStudio2024ProducerEdition,就是大家熟悉的水果编曲软件,一个全能的音乐制作软件,......