问题标签 [onpaint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何创建反向png图像?
我正在创建在我的底座上绘制的 png 图像,从底座我可以保存一个 png 图像,供您参考
这是单色透明图像,现在我如何反转这个图像,比如填充任何颜色的 png,真实图像部分应该是透明的,有没有可能?
位细节:所以透明将变为不透明,有填充的地方将变为透明
visual-c++ - OnPaint() 函数中的 MemDC
我的 OnPaint() 函数调用了其他几个绘图函数。
DrawCoordianteSystem 示例:
我现在想避免使用 CMemDC 闪烁。但是,我无法让它正常工作。有人可以告诉我如何实施 CMemDC 吗?
谢谢
c# - 长时间卡在函数(OnPaint)中时在表单上显示更新的最简单方法
第一次运行我的程序时,我在 OnPaint 函数中加载了一些需要很长时间的东西,我需要一种方法来显示我的进度。我已经有了进展的东西,但我只是不知道最简单的方法来展示它。
想要要么
当长时间停留在 OnPaint 功能中时保持表单响应的东西,我正在更改标题名称以显示进度,并且我希望表单保持响应!
弹出其他易于创建的内容以显示进度
顺便说一句,我只加载它 OnPaint 因为我希望显示表单,以便用户知道程序正确打开。否则表单加载时什么都不会发生,用户可能会认为程序甚至没有打开。
c++ - 具有背景颜色的编辑框不显示文本
我使用 Win32 C++ 创建了编辑框。我对它进行了子类化并覆盖了 OnPaint 方法,在其中我用一些背景颜色填充它。
现在,如果我输入一些文本,我将看不到任何文本,但我可以看到光标移动。
如果我不放任何背景颜色,我可以在编辑框中看到文本。
知道为什么我没有收到带有背景颜色的文本吗?
c# - 显示消息框时不调用 OnPaint
在我们的项目中,我创建了一个表单并如下运行它:
在这种形式中,我们需要绘制一些东西,因此它的 OnPaint 方法被覆盖并且通常没有问题,但是当我们显示消息框或表单时永远不会调用 OnPaint:
或者
所以当用户拖动消息框时,会留下痕迹,因为背景不能重绘。有谁知道为什么以及如何解决这个问题?
c# - 孩子继承父母的外貌
我使用ContainerControl作为基础创建了一个简单的自定义面板。我添加了自定义属性来创建边框和渐变背景。如果我覆盖 OnPaint 和 OnPaintBackground,则父级的所有子控件都会继承渐变和边框样式。作为一种解决方法,我使用了父母 BackgroundImage 属性,它工作正常,但有一些随机的怪癖。必须有更好的方法来解决这个问题,但我没有找到解决方案。是否有任何通过 Interop 或其他 C# 方法来解决此问题的 Window API 函数?如果是这样,请提供一个例子。
编辑!这是被复制的样式(丑陋的例子,但很重要):
编辑 2!这是一个简单的硬编码 ContainerControl,没有所有属性、设计器属性等。
c# - 调用 OnPaint 时,Infragistics UltraGrid 上的“索引超出了数组的范围”
我已将网格的 DataSource 绑定到我从另一个线程更新的 BindingSource 对象。我写了以下代码:
我发生了两件事:1. Invoke 从未被调用(我猜 Ultragrid 知道如何处理它) 2. 当我在更新数据时玩屏幕(鼠标悬停/调整大小)时 - 我收到以下信息例外:
指数数组的边界之外。
任何人都知道可能是什么问题?我试图将 lock(this) 放在 base.OnPaint(pe) 周围,但没有帮助。
c# - 如何正确获取 WinForms Button 控件以绘制自定义文本
我正在尝试创建一个自定义 winforms 按钮控件,该控件将允许通过旋转属性旋转按钮文本。我大部分时间都在工作,但它非常笨拙,我想知道正确的方法。
特别是现在文本重绘的行为很奇怪。如果控件被移出屏幕,然后缓慢地移回文本上,则文本要么变得非常混乱(例如只绘制了一半),要么完全消失,直到鼠标悬停。显然我做错了什么,但无法弄清楚是什么。
我从按钮控件继承并覆盖其 OnPaint 方法。
这是代码:
所以我的主要问题是如何解决文本重绘问题?
此外,我对上述代码还有一些其他问题/评论:
起初,文本显示了两次,一次在默认位置,一次在旋转位置。我认为这是因为在
base.OnPaint
调用该方法时首先绘制文本。如果是这种情况,我该如何防止最初绘制文本?我的解决方案是在使用布尔值调用之前覆盖文本字符串并清除它
base.OnPaint
,这不是我特别满意的解决方案。我应该在最后处理 PaintEventArgs
e.dispose
吗?我想我不确定 PaintEventArgs 对象是如何处理的。
提前致谢!
附言。这是我的第一篇文章/问题,所以如果我无意中忽略了一些礼仪或规则,我提前道歉。
c# - 托管 UserControl 的 StatusStrip 无法调用 UserControls OnPaint 事件
我们有一个简单的用户控件,当我们在表单中使用它时可以正常工作,但是当我们尝试通过此方法将它托管到我们的 StatusStrip 中时,永远不会调用 OnPaint 事件。MSDN 文档声明这“应该”工作,但我们什么也没看到,并确认 OnPaint 事件永远不会被调用。:
c# - 在绘制表格后,子控件不会自己重新绘制
我正在制作一个没有 FormBorderStyle 的自定义表单。在表单中,我有一个停靠在表单顶部的面板。面板右侧有一些按钮。
我为表单重写了 OnPaint 以为其绘制边框,当我调整表单大小时,面板上的按钮仍在其位置。我尝试使用 form.Invalidate() 但没有任何反应。
对不起,我不允许在这里张贴图片。
这是表单的代码