问题标签 [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.
windows - Windows 2000 中的通用控件 6.0?
我想在 CListCtrls 中使用 Grouping,这似乎是在 Common Controls 6 中引入的。CC6 只出现在 XP 中,所以我们在 Windows 2000 和更早版本中遇到了问题。部署新版本的 Comctl32.dll 似乎是解决方案 - 但是,我们的软件需要成为独立的可执行文件。
这个问题有解决方案吗?
c++ - 在 Win32 中的 CEdit 控件中放置图像
我正在尝试实现一种效果,即在编辑控件中有一个可见的徽标,并且当用户将焦点放在编辑控件上时,该徽标变得隐藏。
解决这个问题的最佳方法是什么?将图像控件放置在编辑控件之上或将编辑控件的背景涂成透明并将图像控件放置在编辑控件后面会更好吗?或者可能有其他方法?
c++ - 如何防止 CListCtrl 上的闪烁?
我在启用LVS_REPORT
的虚拟模式 ( LVS_OWNERDATA
)中使用 CListCtrl/CListView 报表视图 ( )LVS_EX_DOUBLEBUFFER
并且遇到难看的闪烁。双缓冲有一个真正的效果,但它不会停止所有闪烁(没有它非常慢)。
我不想切换到需要大量返工的其他控件(如 ObjectListView)
闪烁的行为如何:
- 调整列大小 - 首先使用浅灰色清洁背景,然后显示文本(背景为白色)
- 鼠标滚动(动画) - 在很短的时间内,在要显示新行的区域中会显示浅灰色条。
看起来它确实使用默认窗口背景颜色(浅灰色)清理了必须重绘的区域的背景。
如何解决闪烁问题?
datetime - Win32:如何防止 DateTimePicker 接受 2 位数年份?
Microsoft 的DateTimePicker
通用控件根据配置的 Locale 设置显示ShortDate 。客户的计算机配置了 2 位数年份 ShortDateFormat ( d/M/yy
),因此 DateTimePicker 显示 2 位数年份:
当用户将焦点放在日期时间选择器的年份块中时,Microsoft 会指出问题,并显示完整的 4 位数年份:
但随后,想要输入1929
年份的用户键入了一个 2 位数的年份:
然后当他们标出时,当 Windows 将他们的 2 位数年份解释为介于1930
和之间时,他们会感到困惑2029
,并且假定为 2029:
客户制定了一项全球公司政策,该政策规定将 Windows 区域设置配置为 2 位数年份。
因此,作为一种解决方法,我需要使用方便的宏DateTimePicker
强制每个控件使用自定义日期格式:DateTime_SetFormat
这有帮助,所以现在DateTimePicker
now 总是显示 4 位数的年份:
问题是用户仍然可以输入“无效”的 2 位数年份:
根据规则,哪个 Windows 仍在解释为 2029:
我需要日期时间选择器来拒绝 2 位数的年份。
如果这不起作用,那么我将被迫用 3 个编辑框替换每个 DateTimePicker:
22 6 29
我可以将无效数字涂成红色,并指出用户输入的无效数据。
如何防止 DateTimePicker 接受 y2k 错误?
c++ - LVS_EX_FULLROWSELECT 与其他样式有兼容性问题吗?
我正在尝试在我的网格列表控件上设置 LVS_EX_FULLROWSELECT 样式,因为我想要全行选择。但是显然它没有任何效果。由于我还使用了许多其他样式,我想知道 LVS_EX_FULLROWSELECT 是否与其他样式有任何兼容性问题。任何人?以下是我设置的样式。
最初在基本列表控件类上设置了以下样式:
然后我尝试在派生的网格列表控件类中设置其他样式:
windows - 使 vb.net 应用程序与 Windows 主题融为一体
以前我经常使用 VB6 来开发几个个人项目。升级到 Windows 7 后,我决定使用 vb.net Express Edition 2010。
如果我希望我的 VB6 应用程序与 Windows 的视觉风格融为一体,我将使用此处描述的代码和技术。简而言之,我会在应用程序中使用 Manifest 文件和几个调用,并且大多数元素看起来与应用的 XP 主题相似。如果它在 2000、95 或 98 上运行,那么它看起来就像一个标准的 Windows 应用程序。一切都很好。
现在我转到 vb.net,我编写了一个简单的“Hello, world”应用程序,但我完全不知道如何使它看起来像 Windows 7 主题(例如,字体与系统字体匹配,并且小部件的样式正确)。
只是更改字体是一种黑客行为,并且在设置不同或运行默认字体不同的不同 Windows 版本的机器上会显得格格不入。
无论 Windows 版本如何,如何确保我的应用程序与应用的 Windows 主题匹配?
c++ - 单选 Win32 ListView(常用控件)
我在 C++ 中使用 Common Controls 6.0 中的 ListView 控件,并且我需要 ListView 仅为单选。
所有更高级别的控件都具有此功能(例如 .Net 和 Qt),但我想它们是基于某个深处的此控件。关于如何让它表现为单选列表的任何想法?
以防万一它有所作为,这是我当前的创建语句:
c++ - 在远程会话上运行时,LVS_EX_DOUBLEBUFFER 是否正确地没有双缓冲?
一个应该在本地运行时使用双缓冲,但当窗口在远程会话上时不使用双缓冲,如果想要获得每种模式的最佳性能。
ListView 控件具有扩展样式 ,LVS_EX_DOUBLEBUFFER
它会自动对 ListView 的内容进行双重缓冲。
是否需要注册以收到本地和远程会话之间更改的通知,并相应地更新此标志?还是 ListView 会自动执行此操作?
delphi - 在 Windows 7 X64 中,statusBar 无法正确显示从 11 号开始的面板的文本
总结:
(1)这很可能是一个bug。但是,我不能确定它是否与 64 位操作系统、VCL 或 MFC 包装器更相关。请查看以下 Delphi 专家的回答和评论。
(2) 我
的解决方法:情况是我有six
键值pairs
显示在状态栏中。这些值将在运行时更改。
湾。看来我不能set text
超过10
面板。
C。在这方面,我将对值使用six
调用,并对最后两个键使用调用。因此,我不必超过限制。
d。为了完成工作,我需要提供它已有的不同文本。set text
two
set text
10
set text
e. 因此示例代码可以描述为:
==================================================== =================
在我的 Windows 7 X64 中,状态栏没有正确显示从 11 号开始的面板的文本。
(1)新建一个空的VCL应用项目without
保存,如果我在设计时为第11个状态面板设置了文本,在运行时文本根本不会显示。(见附图。)
(2)如果我保存并重新打开它,文本也不会在设计时显示。
(3) 如果我在运行时设置文本,只有当新文本与旧文本不同时才会显示文本。假设第 11 个面板的 Text'try'
在设计时设置为:
(4) 这种行为只发生在我的 Windows 7 X64 上,而不会发生在我的 Windows XP 上。
(5) 我认为相同的行为适用于所有 Delphi 版本。
(6) 似乎该行为与 Windows 版本的关系比与 Delphi 的关系更大。我的意思是,相同的示例应用程序将在 Windows 7 上显示上述行为,但在 Windows XP 上不会。
(7) 一个示例 dfm 文件转储如下:
(8) 样张图片:
有人可以帮助评论可能的原因吗?任何建议表示赞赏!
windows - 如何获得完整的 unicode 支持,包括 VCL 控件中的中文字符或 XP 上的 Windows 通用控件,就像在 Win7 中一样
我有一个我一直在测试国际化支持的应用程序。
例如,有一个标准的 TEdit 控件,其 font.Name = 'Arial'。
在 Windows 7 上,如果分配给该控件的字体不包含某个国际字符,它似乎会自动从 Arial Unicode MS 或其他地方抓取 CJK 字符的字形,用于 EDIT 通用控件。
在 Windows XP 上,即使安装了 Arial Unicode MS 字体,中文字符似乎也显示为框,除非我将 delphi 形式的字体名称更改为 Arial Unicode MS。
这是每个人在 Windows XP 上使用国际字体支持时都会遇到的问题吗?Windows 常用控件的行为是否不同?我在 Windows 7 上看到的行为肯定比我在 Windows XP 上看到的行为更友好。
这种行为差异不仅限于 Windows 公共控件。似乎即使是 Internet Explorer 和 MS Explorer shell 在进行如下图所示的测试时也会出现问题:
人们对此怎么办?
Windows XP 上的预期平台行为是什么?您是否必须找到用户想要使用的语言,然后找到支持该语言的字体供他们使用?我猜 Arial Unicode MS 可能是一个很好的默认设置,因为它几乎包含所有的 unicode 语言。
更新:看起来微软术语“补充语言支持”是指 Windows 的“Windows 不会将我的 Unicode 字符显示为框”功能。