Windows窗体Paint()事件

4 C 编程学习——窗体Paint事件处理程序 阅读详情

当我们在一个windows窗体作图,在窗体的构造函数中写如下代码

或在一个Button的Click事件中写如下代码:

运行程序可以得到所绘图形,但当我们将窗体最小化或用东西遮住窗体时,然后再恢复它,刚刚绘制的图形就消失了。

问题发生的原因是,如果窗体的一部分被隐藏了,Windows通常会立即删除与其中显示的内容相关的所在信息。

解决方法是重写OnPaint():

或者在Windows的的Paint事件中写入

C#窗体绘制基本理解 C#windows窗体应用程序窗口绘制简单理解 本文简单以Form_paint事件绘制统计直方图为例作为例子讲解。 其他控件的(例如panel等容器)的paint事件类似,不做详述。 首先理解窗体的布局 窗体的坐标系 窗体的坐标是类似X,Y坐标轴的,但是Y轴是倒着的,像这样: 窗体的绘制或者说更新非常频繁 鼠标对于控件聚焦啊,各种文本框的change啊,所以需要设置特定 阅读详情

相关推荐

C语言实现窗体程序,DevC++ 窗体应用

DevC++ 窗体应用,C语言窗体程序 对于很多学习C语言的同学来说,平时自己写的都是控制台程序,一个黑板版,很难受。 今天教大家用C,写出一个窗体exe。 效果 创建一个文件,扩展名.c,然后把源码复制上去。 修改时,把自己要绘制的内容放入第三行draw函数里面就可以啦。 好吧,直接上源码: #include <string.h> #include <windows.h> void draw(HWND hwnd) { HDC hdc; PAINTSTRUCT p

雨季余静的博客 8153

4.C#编程学习——窗体Paint事件处理程序

4.C#编程学习——窗体Paint事件处理程序 源码 usingSystem; usingSystem.Drawing; usingSystem.Windows.Forms;   classPaintEvent {     publicstaticvoid Main()     {         Form form = newForm();         form.

badman250的专栏 3万+

Windows SDK自绘窗体及标题栏实现教程

本文还有配套的精品资源,点击获取 简介:本篇介绍如何利用软件开发工具包(SDK)在Windows平台上创建自定义的窗体和标题栏。开发者可以不依赖于系统的默认样式,而是通过编程控制窗口的绘制过程,实现独特的视觉效果和行为。这需要深入理解Windows消息机制,掌握GDI函数的使用,以及在特定环境下自定义事件处理逻辑,如在无边框窗口中实现拖动功能。实现时还需考虑兼容性、性能、系...

weixin_30299319的博客 1655

Winform panel控件的Paint事件一直触发的问题

panel控件持续重绘

xieziren的博客 1450

COMSOL电磁仿真案例——感应线圈

COMSOL电磁建模仿真案例——感应线圈

冲击10w 6万+

ndnSIM学习笔记(一)

在接下来的一段时间要用ndnSIM来做自己的仿真网络,需要系统的学习相关内容,以下为内容记录。1.安装      1.1核心依赖(必需的)             • python &gt;= 2.6             • libsqlite3             • libcrypto++             • pkg-config             • Boost lib...

gaonjzzz的博客 2985

【c#窗体绘图2】picturebox的refresh方法和paint方法

前文介绍到c#窗体绘图实质上都是在画布上进行工作,本节课原本是要介绍如何创建一个画布以及如何使用,但是转念一想,在这之前,需要先介绍一下picturebox的refresh方法以及paint方法,uu们才能更加理解后续内容,如果有着急的uu不想看这节也可以直接跳过。

m0_56339807的博客 4210

Jenkins中文显示不全?三步搞定Locale插件+汉化包的正确安装姿势

本文针对Jenkins界面中文显示不全问题,提供从原理到实战的深度解决方案。文章详细解析了Locale插件与中文语言包的核心机制,并分步指导如何通过配置JVM环境、正确安装插件及执行深度排查,彻底解决汉化顽疾,实现Jenkins界面的完美中文显示。

weixin_42611310的博客 259

1.5 窗体中如何实现paint事件

我们不用系统自动生成代码,开始建立一个空项目,在项目属性中设置为WINDOWS应用程序,在引用中分别引入下面三个命名空间,练习自已多敲敲代码。usingSystem;usingSystem.Drawing;usingSystem.Windows.Forms;namespacePaintEvent_space{    classPaintEvent    {        publicstaticvoidMain()        {            Formfrm = newForm();      

hckoyb的专栏 2266

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 807

【CANoe】CANoe的 I/O功能-以VN1640A为例

Canoe的 I/O功能-以VN1640A为例

星Yeah 的博客 7875

WINFORM画笔及绘图paint事件窗体展现

winform实现画笔功能需要使用pen对象,此篇文章本人用的paint绘图事件在窗体上进行绘画,其中省去了Bitmap。

qq_3517289697的博客 965

问答式AI vs 智能体(Agent):它们有什么不同?

你肯定用过 ChatGPT 或文心一言——问它一个问题,它给你一个答案。AI Agent(AI智能体)。很多人搞不清楚:它们不都是"AI"吗?有什么区别?这篇文章用一个最简单的类比,彻底讲清楚这两者的本质差异。框架特点适合人群AutoGPT完全自主执行任务,链式思考开发者MetaGPT模拟团队协作,多角色分工开发者LangChain最流行的Agent开发框架开发者Dify可视化无代码搭建Agent非技术用户Coze(扣子)字节跳动出品,国内最易用普通用户WorkBuddy。

Johnny2004的专栏 447

c# 定义四边形_C# 绘制多边形

如下所示。GraphicsName.DrawPolygon(PenName,PointArray[]);在上面的代码中,GraphicsName关键字表示Graphics对象的名称,PenName关键字表示画笔的名称;PointArray关键字表示集成所有端点的数组名称。下面通过一个实例,来说明怎么绘多边形,操作步骤如下所示:(1)打开MicrosoftVisualStudio2010。...

weixin_39734020的博客 979

52、Power BI Desktop 数据筛选全攻略

本文全面介绍了Power BI Desktop中各类数据筛选功能的使用方法,涵盖布尔型数据筛选、高级文本筛选、Top N筛选、可视化级别、页面级别和报告级别筛选等核心操作。通过详细步骤、流程图和实际案例,帮助用户深入理解筛选器的层级关系与综合应用技巧,并提供常见问题解决方案,助力高效精准的数据分析与可视化展示。

linux6sysadmin的博客 110

MFC C++ 中实现跨平台(WindowsLinux)的远程桌面控制

**输入捕获**:在显示窗口中捕获鼠标/键盘事件(重写 `OnLButtonDown`、`OnMouseMove`、`OnKeyDown` 等),将事件坐标/键值通过网络发送到服务端。- **显示窗口**:使用 `CStatic` 或自定义 `CWnd` 派生类显示远程桌面图像(通过 `StretchDIBits` 绘制解压后的像素数据)。// 转换为相对坐标。- **Wayland 支持**:需使用 `libweston` 或 `xdg-desktop-portal`,较复杂,建议优先支持 X11。

寒寒豆豆软件公司的博客 155

c#重绘form的边框

记住,form的FormBorderStyle选择为None; private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; System.Drawing.Rectangle rect = new System.Drawi...

qq_36583051的博客 1284

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C# Windows 程序设计 学习笔记2 Paint事件

using System; using System.Collections.Generic; using System.Windows.Forms; using System.Drawing; namespace Drawing { class FormSize:Form { /// /// 应用程序的主入口点。

希望记录下自己的一点一滴,慢慢成长。。 1385

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# Winform圆形窗体和圆形按钮

圆形窗体 找到窗体的Paint事件,写入以下代码: private void form1_Paint(object sender, PaintEventArgs e) { #region 圆形窗体 System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Dr...

小寒请指教 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Windows窗体消息接收 - WndProc

本文转自:https://dotblogs.com.tw/yc421206/2011/01/23/20971 Windows窗体主要是由事件所驅動,使用者所操作的動作或是系統核心觸發的中斷都是交由Windows先行處理,再透過Windows Message機制傳送給窗体應用程式,在Windows裡我們不需要直接與硬體溝通,也不允許直接溝通,通通都是要透過Windows核心協調分配,我們只要專心處理Windows所觸發的事件就可以了;比如我們在鑑盤按下任意鍵,鍵盤所按下的中斷訊號被Windows接收後,會判

CJyoung的博客 1961

VB窗体启动、关闭时涉及的主要事件

一、启动窗体时,事件顺序:1Form_Initialize Initialize 事件即初始化事件,任何窗体生命周期的第一个事件都是Initialize。只要在项目中使用了窗体的名称,或在Visual Basic 6.0创建实际窗口及其控件之前,都会发生initialize事件。可以在initialize事件处理过程中正确地初始化窗体变量,它在Load事件之前发生。此事件一般用在类、模块、用户...

xiaoheliushuiya 1559

如何创建非矩形的Windows窗体?

在窗体的Paint事件中设定。注意不仅可以让窗体非矩形显示,也可以让所有的控件非矩形显示,因为都有Paint事件 private void Form1_Paint(object sender, PaintEventArgs e)        ...{            System.Drawing.Drawing2D.GraphicsPath shape = new Syst

丰志强的专栏 1053

基于.NET的Windows窗体编程之WinForms事件简介

控件通过基类 Control提供 60 多个事件。其中包括 Paint 导致绘制控件的事件、与显示窗口相关的事件(如 Resize 和 Layout 事件)以及低级别鼠标和键盘事件。某些低级别事件由Control合成为语义事件,例如Click和DoubleClick。

VHZ62kXJu的博客 218

c#控件事件 windows

1、窗体 常用方法 1)Show方法:该方法的作用是让窗体显示出来,其调用格式为:窗体名.Show(); 其中窗体名是要显示的窗体名称。 (2)Hide方法:该方法的作用是把窗体隐藏出来,其调用格式为: 窗体名.Hide(); 其中窗体名是要隐藏的窗体名称。 (3)Refresh方法:该方法的作用是刷新并重画窗体,其调用格式为: 窗体名.Refresh(); 其中窗体名是要

Janet_1994的博客 1081

sendmessage WM_PAINT带背景的窗体

//sendmessage WM_PAINT带背景的窗体private{ Private declarations }Bitmap:TBitmap;procedure WMPaint(var msg:TWMPAINT);Message WM_PAINT;procedure TForm1.WMPaint(var msg:TWMPAINT);begininheri...

weixin_30293079的博客 332

游戏开发 XNAGame-007 窗体Paint事件

form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace XNAGame_007 { pu

虾米大王的学习历程 286
上一篇: 创建和读写文件的一些简单方法
下一篇: C# 命名规则
highplayer
博客等级 码龄18年 69粉丝 86原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值