问题标签 [common-controls]

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 回答
1071 浏览

c++ - GetThemeFont 功能不起作用

我正在开发一个CMyHeaderCtrl从 MFC 类派生的自定义标题控件,CHeaderCtrl并在应用程序主题化时覆盖该DrawItem方法以进行一些自定义绘图。起初我尝试确定标题项目的主题字体,但它失败并GetThemeFont返回结果'element not found' (0x80070490)

使用此控件的应用程序与 Common Controls 6 相关联。下面是一些示例代码:

TMT_CAPTIONFONT我也已经尝试过除了like之外的其他属性TMT_SMALLCAPTIONFONTTMT_BODYFONT等等。这里有什么问题?

0 投票
1 回答
573 浏览

c++ - 在 ListView 中启用分组 - 句柄无效?

我不明白以下情况:

那么我错过了什么;D?当句柄就在上面时出现这个错误很有趣,为其他事情工作(列,行/项目)

Edit_1 - 7:27(格林威治标准时间):是的,在创建列/项目/组和各种组合之后放置它总是错误 6,这里是代码:

0 投票
1 回答
240 浏览

c++ - C++ #pragma 预处理器能否/应该驻留在函数中

简而言之,我想制作一个嵌入视觉样式清单和链接到ComCtl32.lib版本 6(如果可用)的函数。这基本上是我希望做的:

我意识到这可能不是好的做法,但它有效吗?

0 投票
1 回答
454 浏览

c++ - TVM_SETBKCOLOR 和 TreeView_SetBkColor 未在此范围内声明?

我收到了奇怪的范围错误:'TVM_SETBKCOLOR' was not declared in this scope和类似'TreeView_SetBkColor' was not declared in this scope的 . 我不知道为什么会这样:

  • 我已经包括commctrl.h
  • 其他树视图宏工作正常(如TreeView_DeleteItem
  • 自动完成识别并完成TreeView_SetBkColor,所以这不是拼写问题
  • 我很好地阅读了文档

这是适用窗口的片段。一切正常,直到我尝试更改tvw_filelist_变量的背景。

我也试过

但我得到同样的错误。这是怎么回事?

(环境:代码::块,MinGW,Win7 x64)

0 投票
2 回答
2399 浏览

c++ - TVITEM LPARAM 存储字符串

我有一个树视图,列出了放在上面的文件。

当我创建一个新的树视图项目时,我想将文件的地址作为字符串存储在该项目中,并在以后为各种邪恶目的检索它。

查看 Microsoft 文档中的TVITEM 结构,显然LPARAM是存储值的地方:

参数

所以,我已经这样做了:

然后,当我尝试检索我的价值时......

...我只是得到垃圾,表明我的指针超出范围或正在打盹什么的。该指针的大小始终为 4。

这是做我想做的事情的正确方法吗?如果是这样,发生了什么?

0 投票
1 回答
686 浏览

javascript - 将通用控件复选框的值传递给 javascript 标志

如果我在表中定义了一个可编辑的复选框,如下所示:

我将如何将复选框的值传递给我在 javascript 中定义的布尔值?即“setFlag()”函数应该是什么样的?

感谢您提前提供任何帮助。

0 投票
1 回答
540 浏览

c# - Windows Server 2008 中没有气球工具提示关闭按钮

我的程序在应用程序中使用气球通知气泡来引导用户,在 Windows XP 中,气球窗口的右上角有一个小“X”,以便在单击时关闭窗口,如果您单击其中的任何位置,窗口也会关闭,即使你不点击'X'。

但是,当程序在 Windows Server 2008 上运行时,气球会出现,但没有“X”按钮,并且当我单击它们时也不会关闭。

偶然我设法通过删除包含以下内容的 .MANIFEST 文件来复制 Windows XP 中的行为:

当我删除此清单并在 Windows XP 中运行我的程序时,气球的行为就像在 Windows Server 2008 中一样。我假设这可能意味着与 Windows Server 2008 中的 Common Controls v6 存在某种不兼容。

有谁知道是什么导致气球在点击时没有关闭并且没有“X”关闭按钮?

更新:这是气球创建代码:

和 Windows 构建信息:Windows Server Standard、SP2、32 位

0 投票
1 回答
687 浏览

winapi - 模拟 SysDateTimePick32 的按键

我想将按键发送到 SysDateTimePick32 通用控件。

想象以下场景:有一个多行多列的表格,是用户绘制的。当您在其中一列中点击“Enter”时,将创建一个 SysDateTimePick32 控件并将其放置到当前单元格中,以便您可以为该单元格的实际内容选择一个时间。这很好用,但我想让用户在不先按 Enter 的情况下开始编辑时间。

这意味着:表格处于“显示”模式并选择了一个单元格。目前还没有 SysDateTimePick32 控件。用户键入例如“3”,而不是按回车键(因此创建并显示 SysDateTimePick32)。现在应该创建并显示一个 SysDateTimePick32,并且应该将之前键入的“3”发送给它,就像用户按“enter”然后按“3”一样。

我正在努力

SendMessage(sysDateTimePick32Handle, WM_KEYDOWN, '3', MAKELPARAM (1, 0));

但是,这似乎不起作用。将特定击键发送到 Win32 控件,尤其是 SysDateTimePick32 的“干净”方式是什么?

0 投票
1 回答
364 浏览

header - MS Header 控件仍然为自定义绘制的项目绘制边框

我们正在 VB6 中开发自定义网格控件(仍然需要使用经典的 VB - 抱歉 :)。它有一个基于来自 ComCtl 的标准 OS MS 标题控件的自定义标题,该控件是使用对 CreateWindowEx 的相应 WinAPI 调用创建的。标题项目是所有者绘制的(HDF_OWNERDRAW 标志),我们需要完全从头开始绘制它们,但是 MS Header 仍然在每个项目周围绘制这个奇怪的 3D 边框。

看起来,这在处理 WM_PAINT 时作为 WindowProc 中标准功能的一部分发生。但是我们根本无法抑制 WM_PAINT,因为在这种情况下,不会发送 WM_DRAWITEM 消息,并且我们没有地方绘制我们的标题项。

如何为我们的子类 API 标头摆脱这个标准的 3D 边框绘图?

0 投票
1 回答
179 浏览

winapi - WinAPI 更改 ListView 控件的父级

我正在开发一个带有选项卡控件的应用程序。单击选项卡中的图标后,将打开一个弹出窗口,并将选项卡的内容移至弹出窗口。

我所做的很简单 - 将选项卡中每个控件的父级更改为弹出窗口(使用 SetParent())。除了列表视图控件(虚拟列表视图)之外,一切都很好。

更改父级后,列表视图不再发送 WM_NOTIFY 通知。

我还使用非虚拟列表视图对其进行了测试,并且发生了同样的情况。

我在谷歌上搜索过,一无所获,所以任何想法都将不胜感激。

更新

更改父级后,列表视图继续向其先前的父级发送 WM_NOTIFY 通知。这是常见控件中的错误吗?