gdi相关内容

如何将一个窗口保持在另一个应用程序窗口的前面

我需要在所选应用程序的窗口顶部显示闪烁的边框(在我的示例中,该应用程序为cmd.exe).我为此使用了分层窗口.一切都正常,除了一件事:如果目标窗口被另一个窗口(如果另一个窗口在前景)覆盖,则无法将目标窗口(在我的情况下-cmd.exe)放在前面.当我最大化/最小化目标窗口时,它起作用,但是当目标窗口重叠时,它不起作用.我无法在任务栏中单击应用程序的图标来恢复. const COLORREF ..
发布时间:2020-11-13 02:20:04 C/C++开发

沿贝塞尔曲线定位图像

我们目前有一个动态图像,该图像上保留有根据用户输入创建的文本.该文本遵循贝塞尔曲线来定义其位置和旋转. 由于各种原因,由于字体需要非常具体,因此需要将文本更改为一组图像.因此,我们将为字母的每个允许字符使用一个PNG.因此,如果用户输入单词"TEST",则系统将拉出字母T,E,S和T,并将它们彼此相邻放置.这部分不是问题. 问题是迫使每个图像都遵循与使用graphics.DrawStr ..
发布时间:2020-11-13 02:20:00 C#/.NET

使用GDI将文字旋转90度

我想将文本绘制到GDI曲面上,并将此文本逆时针旋转90度.我更喜欢使用DrawText绘制文本,因为它支持回车.我尝试将字体与lfEscapement一起使用(请参见下面的代码),但是该行没有旋转-一条线被另一条线渲染.是否有可能旋转文本?还是不旋转而进行渲染并旋转整个设备上下文? 常规文本布局: 旋转(期望的结果): case WM_PAINT: { hdc = BeginPa ..
发布时间:2020-11-13 02:19:59 C/C++开发

如何在两个不相邻的区域上画线

我不知道GDI32中是否有任何方法可以在表格的两个不相邻区域(例如矩形)上绘制字符串?. 如果到达第一个矩形的边缘,则文本应自动分割,如示例图片所示. 感谢您的帮助. 解决方案 一个示例,使用两个Labels和一个TrackBar. TrackBar确定一个标签内的字符串位置,每当该字符串移动时,该位置就会在第二个Label上反映出来. 此级联效果是使用 Paint()事件. ..
发布时间:2020-11-13 02:18:56 C#/.NET

将一个DeviceContext的内容复制到另一个DeviceContext

我从未做过任何GDI编程,尽管在黑暗中拍摄了几张照片并搜索了文档,但我还没有找到将一个DC的内容复制到另一个DC的正确方法. 我目前的代码在下面.我不明白为什么它不起作用(创建后窗口仍然保持空白). SIZE srcSize; // ... Get size of source DC HDC destDC = ...; // from GetDC(myWindow), myWin ..
发布时间:2020-11-13 02:18:52 C/C++开发

在GDI中旋转矩形

我正在使用Windows GDI API ExtTextOut函数绘制这样的文本: ExtTextOut(hDC, 2000, 2000, 0, &stRect, PrintText, TextOutLen, aiCharCellDistances); 我正在尝试旋转文本,并且也确实在旋转文本.但是当我用颜色填充矩形时,我发现矩形并没有随文本一起旋转. 有没有办法旋转带有文本的矩形 ..
发布时间:2020-11-13 02:18:49 其他开发

CreateCompatibleDC(IntPtr.Zero)返回IntPtr.Zero

我为一个班级提供以下代码.这是一个类的初始化. 第三方DLL [DllImport("gdi32.dll")] public static extern IntPtr CreateCompatibleDC(IntPtr hdc); protected void initialize() { if (_initialized) ..
发布时间:2020-11-13 02:18:45 C#/.NET

无法使用GDI +保存TIF文件

我有一个vb.net应用,该应用选择并加载JPG文件 LoadedImage = Image.FromFile(InputImageName) 然后尝试使用GDI +将文件另存为TIF LoadedImage.Save(TIF_ImageName, ImageFormat.Tiff) 没有语法错误,但是保存失败 System.InvalidCastException ..
发布时间:2020-11-13 02:18:43 其他开发

GetRoundedRegion异常

我制作了一个带有圆角边缘的自定义按钮,为此我使用CreateRoundRectRgn,在绘画事件中,这被称为对所有边缘进行圆角处理,当我运行程序时,一切正常,直到大约一分钟后,然后我得到以下异常(p = 0的值): 要添加的一件事是,由于颜色淡入(闪烁),按钮每秒经历约50次绘画事件 这是我的绘画活动: protected override void OnPaint(Paint ..
发布时间:2020-11-13 02:17:41 C#/.NET

获得RGBA的BITMAPV5HEADER使A保持为255

我通过以下方式获取屏幕快照的字节数组,这是在ctypes中完成的,ctypes没有问题,如果我给它一个ctypes标签,那么ctypes会被人们弄糊涂,所以我简化了所有错误检查等,以向您显示该过程. CreateDC('DISPLAY', null, null, null); nWidth = GetDeviceCaps(hdcScreen, HORZRES); // 1280 // nu ..
发布时间:2020-11-13 02:17:39 其他开发

绘制折线会产生像素化线

我正在尝试创建自己的本机win32 C ++复选框,该复选框可以具有透明背景.这样做的目的是使窗口/小部件看起来与Windows XP样式复选框完全一样,只是它可以具有透明的背景. 我的问题:当我为文本框绘制刻度线时,“刻度线"看起来像是像素化和锯齿状的-请看下面的图片.它看起来不像实际的复选框打勾. 左边的复选框是我的,右边的是我尝试复制的默认窗口: 如何使刻度线平滑且没有像素化.我 ..
发布时间:2020-11-13 02:17:36 C/C++开发

Windows-GDI-在不修改绘图功能的情况下将屏幕DC缩放为打印机DC

我正在编写一个向用户显示文档的Windows应用程序.内容使用GDI功能绘制,所有内容均按预期显示在屏幕上. 现在我要打印此文档.我得到了打印机设备的上下文,并且所做的绘图与在屏幕上所做的完全相同.当然,打印的内容在打印页面的顶部显得很小.这种行为的原因对我来说很清楚,并在此处进行了充分说明: https://www.codeproject.com/Articles/764057 /G ..
发布时间:2020-11-13 02:17:28 其他开发

在WPF上用GDI图形绘制圆

我需要在WPF中的窗体上使用GDI图形绘制一个圆圈. 我无法使用Windows表单执行此操作,因此我添加了一个用法. 我不能使用WPF中的Elipse控件.我的老师叫我这样做. 这是我的代码: public void MakeLogo() { System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(Sy ..
发布时间:2020-11-13 02:17:25 C#/.NET

从BitmapSource删除Alpha

我使用BitBlt()和CreateBitmapSourceFromHBitmap()将窗口捕获为BitmapSource,可以在WPF应用程序的Image元素上显示该窗口.但是由于某种原因,它捕获的大多数应用程序都是透明的.这是正在发生的事件的源图像和捕获图像: (来源: umbc.edu ) 它是灰色的,因为它所在的窗口的背景是灰色的.无论我给窗口提供什么背景,都将显示出来. ..
发布时间:2020-11-13 02:16:18 C#/.NET

以一定的分辨率加载光标

我有两个游标资源.第一个[IDC_CURSOR1]包含三种不同的图像类型: 32x32,24 bpp 48x48,24 bpp 64x64,24 bpp 第二个[IDC_CURSOR2]仅包含一个: 48x48,24 bpp 如果我正在调用LoadCursor(hInst,IDC_CURSOR1),它将始终加载32x32版本,而我找不到加载48x48或64x64版本的方 ..
发布时间:2020-11-13 02:16:15 其他开发

设置窗口像素的正确方法(无闪烁)吗?

我正在努力寻找在WM_PAINT期间将纯RGBA值数组转储到Win32窗口的客户区中的正确方法.我有以下代码,但它似乎已经令人费解,甚至还没有完成: case WM_ERASEBKGND: return 1; case WM_PAINT: { PAINTSTRUCT paintInfo{}; HDC device = BeginPaint(window, &paintInfo); ..
发布时间:2020-11-13 02:16:08 C/C++开发