gdi相关内容

Windows屏幕截图可缩放

我正在尝试获取Windows 10计算机上每个屏幕的屏幕截图. 我的系统有2个监视器,这些监视器具有多个DPI. 我的主显示器的“比例和布局"设置为200%. 我的中学 将“比例和布局"设置为100%. 我正在尝试使用C#拍摄每个监视器的屏幕截图. 但是我的缩放监视器报告了错误的坐标: 一切都减半. 结果,主监视器的屏幕截图仅为屏幕区域的1/4(宽度/2,高度/2). 这是我的代码 ..
发布时间:2020-11-13 02:09:52 C#/.NET

是否可以直接从GDI +位图生成BitBlt?

是否可以使用BitBlt直接复制出GDI +位图而不使用GetHBitmap? GetHBitmap较慢,因为除了BitBlt副本之外,它还制作了整个映像的新副本,并且速度比BitBlt副本慢,并且必须处理给定的HBITMAP.图片很大. 是否有一种方法可以指向BitBlt以使用原始GDI +图像的像素数据? 编辑:我可以找到GDI +位图像素数据在内存中的位置的指针.我可以创建 ..
发布时间:2020-11-13 02:09:43 其他开发

关于GDI/GDI +坐标兼容性?

在同时使用GDI和GDI +进行绘图时,我遇到了问题.页面转换-尤其是缩放-似乎在两者之间有些偏离.除了SetViewportExt和SetWindowExt之外,GDI上下文的哪些属性会影响输出的缩放? 该代码几乎完全将GDI用于其绘图,但在少数需要其功能(半透明)的情况下使用GDI +.它使用SetViewportExt,SetWindowExt和SetViewportOrg启用缩放和滚 ..
发布时间:2020-11-13 02:09:38 C/C++开发

如何获得TextRenderer使用的确切文本边距

System.Windows.Forms.TextRenderer.DrawText方法根据flags参数的值呈现带或不带左右填充的格式化文本: TextFormatFlags.NoPadding-将文本紧紧地放在边界框内, TextFormatFlags.GlyphOverhangPadding-添加一些左右边距, TextFormatFlags.LeftAndRightPadding ..
发布时间:2020-11-13 02:09:36 C#/.NET

GDI +性能技巧

有人知道关于GDI +性能的可靠(而且希望是广泛的)书籍/网站吗? 例如,我最近遇到了这项出色的实验.我最近还注意到,Graphics.FillPath()是方法,比Graphics.DrawPath()快得多.我很想知道我还缺少其他哪些重要信息. 商誉, 大卫 解决方案 嗯.如果您需要绘制路径的轮廓,那么知道FillPath比DrawPath快是没有好处的! 优化GDI ..
发布时间:2020-11-13 02:09:33 C#/.NET

MeasureString始终认为空格适合

我正在尝试对字符串进行命中测试(我想从x偏移量获取char索引),但是我遇到了度量字符串的问题. 这实际上是我正在使用的代码 StringFormat sf = new StringFormat(StringFormatFlags.MeasureTrailingSpaces | StringFormatFlags.NoWrap | StringFormatFlags.Line ..
发布时间:2020-11-13 02:09:29 C#/.NET

获取所有与我的窗口重叠的窗口

我想找到所有与我的窗口完全或部分重叠的窗口(位于其顶部). 作为一种特殊情况,如果我有两个窗口句柄(hWnd1和hWnd2),我想确定hWnd2是否部分或完全重叠于hWnd1. 有问题的窗口是桌面窗口(不是同一过程中的子级/兄弟级). 解决方案 使用GW_HWNDPREV重复调用GetWindow()来迭代可能与您重叠的窗口.使用GetWindowRect()检查这样的窗口是否实际上与您的 ..
发布时间:2020-11-13 02:09:26 其他开发

GetDIBits中的HDC是什么?

我正在使用GetDIBits将位图数据从与屏幕兼容的设备上下文中转换为某种格式的DIB.我给人的印象是,当源位图为每像素8位或更少时,DC仅对于合成颜色表是必需的.由于我的源位图是完整的32位彩色图像,并且这是一个一次性程序,并且我没有方便的屏幕DC,因此我将HDC参数设置为NULL.这没用.我抓住屏幕DC并将其传递进去后,它确实开始工作. 这让我想知道为什么GetDIBits需要设备上下文 ..
发布时间:2020-11-13 02:09:15 其他开发

如何测量对角线距离点?

我可以计算水平和垂直点,但无法弄清楚如何使用对角线点计算距离.有人可以帮我吗? 这是我的水平和垂直测量的代码: private float ComputeDistance(float point1, float point2) { float sol1 = point1 - point2; float sol2 = (float)Math.Abs(Ma ..
发布时间:2020-11-13 02:09:12 C#/.NET

根据BackColor反转文本颜色

我有一个ProgressBar控件,类似于以下两个: 第一个已正确绘制.如您所见,第二个只有一个0,应该有两个,但是另一个看不见,因为ProgressBar的ForeColor与TextColor相同.有什么方法可以将下面的ProgressBar用石灰涂成黑色,将背景涂成黑色? 解决方案 您可以先绘制背景和文本,然后使用 using System; using System.Draw ..
发布时间:2020-11-13 02:09:09 C#/.NET

在C#中绘制所有非客户区域

例如,我正在寻找用C#绘制非客户区域的方法,而不是矩形作为表单,我想要一个椭圆形(这是一个例子),但是我该怎么做呢? 我基本上想绘制我所有的非客户区域,并且我想这样做必须重写一些方法,但是哪些方法呢? 我找到了一个使用'xaml'的示例,我认为这是Windows Presentation Foundation应用程序,但是我不太了解. 解决方案 m0sa提供了对于WinForm ..
发布时间:2020-11-13 02:09:07 C#/.NET

使用Win32 API找出图标资源中的图标数量

我有一个 *.ico 文件,其中包含多个大小不同的图标,这些图标链接到我的可执行文件作为资源.我使用此资源将应用程序的图标设置为RegisterClassEx(),即: wcx.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); 除此之外,我还想将此资源中的所有单个图标转换为ARGB像素阵列.通过在GetIconInfo()返 ..
发布时间:2020-11-13 02:08:02 其他开发

一劳永逸:如何在Windows API中获得完全透明的复选框,按钮,单选按钮等,而不是黑色背景?

首先,对不起,如果我在这里听起来很自大/粗鲁. 好的,所以现在每个人都已经碰到了这一点(我希望);我只是在任何地方都没有找到任何适当的答案.我们从Common Controls 6清单开始,然后 case WM_CTLCOLORSTATIC: if (/* window has WS_EX_TRANSPARENT */) { SetBkMode((HDC) wP ..
发布时间:2020-11-13 02:07:58 其他开发

C#从脚本名称获取字体

我需要使用给定的脚本名称来获取字体(System.drawing.Font).例如,如果我输入为"CourierNewPSMT",则应该加载Courier字体. 类似地,如果输入"Arial-Black",则应加载"Arial Black"字体. 任何想法? 注意:"Arial-Black"是"Arial Black"字体的后记名称. "CourierNewPSMT"是"Cour ..
发布时间:2020-11-09 20:16:24 C#/.NET

在Visual Basic 2010中嵌入自定义字体FOT文本框的使用

好,我正在处理一个问题,试图在文本框中嵌入LCD型真型字体.对于某些背景,如果将字体安装到系统上,然后将其作为文本框的字体类型加载,则可以显示液晶字体.但是,它不能用作应用程序中的嵌入式字体.我正在Windows 7盒子上的Microsoft Visual Studio 2010中使用Visual Basic中的Windows窗体应用程序. 在将字体存储为资源文件并将属性设置为嵌入资源之后, ..
发布时间:2020-11-09 20:15:42 其他开发

WPF:使用随"AddFontMemResourceEx"安装的字体仅用于处理

在WPF中,我们希望使用ttf字体作为嵌入式资源,而无需将其复制或安装到系统中,也无需实际将其写入磁盘.没有内存泄漏问题. 以下解决方案均未详述: 如何在WPF中包括外部字体无需安装的应用程序 在这种情况下 可用,因为WPF内存泄漏在此附近: 使用Font时WPF TextBlock内存泄漏 只能通过var font = new FontFamily("Roboto") ..
发布时间:2020-11-09 19:36:01 C#/.NET