问题标签 [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++ - ListView 可访问性问题 - 如何让 Windows 讲述人读取整个选定行,包括子项?
我正在尝试为我的 Win32/MFC 应用程序中的WC_LISTVIEW控件添加辅助功能支持。我正在使用Windows 10 中的 Windows 讲述人工具来测试结果。默认情况下,它只读取选定行的主要项目名称。例如,在这种情况下:
当我需要它阅读整行时,它只会读取国家/地区。
所以我发现我可以使用这个例子为列表视图控件设置一个服务器注解。
我首先将其设置为:
CAccPropServer_ListView
班级完成所有工作的地方:
所以我的问题是关于GetPropValue
上面的方法,它实际上会生成文本提示,供讲述人大声朗读。
如何从DecomposeHwndIdentityStringidChild
返回的中获取讲述人读取的行的索引?
在我上面的例子中,纯粹是通过实验,我得到了以下值:
这将转换为0x11
, 0x21
, 0x31
,0x41
不是行索引。这些 ID 是否记录在任何地方SysListView32
?
c++ - 如何在从 DLL 创建的 CDialog 中的常用控件上启用视觉样式?
我有一个可以使用以下 MFC 代码显示对话框窗口的 DLL:
这可行,但显示的对话框没有启用视觉样式:
我找到了这篇关于如何为 DLL 启用视觉样式的文章。所以我添加了带有建议清单内容的资源文件:
并给它资源 ID 123:
但仍然没有雪茄。我在这里想念什么?
c - Win32 ListView 常用控件重绘问题
我在一个窗口中有一个列表视图公共控件。我有一种机制可以在同一个窗口中更新列表(它就像一个魅力)。但是,我有这个要求,我必须从外部实体更新视图,比如一个对话框或另一个窗口。这就是问题出现的地方。
从窗口边界外插入项目时,列表视图不会更新。我尝试在所有可能的列表视图通知消息中进行 UpdateWindow() 调用,但无济于事。我希望有人可以帮助我解决这个问题。
此外,当整个应用程序窗口被最小化并拉回时,列表视图确实会更新一个新的项目/行。诡异的。
c++ - 是否可以锁定我的应用程序中常用控件使用的内存?
我正在编写一个加密其数据的应用程序。然后,它可以在用户输入密码后使用应用程序的 UI 以未加密的方式显示它。我的目标是在 RAM 中尽量减少明文数据的暴露。为此,我想尽可能避免将其交换到磁盘。
我知道我可以调整我的进程的工作集(通过调用SetProcessWorkingSetSize API),然后将那些敏感页面锁定在 RAM 中(通过调用VirtualLock)。理论上,这应该最大限度地减少它被写入磁盘的机会。
我的问题是,我可以对对话框窗口中的常用控件(即编辑框、组合框和最重要的RichEdit控件)使用的内存做同样的事情吗?
PS。我假设他们都将堆中的数据用于我的进程。正确的?
编辑: 看到下面我需要澄清的所有评论。说“锁”,我不是说“用挂锁和钥匙把它锁起来,这样没人能看到”。VirtualLock
我的意思是,像使用API一样锁定它。
dll - VBCCR14.OCX 在 VB6 中加载 dll 时出错
我正在使用 VBCCR14.dll Activex Common Control 来支持 Unicode。在开发的机器上它工作得很好,但是当程序从另一台机器上运行时,它会给出一个错误,说“加载 dll 时出错”。我还在另一台机器上注册了 dll,但它仍然给出了错误。我也尝试通过参考这篇文章来解决这个问题。
http://www.vbforums.com/showthread.php?841929-VB6-ActiveX-CommonControls-(Replacement-of-the-MS-common-controls)
但仍然出现错误。有人可以帮我解决这个问题吗?
我已经在 Windows 10 中使用 Visual basic 6.0 进行了尝试。
security - VB6 应用程序中的 MSCOMCTL.OCX CVE-2012-1856 和 CVE-2012-0158 ActiveX 漏洞
我的公司向客户分发了一个提醒跟踪 VB6 程序,该程序发送有关截止日期的电子邮件提醒并跟踪用户回复。最近,一位担心 VB6 漏洞的潜在客户联系了我们。他向我们发送了 CVE 网站的链接,我们发现了两个影响我们软件使用的 ActiveX 控件的漏洞 - CVE-2012-1856 和 CVE-2012-0158。我们非常热衷于确保我们不会让我们的客户受到可能的攻击。
我在 2015 年的 VB6 论坛上发现了一篇论坛帖子,其中一位用户声称与其中一个漏洞有关:(链接:http ://www.vbforums.com/showthread.php?794875-VB6-Vulnerability )
这不是 VB6 程序的问题。
仅当您在 IE 中从恶意站点加载页面并且您已放宽 IE 安全设置以允许页面中嵌入的 ActiveX 控件运行,或使用支持嵌入式 ActiveX 控件的电子邮件客户端打开恶意 HTML 时,才会暴露所描述的问题具有类似宽松安全设置的格式化电子邮件。唯一的另一种可能性是下载和运行您不应该信任的程序。
就这件事而言,整个事情已经有 3 年历史了,并且长期以来一直在受支持的 Windows 版本上进行修补:
Microsoft 安全公告 MS12-027 - 严重 Microsoft 安全公告 MS12-060 - 严重
在我看来,加拿大网络儿童只是在寻找一些媒体。
(链接到 MS12-027:https ://technet.microsoft.com/en-us/library/security/ms12-027.aspx )
(链接到 MS12-060:https ://technet.microsoft.com/en-us/library/security/MS12-060 )
帖子中链接的 Microsoft 安全公告似乎支持了他的说法,即这主要是一个基于 Web 的问题。但是,我仍然有几个关于这个话题的问题,并且很难在网上找到答案:
- 我们的 VB6 程序与 IE 或任何其他 Microsoft 程序没有交互。它从固定的用户电子邮件地址列表中接收大量电子邮件,但它主要监控回复行为和用于识别预期回复的短代码。不处理附件或长字符串,只处理那个短代码。该程序无法打开或处理 .doc、.rtf 或任何其他类似文件类型。所有数据都写入本地数据库或从本地数据库读取。这些 VB6 漏洞会影响我们的程序吗?
- 如果我们要在客户端站点上安装我们的程序,它会在 Windows 系统文件夹中安装并注册旧版本的 MSCOMCTL.OCX(覆盖较新版本)——这是否会使我们客户的所有 Microsoft 应用程序都暴露在漏洞中?如果他们安装了一堆受此漏洞影响的 Microsoft 程序,并且他们现在指向一个易受攻击的 MSCOMCTL.OCX 版本,那么在我看来,这会使他们容易受到攻击。这个假设正确吗?
- Microsoft 安全公告网页上可供下载的补丁旨在为受漏洞影响的所有 Microsoft 程序按程序安装。如果我想更新我的 Visual Basic 6.0 副本以修补我们的 VB6 应用程序中的漏洞,这是否足够,还是我需要为所有受影响的 Microsoft 程序安装更新?他们不都只是指向同一个 MSCOMCTL.OCX 文件吗?为什么甚至需要多次更新?是否只是为每个 MS 程序更新对 Windows 注册表中 OCX 文件的引用?
- 另一位用户在上述论坛上发布了以下内容:
最糟糕的是,微软跌跌撞撞,发布了几次(五次还是六次?)“安全汇总”包的尝试。许多版本都包含“一个”的编程错误,这些错误破坏了其中的几个控件。不要迷路并下载其中一个......你可能会不走运。它们无法卸载,因此您可以在您的机器上破坏 VB6。
这让我对安装建议的更新(在 MS12-027 和 MS12-060 中提到)非常谨慎 – 该用户的担忧是否有效?安全公告中提出的补丁是否存在任何问题?
c - 可拖动的分隔符 C windows 控件?
在设备管理器和注册表编辑器等许多窗口中,我们看到一个垂直分隔符将两个白色子窗口分开。这些分隔符可以使用鼠标左右拖动。
有没有windows控件或者原生通用控件可以用来创建这个效果?
我在 MSDN 上找不到任何东西,并且上周末都在尝试使用子窗口和自定义调整大小处理的各种组合来模拟行为。
我特别询问 C API、IE CreateWindowEx() 等。
谢谢
excel - ActiveX 组件无法创建对象:PCOMM.autECLConnList
我正在尝试自动将击键发送到使用 PCOMM iSeries 仿真器连接的大型机应用程序。我不确定我在这里做错了什么,因为相同的代码可以在不同的机器上运行。下面是配置,
工作机器 :Windows 10 64 位,Office 32 位
错误机器:Windows 7 64 位、Office 64 位
下面是代码
请帮忙,我是新手并且卡住了。
PS:请不要重复这个问题,因为没有特定于 PCOMM 的问题。
winapi - 需要帮助了解 LVITEM 状态和 stateMask
我很困惑。LVITEM结构指出:
状态
类型:UINT
指示项目的状态、状态图像和覆盖图像。stateMask成员表示该成员的有效位。
此成员的位 0 到 7 包含项目状态标志。这可以是一个或多个项目状态值。
所以我的问题是,位 0 到 7 有什么用?它们似乎没有指示其他位使用什么,否则不需要 stateMask。
printing - PrintDlg 函数(64 位) - 在调试器中工作,不工作时崩溃
我正在将一些 Win32 代码移植到 Win64。旧代码使用 PrintDlg(),并且在所有版本的 Windows(32 位和 64 位)上运行良好。新代码没有!
如果我在 Win64 应用程序中设置全零 PRINTDLG 结构,在 lStructSize 字段中放置“120”,然后调用 PrintDlg(),则不会显示任何对话框,并且应用程序崩溃。
但是,如果我在 Visual Studio 2017 Pro 中运行完全相同的图像,则对话框每次都按预期工作!
关于 (a) 为什么它在 VS 中工作,但直接运行时崩溃的任何想法?和(b),我能做些什么来解决它?!
布赖恩