问题标签 [ownerdrawn]

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 投票
2 回答
3290 浏览

delphi - 具有 csOwnerDrawFixed 样式的 Combobox 如何表现得像 csDropDown 样式?

我正在使用样式属性设置为csOwnerDrawFixed的TComboBox组件,我实现了OnDrawItem并且一切正常,现在我希望组合框在具有csDropDown样式时的行为(使用 csOwnerDrawFixed 样式的行为类似于 csDropDownList 样式),我的意思是内部编辑。这可能吗?

0 投票
2 回答
2443 浏览

c# - ObjectListView 不自动换行

我使用 ObjectListView 而不是标准的 ListView 是因为我想对列进行自动换行。

我在几个地方读到,为了启用自动换行,我唯一需要做的就是设置column.wordWrap为 true。

我就是这样做的,但它不起作用。

我在这里想念什么?

编辑: 我现在意识到我需要绘制我的专栏所有者。我发现这个页面告诉我该怎么做,但我不确定在我的代码中放置它的位置。我也不太确定是否需要在委托中添加某些属性以允许自动换行(从外观上看,它默认启用)。问题是,我尝试了在此页面中找到的内容,逐字复制,我的列表看起来完全一样......

0 投票
3 回答
7191 浏览

c# - ListView 控件闪烁(OwnerDraw、Virtual)

这个问题可能被认为是在 listview 中使用 ownerdraw 和 virtualmode进行闪烁的后续问题。

我有一个ListView控件Virtual mode,我尝试执行自定义绘图。项目渲染是通过以下方法覆盖完成的:

如引用问题中所述,自定义绘图引入了鼠标悬停事件的闪烁。调试器告诉我这是由于触发了过多的自定义绘制事件而发生的。


现在 - 引用问题的公认答案告诉我们:

这是 .NET 的 ListView 中的一个错误,您无法通过双缓冲来解决它。

  • 那么,这些信息的可靠性如何?这真的是一个错误吗?或者,也许我们只是试图切断部分消息并希望它不会改变可见的行为?

  • 如果我有我的所有者为ListViewin绘制例程,Virtual Mode,我可以抑制这些Custom Draw事件并且只执行我的绘制,WM_PAINT或者在某些情况下这可能是不正确的,这是真的吗?

  • System.Windows.Forms控件能够在WM_PAINT不改变其初始行为的情况下完成所有绘画的先决条件是什么?

0 投票
2 回答
9540 浏览

delphi-7 - 根据列名文本为 stringgrid 列着色

我正在这样做:

当(示例)星期日(SUN)出现时,有没有办法为列着色?我希望 SUN 列(一直向下)以与其他列不同的颜色显示。

0 投票
1 回答
5384 浏览

delphi - 如何在 AdvancedCustomDrawItem 期间绘制 TTreeView 的样式选择矩形?

我正在TTreeView使用事件从头开始进行自定义绘图OnAdvancedCustomDrawItem,我想知道如何在我的所有者绘制项目的背景中正确呈现这些选择和热矩形?它们是 Vista/7 风格的,所以我不能简单地用纯色填充背景。

在此处输入图像描述

我试图在cdPostPaint舞台上绘制我的项目,但如果我离开舞台DefaultDraw := TruecdPrePaint绘制选择背景,则会出现完整的默认绘图,包括项目的文本。

0 投票
0 回答
254 浏览

winforms - 在 TreeView 中设置编辑框的位置

在 WinForms 中,我想知道是否可以在 TreeView 中以编程方式设置编辑框的位置,如果可以,如何设置?

让我提供更多细节。我们有一个所有者绘制的 TreeView (System.Windows.Forms.TreeView),其 DrawMode 设置为 OwnerDrawAll。我们首先绘制一个图标,然后是层次结构,然后是与项目相关的图标,然后是文本。

在上图中,[X][O]是第一个图标的#表示,符号是项目相关图标的表示。

问题是,当使用常规 TreeView 方式编辑文本时,通过将 LabelEdit 设置为 true,编辑框与图标重叠(图表上的 # 符号)而不是在图标旁边,因为我们改变了文本渲染。另一个问题是单击以使编辑框出现的位置(矩形)也发生了变化。

我尝试将 Indent 属性设置为更高的值,然后将我的层次结构、与项目相关的图标和文本渲染移回左侧以保持其正确对齐,但在这种情况下,每个节点的缩进加倍:

它在数学上导致[spacing = level * indent * 2]

我需要的地方[spacing = indent + (level * indent)]

我只是无法为每个节点单独设置 Indent 属性,因此此解决方案无效。

我试图在 OnBeforeLabelEdit 事件中成功获取编辑框句柄,但后来我发现我无法用它做任何有用的事情。

我们正在考虑使用自定义 TextBox 并将其放置在 TreeView 上,但首选已实现的常规方式。

提前致谢。

0 投票
1 回答
339 浏览

winapi - WinApi所有者CComboBox编辑窗口,CComboBox里面的编辑窗口

我有一个问题,是否有可能拥有 CComboBox 编辑窗口(CComboBox 的最顶部窗口/ComboBox 内的编辑窗口)因为我已将 CComboBox 设为 OWNERDRAW 并且我可以在项目上绘图(通过 DrawItem() 方法)我还想在编辑项(CComboBox 控件的最顶部项)上绘制问题是它是编辑窗口,我可以在上面输入(我不能在上面绘制)。我怎样才能使这个窗口'可绘制'?有什么建议么?谢谢

0 投票
1 回答
652 浏览

c# - 在基于 WPF ResourceDictionary 的窗口中获取窗口对象

在 VS2008 中,我在我的解决方案中添加了一个资源字典模板,我将此模板命名为“MyWinStyle.xaml”。以下是我的窗口中使用的样式:......

这是我的XMAL代码,当我想添加使ownerdraw窗口可调整大小的函数时,我遇到了一个问题,就是我无法在其构造函数中获取Window对象。(基于这篇文章,我想做我的窗口可调整大小:http ://blog.kirupa.com/?p=256 )下面是我的代码:

0 投票
2 回答
2849 浏览

c++ - 所有者绘制的窗口

我没有成功绘制自己的列表框,代码如下:

我像这样创建 ListBox:

有人可以向我解释其中有什么问题吗?我正在尝试制作一个具有黑色背景和红色文本的列表框,当一个项目被选中时,它的文本将转换为白色。但列表框不添加任何内容。

0 投票
2 回答
402 浏览

delphi - 带有自绘项的 TopenDialog/TSaveDialog

我想实现传统的打开和保存对话框(以及正在处理的底层项目是文件),但我想控制显示的内容来代替文件名,并包含一些图形 - 即我需要一个“ownerdraw”对话风格。除了这方面,我希望对话框的外观和感觉尽可能像传统的打开/保存对话框。

我想我自己也面临着实现这个,我只是想知道最好的起点是哪里。