问题标签 [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.
.net - 所有者绘制的选项卡控件具有更宽的选项卡
我正在尝试自定义绘制选项卡控件。当我使用返回的尺寸绘制选项GetTabRect
卡时,与通常绘制的方式相比,这些选项卡的绘制明显更宽。我认为它试图为图像腾出空间,但我没有为选项卡定义图像。为什么会GetTabRect
返回更大的尺寸?
不知道这是否与它有关,但这是我在自定义 TabControl 构造函数中将其设置为所有者绘制的方式。
c++ - 在子类 CStatic 控件中处理 WM_PAINT
我创建了一个自定义控件,其类CStatic
作为基类。WM_PAINT
目前我使用事件处理绘图。但是有一个奇怪的行为。当我使用函数禁用它后重新启用窗口时CWnd::EnableWindow
,它拒绝绘制我在OnPaint
函数中编写的内容。它改为绘制静态控件。
我同意有这种覆盖DrawItem
和使用SS_OWNERDRAW
样式的标准方法。但是有什么问题WM_PAINT
呢?
delphi - TPageControl DrawTab 的问题
我将 TPageControl 样式设置为平面按钮 ( tsFlatButtons
),并使用事件更改选项卡的按钮颜色OnDrawTab
。
它可以工作,但未激活的按钮有灰色(btnFace 颜色)边框!
知道如何解决这个问题吗?
c# - 在 Winforms 中的选项卡控件选项卡标题区域中绘制控件
我正在尝试在我的选项卡控件的选项卡标题区域左侧添加一些控件,但不影响选项卡页面区域(如 Internet Explorer)。我想我必须让所有者绘制控件,但我不确定从哪里开始。任何人都可以提供任何建议吗?
.net - 业主绘图控制系统-背景
所有者绘制意味着我必须编写自己的绘图方法。
但是,我如何告诉系统在ListView
没有文字的情况下绘制我的项目的“系统”背景?我想手动绘制文本,而不是(蓝色)背景。
ListView
在平铺视图中使用,我只看到“我的文本”。
c++ - 所有者绘制的复选框
我有一个本机 win32 c++ 应用程序,其中有一个复选框。我想替换复选框并创建具有 2 种状态的 ON/OFF 切换按钮(就像复选框一样)。我已将BS_OWNERDRAW
样式添加到复选框并将其绘制到WM_DRAWITEM
. 问题是,当我单击复选框时,我收到一条WM_COMMAND
消息(就像没有BS_OWNERDRAW
)但 CHECKED 状态不会自动更改。我必须实现这个功能还是我错过了什么?
处理单击复选框的代码:
问题是每次我点击复选框BM_GETCHECK都会返回BST_UNCHECKED。如果我删除 BS_OWNERDRAW 它工作正常。
创建按钮/复选框的代码:
c++ - 带有透明图像的win32 c ++所有者绘制按钮
我已经在我的 win32 应用程序(没有 MFC)中实现了一个所有者绘制按钮。该按钮是一个普通的 20x20 位图(带透明度的圆形图标)。问题是按钮位于纯色背景上,我可以看到按钮的灰色背景(因为位图是圆形的)。我尝试使用 NULL_BRUSH 响应 WM_CTLCOLORBTN 但没有运气。我尝试使用位图和 ico 文件显示按钮,但不会让步。有谁知道如何解决这个问题?
这是我的问题,设置图标的边缘应该是透明的(不是白色/灰色)
c# - 如何在关闭视觉样式的情况下绘制 UI 元素?
我有一个所有者绘制的控件,我需要在其中绘制树视图的扩展框(“加号/减号”)。打开视觉样式很容易,只需为适当的VisualStyleElement创建一个渲染器:
关闭视觉样式时是否可以达到类似的效果?我知道有一个ControlPaint类可以绘制整个控件,但是我如何绘制(并获取其大小)只是TreeView控件的一部分?
delphi - 如何为所有者绘制的禁用菜单项使用不同的文本颜色?
我有这个代码用于在 Delphi 中为 MainMenu 着色。它适用于 OnDrawItem 事件,但我什至需要一些东西,但我不知道该怎么做。如果项目被禁用(启用 = False),我希望 MainMenu 项目的字体设为 clSilver...</p>
c# - Listview 与 ownerdraw 模式文本渲染有关的问题
我正在尝试实现绘制的所有者,ListView
因为基本控件吃掉了我需要在列中对齐值的制表符。
使用来自MSDN的示例作为基础,我能够接近。我仍然遇到的唯一问题是,当文本不适合列时使用的省略号周期比默认文本渲染中的间隔要紧密得多;如果字体是粗体,则句点会一起变成下划线。
下面的程序演示了这个问题。它有 4ListView
秒:顶部的两个是使用默认渲染绘制的。底部的两个是所有者绘制的,右侧的一对是粗体的。出于篇幅原因,我删除了所有我不需要的东西来演示问题,这就是为什么所有者绘制ListView
的 s 没有列标题。
查看放大的屏幕截图,所有者绘制ListView
的 s 中省略号的周期间隔一个像素;默认绘图中的那些有两个像素的间距。当加粗将周期扩大到两个像素时,所有者绘制的那些合并在一起形成一个看起来像下划线的实体块。
文本渲染也有其他细微差别;但省略号是唯一一个无需缩放即可明显看出的省略号。然而,这些差异确实让我怀疑这个问题是一个更普遍的问题。 可能是 GDI 与 GDI+ 渲染?除了我认为这只能在应用程序级别有所不同。 显然不是,切换Application.SetCompatibleTextRenderingDefault()
没有影响任何东西。