gdi

不重复启动程序

不羁岁月 提交于 2020-04-01 04:27:59
1 static class Program 2 { 3 /// <summary> 4 /// アプリケーションのメイン エントリ ポイントです。 5 /// </summary> 6 [STAThread] 7 static void Main() 8 { 9 Process instance = RunningInstance(); 10 if (instance == null) 11 { 12 //启用可视样式 13 Application.EnableVisualStyles(); 14 //在应用程序范围内设置控件显示文本的默认方式(可以设为使用新的GDI+ , 还是旧的GDI) 15 //true使用GDI+方式显示文本, 16 //false使用GDI方式显示文本. 17 Application.SetCompatibleTextRenderingDefault(false); 18 //在当前线程上开始运行标准应用程序消息循环,并使指定窗体可见 19 Application.Run(new _1_02_Menu()); 20 } 21 else 22 { 23 // 二重起動はできません。 24 string strMessage = Msg.GetMessageInfo("---", ""); 25 MessageBox.Show(strMessage, "-

Qt: QPainter + GDI in the same widget?

对着背影说爱祢 提交于 2020-03-16 07:36:08
问题 I'm trying to use the method described here to use a QPainter and GDI calls on the same widget. Unfortunately this tutorial seem to have been written on an earlier version of Qt and now it does not work. I set the WA_PaintOnScreen flag and reimplement paintEngine() to return NULL. Then on the paintEvent() I create a QPainter, use it and then use some GDI calls to paint a bitmap. The GDI calls work fine but the QPainter does nothing. I get the following error on the console: QPainter::begin:

Invert Text Color depending on BackColor

∥☆過路亽.° 提交于 2020-03-13 06:14:07
问题 I have a ProgressBar control like the following two: The first is painted properly. As you can see, the second only has one 0, it's supposed to have two but the other cannot be seen because ProgressBar's ForeColor is the same as the TextColor . Is there a way I can paint the text in black when the ProgressBar below is painted in Lime and paint the text in Lime when the background is black? 回答1: You can first draw the background and text, then draw the foreground lime rectangle using PatBlt

GDI+ 在Delphi程序的应用 -- 图像饱和度调整

自闭症网瘾萝莉.ら 提交于 2020-03-08 16:40:53
GDI+ 在Delphi程序的应用 -- 图像饱和度调整 图像的饱和度调整有很多方法,最简单的就是判断每个象素的R、G、B值是否大于或小于128,大于加上调整值,小于则减去调整值;也可将象素RGB转换为HSV或者HSL,然后调整其S部分,从而达到线性调整图象饱和度的目的。这几种方法我都测试过,效果均不太好,简单的就不说了,利用HSV和HSL调整饱和度,其调节范围很窄,饱和度没达到,难看的色斑却出现了。而Photoshop的饱和度调整调节范围大多了,效果也好多了,请看下面25%饱和度调整时几种方法的效果对比图: 可以看出,都是25%的饱和度调整,Photoshop的调节幅度显得小一些(平坦些),效果也好多了,而HSV和HSL均出现了色斑,某些颜色也严重失真,尤其是HSV方式。 据网上和书上的介绍,Photoshop的是利用所谓HSB颜色模式实现色相/饱和度调节的,可是就是没有看到其算法,我只得自己进行琢磨,首先发现Photoshop色相/饱和度命令中的明度调节好象是“独立”的,也就是它不需要转换为所谓的HSB模式,直接靠白色和黑色遮照层进行调节,具体原理和代码可看我写的《 GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整 》一文。后来,却又发现Photoshop的饱和度调节好象是“半独立的”,什么意思呢?就是说Photoshop的色相

GDI+ 在Delphi程序的应用 -- Photoshop色相/饱和度/明度功能

眉间皱痕 提交于 2020-03-03 18:27:19
GDI+在Delphi程序的应用 – Photoshop色相/饱和度/明度功能 本文用GDI+实现Photoshop色相/饱和度/明度功能,参照我的其它有关GDI+在 Delphi程序的应用的文章,代码也可供TBitmap使用。 有些人不喜欢,或者不太懂Delphi的BASM代码,所以本文给出纯PAS代码。须说明的是,纯PAS代码效率较低,不适合实际应用。喜欢C/C++的,可以看本人文章《 C++实现Photoshop色相/饱和度/明度功能 》,除了语言不同,其它都一样。 有关Photoshop饱和度调整原理可参见《 GDI+ 在Delphi程序的应用 -- 图像饱和度调整 》,明度调整原理可参见《 GDI+ 在Delphi程序的应用 -- 仿Photoshop的明度调整 》。 下面是一个完整的Delphi程序,Photoshop色相/饱和度/明度功能纯PAS代码包含在其中: [delphi] view plain copy print ? unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls, Gdiplus; type TForm1 = class

.NET3.5 GDI+ 图形操作1

跟風遠走 提交于 2020-03-01 20:28:08
前言: 本文章抄袭自本人刚刚买的《ASP.NET 3.5从入门到精通》这本书,此书介绍在 http://www.china-pub.com/44991 ,本文章95%与此书的内容完全一样,另5%是我改正一些失误以后加上去的,该书原示例代码只能运行在IE核心的浏览器上,非IE核心浏览器上运行会出现些显示问题,本人更改了其中的一些代码。本文章经历昨晚本人五个小时的手打而成(且还未打完,下班回去继续打,想不到我的打字速度退化得这么快,郁闷!!!),俗话说:好记性不如烂笔头,把书的内容手打出来,对手,对脑,都有好处!!! 第 10 章 图形操作 图形化界面是 Windows 操作系统最重要的特性之一,微软以此迅速打败对手,赢得了用户的认可。计算机图形学一直是计算机科学体系中的重要内容,在 Windows 编程史上,图形操作也一直是核心开发技术之一。本章将介绍如何在 ASP.NET 的 Web 应用程序中 GDI+ 绘图。 10.1 图形基础 10.1.1 GDI+ 介绍 读者可能听说过 Windows GDI ( Graphics Device Interface , 图形装置界面),这是 Windows 操作系统的一个图形包,用于支持 Windows 操作系统中的图形界面,它也帮助开发人员在不考虑特定设备细节的情形下在计算机上进行绘图操作。比如就图形输出来说

《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第一节:画直线

痞子三分冷 提交于 2020-02-19 13:41:43
今天正式开一本新书,《C# GDI+ 破镜之道》,同样是破镜之道系列丛书的一分子。 关于GDI+呢,官方的解释是这样的: GDI+ 是 Microsoft Windows 操作系统的窗体子系统应用程序编程接口 (API)。 GDI+ 是负责在屏幕和打印机上显示的信息。 顾名思义,GDI+ 是包含 GDI 与早期版本的 Windows 图形设备接口的后续版本。 好,两个关键信息: 窗体子系统应用的编程接口 图形设备接口 充分说明了GDI+的应用场景与用途。需要了解更多呢,就去查阅一下吧。 本书的开始,不打算去解释一些枯燥的概念,比如什么是Graphics、Brush、Pen甚至是Color;第一境毕竟是基础,我打算先带大家玩儿,等玩儿开了、玩儿嗨了,咱们再来总结这些概念,就会相当好理解了。咱们就先从最基本的画元素开始吧:) 本节,主要是说道一下如何使用GDI+画直线。体育老师说了,两点确定一条直线,那么,画直线的关键呢,就是确定两个点了。音乐老师也说了,直线呢,是向两边无限延长的,木有尽头。那我们还是别挑战无极限了,所以,咱们在这里说的画直线呢,其实是画线段。 这是我建立的一个简单的WinForm窗体(FormDrawLines)。 摆了几个按钮,用来绘制各种不同的线条以及展示不同线条的特性。 两个辅助按钮,用来切换线条的颜色和窗体是否使用双缓冲。 1 using System; 2

《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第一节:画直线

情到浓时终转凉″ 提交于 2020-02-19 10:49:50
今天正式开一本新书,《C# GDI+ 破镜之道》,同样是破镜之道系列丛书的一分子。 关于GDI+呢,官方的解释是这样的: GDI+ 是 Microsoft Windows 操作系统的窗体子系统应用程序编程接口 (API)。 GDI+ 是负责在屏幕和打印机上显示的信息。 顾名思义,GDI+ 是包含 GDI 与早期版本的 Windows 图形设备接口的后续版本。 好,两个关键信息: 窗体子系统应用的编程接口 图形设备接口 充分说明了GDI+的应用场景与用途。需要了解更多呢,就去查阅一下吧。 本书的开始,不打算去解释一些枯燥的概念,比如什么是Graphics、Brush、Pen甚至是Color;第一境毕竟是基础,我打算先带大家玩儿,等玩儿开了、玩儿嗨了,咱们再来总结这些概念,就会相当好理解了。咱们就先从最基本的画元素开始吧:) 本节,主要是说道一下如何使用GDI+画直线。体育老师说了,两点确定一条直线,那么,画直线的关键呢,就是确定两个点了。音乐老师也说了,直线呢,是向两边无限延长的,木有尽头。那我们还是别挑战无极限了,所以,咱们在这里说的画直线呢,其实是画线段。 这是我建立的一个简单的WinForm窗体(FormDrawLines)。 摆了几个按钮,用来绘制各种不同的线条以及展示不同线条的特性。 两个辅助按钮,用来切换线条的颜色和窗体是否使用双缓冲。 1 using System; 2

怎样旋转矢量图形?

血红的双手。 提交于 2020-02-18 09:40:03
怎样旋转矢量图形? Delphi / Windows SDK/API http://www.delphi2007.net/DelphiMultimedia/html/delphi_20061113152916155.html 知道的话,能给发个实例程序(pyxyu@126.com),谢了! 矢量图形??你的矢量图形是如何实现的,想描述一个矢量图,大概有无数种具体实现吧。 如果不清楚他的实现,最笨的办法是先转换成位图,然后根据要旋转的法则逐个象素的复制移动,最后再转换回去。 谁知道,给我也发一份 email : lzd123@126.com thank you ! gdi+轻松实现抗锯齿、缩放、旋转等功能 看看计算机图形学吧。 乘以一个矩阵就可以了。。 直接使用我们的产品吧! TCAD http://www.codeidea.com/cn/ gdi mark 来源: https://www.cnblogs.com/delphi2007/archive/2008/11/05/1326863.html

Equality of GDI+ Regions

╄→гoц情女王★ 提交于 2020-02-04 20:45:50
问题 Why does the assertion fail in the following code? Why aren't regions a and b equal? Region a = new Region(new RectangleF(0.0f, 0.0f, 10.0f, 10.0f)); Region b = new Region(); b.MakeEmpty(); b.Union(new RectangleF(0.0f, 0.0f, 10.0f, 10.0f)); Debug.Assert(a == b, "Regions not equal"); 回答1: From what I can see, System.Drawing.Region does not override Object 's implementation of Equals() . Therefore your == call is using ReferenceEquals and simply telling you a and b are not the same object. Try