问题标签 [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.
c++ - GetThemeFont 功能不起作用
我正在开发一个CMyHeaderCtrl
从 MFC 类派生的自定义标题控件,CHeaderCtrl
并在应用程序主题化时覆盖该DrawItem
方法以进行一些自定义绘图。起初我尝试确定标题项目的主题字体,但它失败并GetThemeFont
返回结果'element not found' (0x80070490)
。
使用此控件的应用程序与 Common Controls 6 相关联。下面是一些示例代码:
TMT_CAPTIONFONT
我也已经尝试过除了like之外的其他属性TMT_SMALLCAPTIONFONT
,TMT_BODYFONT
等等。这里有什么问题?
c++ - 在 ListView 中启用分组 - 句柄无效?
我不明白以下情况:
那么我错过了什么;D?当句柄就在上面时出现这个错误很有趣,为其他事情工作(列,行/项目)
Edit_1 - 7:27(格林威治标准时间):是的,在创建列/项目/组和各种组合之后放置它总是错误 6,这里是代码:
c++ - C++ #pragma 预处理器能否/应该驻留在函数中
简而言之,我想制作一个嵌入视觉样式清单和链接到ComCtl32.lib
版本 6(如果可用)的函数。这基本上是我希望做的:
我意识到这可能不是好的做法,但它有效吗?
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)
c++ - TVITEM LPARAM 存储字符串
我有一个树视图,列出了放在上面的文件。
当我创建一个新的树视图项目时,我想将文件的地址作为字符串存储在该项目中,并在以后为各种邪恶目的检索它。
查看 Microsoft 文档中的TVITEM 结构,显然LPARAM
是存储值的地方:
参数
所以,我已经这样做了:
然后,当我尝试检索我的价值时......
...我只是得到垃圾,表明我的指针超出范围或正在打盹什么的。该指针的大小始终为 4。
这是做我想做的事情的正确方法吗?如果是这样,发生了什么?
javascript - 将通用控件复选框的值传递给 javascript 标志
如果我在表中定义了一个可编辑的复选框,如下所示:
我将如何将复选框的值传递给我在 javascript 中定义的布尔值?即“setFlag()”函数应该是什么样的?
感谢您提前提供任何帮助。
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 位
winapi - 模拟 SysDateTimePick32 的按键
我想将按键发送到 SysDateTimePick32 通用控件。
想象以下场景:有一个多行多列的表格,是用户绘制的。当您在其中一列中点击“Enter”时,将创建一个 SysDateTimePick32 控件并将其放置到当前单元格中,以便您可以为该单元格的实际内容选择一个时间。这很好用,但我想让用户在不先按 Enter 的情况下开始编辑时间。
这意味着:表格处于“显示”模式并选择了一个单元格。目前还没有 SysDateTimePick32 控件。用户键入例如“3”,而不是按回车键(因此创建并显示 SysDateTimePick32)。现在应该创建并显示一个 SysDateTimePick32,并且应该将之前键入的“3”发送给它,就像用户按“enter”然后按“3”一样。
我正在努力
SendMessage(sysDateTimePick32Handle, WM_KEYDOWN, '3', MAKELPARAM (1, 0));
但是,这似乎不起作用。将特定击键发送到 Win32 控件,尤其是 SysDateTimePick32 的“干净”方式是什么?
header - MS Header 控件仍然为自定义绘制的项目绘制边框
我们正在 VB6 中开发自定义网格控件(仍然需要使用经典的 VB - 抱歉 :)。它有一个基于来自 ComCtl 的标准 OS MS 标题控件的自定义标题,该控件是使用对 CreateWindowEx 的相应 WinAPI 调用创建的。标题项目是所有者绘制的(HDF_OWNERDRAW 标志),我们需要完全从头开始绘制它们,但是 MS Header 仍然在每个项目周围绘制这个奇怪的 3D 边框。
看起来,这在处理 WM_PAINT 时作为 WindowProc 中标准功能的一部分发生。但是我们根本无法抑制 WM_PAINT,因为在这种情况下,不会发送 WM_DRAWITEM 消息,并且我们没有地方绘制我们的标题项。
如何为我们的子类 API 标头摆脱这个标准的 3D 边框绘图?
winapi - WinAPI 更改 ListView 控件的父级
我正在开发一个带有选项卡控件的应用程序。单击选项卡中的图标后,将打开一个弹出窗口,并将选项卡的内容移至弹出窗口。
我所做的很简单 - 将选项卡中每个控件的父级更改为弹出窗口(使用 SetParent())。除了列表视图控件(虚拟列表视图)之外,一切都很好。
更改父级后,列表视图不再发送 WM_NOTIFY 通知。
我还使用非虚拟列表视图对其进行了测试,并且发生了同样的情况。
我在谷歌上搜索过,一无所获,所以任何想法都将不胜感激。
更新
更改父级后,列表视图继续向其先前的父级发送 WM_NOTIFY 通知。这是常见控件中的错误吗?