初步理解OnMouseDown和OnMouseUp

本学习来自MicroSoft Windows 程序设计,第304页

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Drawing;
 6 using System.Windows.Forms;
 7 
 8 namespace OnMouseDownDemo
 9 {
10     class Program:Form
11     {
12         Point ptBeg, ptEnd;
13 
14         static void Main(string[] args)
15         {
16             Application.Run(new Program());
17         }
18         public Program()
19         {
20             Text = "OnMouseDown Demo";
21             ForeColor = SystemColors.WindowText;
22             BackColor = SystemColors.Window;
23         }
24         protected override void OnMouseDown(MouseEventArgs e)
25         {
26             if (e.Button == MouseButtons.Left)
27             {
28                 ptBeg = ptEnd = new Point(e.X,e.Y);
29 
30                 Graphics grfx = CreateGraphics();
31                 grfx.DrawRectangle(new Pen(Color.Red),e.X,e.Y,30,40);
32                 //Invalidate();
33             }
34         }
35         protected override void OnMouseUp(MouseEventArgs e)
36         {
37             if (e.Button == MouseButtons.Left)
38             {
39                 ptBeg = ptEnd = new Point(e.X, e.Y);
40 
41                 Graphics grfx = CreateGraphics();
42                 grfx.DrawRectangle(new Pen(Color.Red), e.X, e.Y, 60, 80);
43                 //Invalidate();
44             }
45         }
46     }
47 }

初步理解OnMouseDown和OnMouseUp

以上情况是:左键点击后立即松开

初步理解OnMouseDown和OnMouseUp

以上情况是:先点击左键(不松开)会出现“小矩形”,而后在不松开左键的情况向右下角拖动,松开左键,就会出现“大矩形”。

由以上Demo试验可以看出,左键点下和左键松开是对应不同的e.x和e.y坐标的。

发布者:糖太宗,转载请注明出处:https://www.qztxs.com/archives/science/technology/8222

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年5月21日 下午3:10
下一篇 2022年5月21日 下午3:59

相关推荐

  • QQ好友状态,QQ群友状态,究竟是推还是拉?

    状态同步,有好友状态的同步,有群友状态的同步,有的需要实时同步,有的能够容忍延时。任何脱离业务的架构设计都是耍流氓,不同场景下,状态同步,究竟是推送还是拉取呢? 用户的在线状态,分为客户端状态(端),服务端状态(云)两种形态。   什么是服务端状态? 服务端状态,主要分为在线online和离线offline,不同的状态,对于不同的业务处理流程可能不同。例如对...

    2022年5月15日
    6600
  • msfvenom 使用

    木马连接方式 正向连接(bind) 是我主动去连接别人机器上的某个端口,很显然,这样极易被对方防火墙拦掉反向连接(reverse)是让别人机器上的某个端口上的流量主动连到我机器上的某个端口上,起码暂时对各类应用层防火墙的穿透效果还是蛮不错的  msfvenom 常用选项123456789-l 列出所有可用的payload,编码器,空指令……-p 指...

    技术 2022年5月28日
    7600
  • 我想,成为一个架构师!!!

    成为一个合格的架构师,一定会面临以下九大场景,80个架构问题。 画外音: (1)文章较长,建议收藏; (2)文章底部有视频版本;   【第一章:技术选型】 创业初期架构方案怎么选型? (1)要考虑业务的需求与特点,初期往往“快速实现”更重要,此时系统的特点是请求量小,数据量小,服务器资源也非常有限; (2)这个阶段最重要的选型依据是:合伙人熟悉什么技术栈,使...

    2022年5月15日
    1200
  • 虽然小象被淘汰了,但我学会了这种O(n)的排序算法

    时间复杂度为O(n)的排序,除了昨天介绍的基数排序(Radix Sort),还有计数排序(Counting Sort)。   计数排序的适用范围? 待排序的元素在某一个范围[MIN, MAX]之间。 画外音:很多业务场景是符合这一场景,例如uint32的数字排序位于[0, 2^32]之间。   计数排序的空间复杂度? 计数排序需要一个辅助空间,空间大小为O(...

    2022年5月11日
    2300
  • 很多人问,到底要不要转管理?

    想要成为一名管理者,并不是做个决定这么简单,做管理需要一套完全不同的技能。好的架构师,好的技术专家,并不一定代表一个好的管理者。   如何确定自己是不是适合管理岗位呢?可以先问问自己下面五个问题。   问题1:你的兴趣在哪,技术专家,还是带团队? 有没有想过自己五年后在做什么,届时是否工作得开心?   做技术专家,带团队做事情,还是自己创业,搞清楚自己想要什...

    技术 2022年5月15日
    2500

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信