问题标签 [custom-draw]

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.

0 投票
1 回答
310 浏览

c# - 如何在 MS Chart 上自定义绘制光标句柄

谁能告诉我是否可以自定义绘制光标句柄(想不出更好的词),如下图所示?我已经用红色圆圈标记了它。

在此处输入图像描述

可以在图表两端之间向左或向右拖动水色倒三角形以移动光标。我不确定上图中使用的控件是否是 MSChart,但想知道我们是否可以在 MS 图表中进行操作。我遇到的困难是找出光标的确切位置,因为它仅与图表区域相关,而我要绘制的句柄位于图表区域之外。如何将图表区域位置转换为外部坐标?

谢谢你的帮助。

0 投票
2 回答
3280 浏览

c++ - MFC CListCtrl CustomDraw() 事件处理程序代码卡住

我目前遇到问题,一旦我将 CListCtrl 行涂成红色(代码卡住),我的 OnNMCustomdrawlistctrlvalues() 事件处理程序就被不间断地调用,导致我的应用程序在我尝试执行另一个事件时冻结,例如单击一个按钮。

我有以下代码:

结果是:

结果1

在 CListCtrl 中,如果我滚动到未涂成红色的区域,我的应用程序就可以了。

我不太确定如何阻止这种情况的发生......也许我需要另一种方法来动态地将一行画成红色?


编辑:我已将代码更改为以下,但遇到了这个问题(只有第 2 列和第 3 列被着色,但是当我重绘列表控件时,即向下滚动然后向上滚动,然后绘制所有列):

结果2


EDIT2:我更改为以下代码,但仍然遇到同样的问题:

结果3

0 投票
2 回答
782 浏览

android - 有没有办法在不使用路径的情况下用画布绘制填充区域?

我想知道是否有一种方法可以在不使用类和调用的情况下使用 Android Canvas 绘制填充区域(如填充多边形)Pathcanvas.drawPath(...)

我不想这样做的原因Path是因为我必须绘制非常大的数据集并且canvas.drawPath(...)没有硬件加速,因此速度很慢。

由于硬件加速,使用时的性能canvas.drawLines(...)要好得多,但是我还没有找到一种方法来绘制使用这种方法填充的多边形(即使线条全部连接)。

使用. paint.setStyle(Style.FILL)_drawLines(...)

有没有办法在不使用该方法的情况下绘制填充多边形Path

或者有没有其他方法可以提高性能Canvas

0 投票
0 回答
422 浏览

listview - 编写 Win32 ListView 派生的自定义窗口类时使用自定义(子)项目绘制的最佳方法

在列表视图中实现自定义(子)项目绘制的正常方法是在父类中处理 NM_CUSTOMDRAW 通知,并在那里进行绘制。

但是,我正在编写一个可重用的列表视图派生窗口类,并且希望避免强迫用户将通知反映到使用它们的任何实例化窗口。

我知道这样做的两种替代方法,但都有缺点

1:注册两个自定义窗口类,一个是从列表视图派生的,一个是实例化我的类所使用的。第二个类只是将自定义列表视图创建为子窗口以拦截所有通知,然后反映这些通知或将它们转发给其父窗口。缺点是:我还需要将所有发送到外部控件的外部消息转发给内部控件,或者通过自定义窗口消息暴露内部控件(类似于如何访问列表视图中的标题控件)。所有通知也必须转发给其父级。

2:控件可以继承其父窗口并在该阶段拦截 WM_NOTIFY 消息。缺点:这是一个坏主意,也是一种非常脆弱的做事方式。

或者: 3. 继续要求通知反射。

有没有更好的方法来通知自定义绘制而不是进行完全自定义绘制,或者是否有某种方式可以先进行完全自定义绘制并触发默认绘制,然后再绘制显示自定义数据的列的内容?

0 投票
2 回答
6947 浏览

android - 如何在Android中剪切矩形内的圆形路径

我已经阅读了 20 多个问题/答案,但我仍然无法得到我想要的。我想在矩形内切一个圆,如下所示:

在此处输入图像描述

这是我的代码:

我的背景 ( setARGB) 显示正确,但没有任何内容被剪裁。我还通过调用构造函数尝试了除强制软件光栅化Op之外的其他值REPLACE(正如我在某些 Android 版本上读到的clipPath不支持某些s) ,但无济于事。如何达到预期的效果?OpsetLayerType(LAYER_TYPE_SOFTWARE, null);

注意:我的最低 SDK 版本是 15,所以我不需要支持低于 4.0 的任何东西。

0 投票
1 回答
382 浏览

mfc - MFC CtreeCtrl CustomDraw CDIS_HOT 更改字体样式失败

0 投票
1 回答
164 浏览

java - 我可以自定义绘制 Jface TableColumn 标题吗?

我正在通过为列分配 OwnerDrawCellLabelProvider 来编写带有所有者绘图的 JFace 表。我现在对表格主体的外观感到满意,但也想调整表格标题的外观。

是否有任何 API 方式可以访问如何绘制每列的标题?我总是可以创建第二个自定义绘制的表格作为第一个表格的标题,但这似乎有点傻。

0 投票
1 回答
1531 浏览

listview - Win32 ListView:为整行制作彩色进度条

我想在 ListView 中为整行制作一个彩色进度条。我从这里得到这个想法:

自定义绘图

在上图中,我们有彩色进度条,但只有单个单元格。我想要的是做出同样的想法,但要整排。
这是我所做的:

制作进度条

不像我预期的那样:) 我试图画出这个CDDS_ITEM | CDDS_POSTPAINT案子。编码:

预期结果,例如在 row Item 8,带有percent = 0.5,是从行开始到第三列之间的填充矩形,并且该行的其余部分是其他颜色。
我怎样才能做到这一点?我知道我必须为选定/聚焦/原始行绘制不同的颜色,但我可以接受。

编辑:
上面的图片(第二张)是我用上面的代码得到的。
演示我想要的:

在此处输入图像描述

0 投票
0 回答
469 浏览

winapi - 在这种情况下无法控制 CDDS_ITEMPREPAINT| CDDS_SUBITEM:

我正在使用 NM_CUSTOMDRAW 在某些条件下更改树视图项及其子项的颜色。我想单独控制子项,但 dwDrawStage 从来没有遇到这种情况 CDDS_ITEMPREPAINT| CDDS_SUBITEM 我的代码片段在这里:

}

这将为我的父节点着色,但子节点(子项)保持默认(黑色)并返回 CDRF_NOTIFYSUBITEMDRAW 不起作用。请帮忙!!!

0 投票
2 回答
1297 浏览

android - Android Canvas 不绘制超过屏幕尺寸

我的应用程序有一个功能,可以让用户捕捉照片并在该照片上添加绘图。

所有照片的大小都重新调整为精确900 x 900。允许用户向图像添加绘图。我保留了一个transparent imageoriginal image在透明图像上进行绘图。绘图是使用canvas.

但是当在具有720 x 480(高度 x 宽度)的设备中绘图时。如果我创建一个900 x 900透明图像并从 to 画一条线0,0900,900画布只从0,0to画线480,480

以下是代码的相应部分:

准备画布:

画线:

我不知道为什么我会遇到这个问题。是因为使用canvas??有什么解决办法吗?非常感谢任何帮助:-)