先来介绍几个画矩形的函数:

DrawFocusRect():画一个焦点矩形;
Rectangle():用当前选定的画笔描绘矩形,并用当前选定的画刷填充;
DrawEdge():用指定的样式描绘一个矩形的边框;
RoundRect():用当前选定的画笔画一个圆角矩形,并用当前选定的画刷填充。

今天用的是DrawFocusRect()函数,函数原型如下

Private Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect"
(
ByVal hDC As Long,
lpRect As RECT
) As Long

hDc: Long   //设备的句柄

lpRect: RECT结构,绘制矩形的坐标。

返回值为0,表示失败,不为0,则成功

示例:绘制矩形

Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
'类型声明
Private Declare Function DrawFocusRect Lib "user32" (ByVal hdc As Long, lpRect As RECT) As Long
Dim Flag As Boolean
Dim Start As Boolean
Dim Pos As RECT
Dim tempPos As RECT
Private Sub Command1_Click()
Flag = True
'开始绘图
End Sub
Private Sub Command2_Click()
Flag = False
Picture1.Cls
'结束绘图
End Sub
Private Sub Form_Load()
Flag = False
Start = False
'禁止绘图
Me.ScaleMode = 3
Me.Picture1.ScaleMode = 3
'设置对象坐标的度量单位为像素
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Flag Then
Start = True
Pos.Left = X
Pos.Top = Y
Else
Start = False
End If
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Start Then
DrawFocusRect Me.Picture1.hdc, Pos
'擦除原有焦点矩形
Pos.Right = X
Pos.Bottom = Y
DrawFocusRect Me.Picture1.hdc, Pos
'绘制新的焦点矩形
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Start Then
DrawFocusRect Me.Picture1.hdc, Pos
'擦除原有焦点矩形
Pos.Right = X
Pos.Bottom = Y
DrawFocusRect Me.Picture1.hdc, Pos
'绘制新的焦点矩形
Start = False
End If
End Sub

转载于:https://www.cnblogs.com/delphi2014/p/4035271.html

VB API 之 第十一课 绘制矩形相关推荐

  1. canvas基础-绘制矩形(1)

    1.canvas基础知识 canvas元素是HTML5中新增的一个重要的元素,专门用来绘制图形,不过canvas本身不具备画图的能力,在页面中放置了canvas元素,就相当于在页面中放置了一块矩形的& ...

  2. NeHe OpenGL教程 第二十一课:线的游戏

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. html5绘制矩形动画,HTML5下绘制矩形教程

    绘制矩形 上一节,我们使用lineto()方法绘制一个封闭的矩形.其实,canvas的api提供了rect()方法可以绘制矩形.rect()方法是路径方法,它会把指定的矩形添加到当前路径的子路径中.它 ...

  4. HTML5 Canvas中绘制矩形

    绘制矩形 上一节,我们使用lineTo()方法绘制一个封闭的矩形.其实,canvas的API提供了rect()方法可以绘制矩形.rect()方法是路径方法,它会把指定的矩形添加到当前路径的子路径中.它 ...

  5. 实践数据湖iceberg 第二十一课 flink1.13.5 + iceberg0.131 CDC(测试成功INSERT,变更操作失败)

    系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...

  6. html5绘制矩形动画,HTML5 Canvas中绘制矩形实例

    本文翻译自Steve Fulton & Jeff Fulton HTML5 Canvas, Chapter 2, "The Basic Rectangle Shape". ...

  7. H5canvas(绘制矩形,绘制圆形,绘制线段,绘制文字,绘制曲线)

    Canvas简介 canvas 最早由Apple引入WebKit,用于Mac OS X 的 Dashboard,后来又在Safari和Google Chrome被实现. 基于 Gecko 1.8的浏览 ...

  8. Java第十一课——多线程实现飞机大战

    Java第十一课--多线程实现飞机大战 一.补充讲解一下线程 在第九课的基础上补充两点: 1.启动线程使用start()方法而不直接使用rin()方法,因为线程是一直重复执行的,调用run方法只会执行 ...

  9. OpenCv——5鼠标绘制矩形

    1.目的:鼠标绘制矩形 2.关键API介绍:setMouseCallback,为指定窗口设定鼠标回调函数 rectangle矩形绘制 3.main函数 Rect rect_angle = Rect(0 ...

最新文章

  1. 2020年女人体重表,看看你是不是标准的模特体重
  2. java thread类_java多线程之Thread类
  3. 数据库对象管理 (表)
  4. 【蓝桥杯单片机】【51拓展】PCA寄存器配置实现硬件输出PWM
  5. 还债速度果然快,罗永浩限高令已再度解除
  6. 2014年3月新鲜出炉的最佳 JavaScript 工具库
  7. Spring源码探究:容器
  8. Binary String Constructing(CodeForces - 1003B)
  9. 【数字化常识】浅谈互联网企业的利器——“网络效应”
  10. RuntimeError: generator raised StopIteration(python带我起飞报错)
  11. Xilium.CefGlue与CEF库的版本匹配关系
  12. 元宇宙时空——元宇宙是什么
  13. 嘘!市面上短视频(douyin)“去水印”的工具原来是这样实现的
  14. 华为计算机平台芯片,华为连发两款AI芯片,计算力远超谷歌及英伟达
  15. handler中的handler.removecallbacks和handler.removemessages的用法
  16. (2022 IV) RCBEV
  17. 什么是企业邮箱星标联系人?
  18. wpf中textblock竖立显示文本
  19. Leaflet中如何限制地图的拖动范围
  20. 保研文书——中文简历

热门文章

  1. Codeforces Round #529 (Div. 3) F. Make It Connected(最小生成树)
  2. Linux的vx开头的文件,linux文件系统简述
  3. matlab中对伺服电机,基于Matlab的伺服电机Modbus通讯研究
  4. 记录 之 cat 和 awk gsub 的使用
  5. 为一个优秀的C++程序员
  6. TCP传输-出现差错的解决办法
  7. 家庭记账软件 —— Java
  8. php裁剪图片白边,php缩略图填充白边的示例代码
  9. 怎样取消无线配置服务器,如何 去掉无线配置服务器
  10. atom 代码都是白色 怎么显示颜色_IBC1.0完成,ATOM为什么没涨?