问题标签 [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 投票
3 回答
12504 浏览

winforms - 更改 ToolStripMenuItem 的大小

我正在自定义绘制一个菜单项MenuStrip。我遇到的问题是菜单项坚持根据文本调整自身大小,这不是我想要的(没有文本)。我可以设置AutoSize为 false 并明确指定大小,但包含的菜单 ( ToolStripDropDown) 仍会根据文本自行调整大小,这会导致它太小而无法包含整个菜单项。

有没有一种简单的方法来设置菜单项的大小?

0 投票
1 回答
7259 浏览

c# - tabcontrol ownerdraw 改变 tabcontrol 的边框样式

我遇到了tabcontrol的问题。当我将DrawMode更改为ownderdrawfixed时,tabcontrol的borderstyle从“fixedsingle”变为“3dfixed”,但tabcontrolborderstyle没有这样的属性。最接近 tabcontrol 的borderstyle 的是外观没有改变。

替代文字

查看上面的图片以了解我在说什么。

有没有办法在没有ownerdraw的情况下更改标签页标题的颜色,所以我不必使用ownerdraw?

或者我怎样才能修复 tabcontrol 的边框样式?

0 投票
1 回答
933 浏览

c# - C# p/invoke,从所有者绘制的列表框中读取数据

我在外部应用程序(美国在线)中有一个所有者绘制的列表框,我需要从中获取数据以构建组件以帮助人们提高其可用性。(该实用程序将使某些事物的访问变得更加简单,等等)。

注意

我的 C++ 知识很差。我是一名 C# 程序员。

我有hWnd问题的列表框,但它似乎是所有者绘制的。使用LB_GETTEXT返回错误数据,我只是得到垃圾(它在我的调试器中呈现为一堆汉字)并且通过LB_GETITEMDATA返回大致相同。

我相信这是因为所有者绘制的列表框上有图形。做了很多挖掘,我过去发现其他人有这个问题。我发现了以下应该解决此问题的代码。然而事实并非如此。代码发布在下面,以及它下面的问题。

我的理解虽然有限,但它lListItemHold=lListItemHold+24试图解释 ListBox 中的任何“结构”并通过它的前 24 个字节,然后返回剩余的内容。但是,这似乎对我不起作用。

任何人都可以对我可以尝试的事情有所了解吗?我知道我正抓着稻草。我在 C# 中对此进行编码,因此使用以下函数使用此函数p/invoke

0 投票
1 回答
433 浏览

.net - 如何在所有者绘制的菜单项中提供动画?

我的应用程序在 C# 3.5 Winforms 中,但无论如何这很可能需要 P/Invoke,因此它与 .NET 并没有那么严格的联系。

我通过ContextMenuMenuItem类创建了所有者绘制的菜单项。一切正常,但对于某些项目,我想创建一个小动画(显示有一个进程正在运行,与项目相关联)。不幸的是,上面提到的两个类没有提供Invalidate()方法或类似的东西。

到目前为止,我最好的想法是WindowFromDC()在第一个 OnDraw 上 P/Invoke,保存结果句柄,然后定期调用InvalidateRect()句柄,直到菜单关闭。

不过,这似乎有点骇人听闻,我还没有尝试过,想知道是否有更优雅的方法。

0 投票
3 回答
35655 浏览

c# - TreeView 删除某些节点的复选框

我想删除 Node.Type 为 5 或 6 的 CheckBoxes。我使用以下代码:

问题是图像和根节点的线不存在。如何删除复选框并让图像和线条出现?

这是错误的!

0 投票
1 回答
2266 浏览

c# - 覆盖 ComboBox.Items 的最佳方法

我创建了一个继承自 ComboBox 的自绘用户控件。

该控件存储专门的项目,但 Items 集合仍然接受并返回 Object 类型的项目。关于覆盖此集合以实现类型安全的最佳方法的任何提示?

关于我能想到的唯一方法是创建自己的集合类。该类不会是一个真正的集合——它将一个 ObjectCollection 作为构造函数的参数,并简单地将其方法扩展为。

用户控件会将原始 Items 集合传递给新类的构造函数。然后重写 Items 属性以返回新类的实例。

这似乎有些令人费解。有没有更好的办法?

0 投票
2 回答
1211 浏览

ios - 如何确保绘制操作在 Mac 上是像素对齐的?

在最近的 iOS techtalk 中,我听到了一个关于“确保你的绘制操作是像素对齐的”的建议。

这是对 Mac/iOS 绘图性能的有效建议吗?

另一个问题是如何确定我的代码是以像素对齐的方式绘制的?
有什么工具或技巧可以提供帮助吗?

0 投票
1 回答
1768 浏览

c# - 所有者绘制的 ToolStripDropDownButton

我正在为ToolStripDropDown控件编写一些自定义行为。我还想修改ToolStripDropDownButton自身以显示彩色形状。

我看到我可以处理这个Paint事件并画出我喜欢的任何东西。但是,在我绘制形状之前,有什么方法可以让按钮绘制默认背景?很难让背景完全正确,尤其是对于 .NET 和 Windows 的未来版本。

在普通的 Windows 中,我可以在绘制代码之前或之后调用默认的 proc 处理程序。我没有看到在 .NET 中实现这一目标的任何方法。或者也许有一种方法可以告诉按钮只绘制背景?

0 投票
2 回答
1159 浏览

c++ - 具有 BS_AUTORADIOBUTTON 样式的所有者绘制的按钮

如何获得 BS_AUTORADIOBUTTON 的选中/未选中状态?我的代码目前不起作用。

我也试过

但这也不起作用。

0 投票
1 回答
3906 浏览

mfc - 如何更改弹出菜单的字体大小(MFC、VC6)

我想知道是否有一种快速简便的方法可以更改 PopupMenu 的高度(即,使菜单中的每一行的垂直大小增加),并且还可以更改字体大小以使用更大的字体。

你有任何可以做到这一点的代码示例吗?不幸的是,CMenu 没有合适的成员来设置字体大小,或者我错过了什么?我知道那里有很多可供自己绘制的菜单的样本,对于我的目的来说这些都是过度的。我想要做的就是增加菜单项的大小。

此外,我的菜单没有主窗口,它只是一个弹出菜单(CMenu::CreatePopupMenu)。然而,大多数示例似乎都需要一个主窗口。