问题标签 [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++ - 调整窗口大小时,公共控件未正确绘制
介绍:
我正在创建带有子对话框作为页面的选项卡控件。
我已Visual Styles
通过#pragma
评论启用。我也打过InitCommonControlsEx
电话#pragma comment( lib, "comctl32.lib" )
。
最初,当窗口加载时,对话框及其常用控件具有适当的背景,请参见下图:
在调整大小的过程中,事情并不是那么一致 -> 背景开始明显不匹配。我将在下面提供截图:
您可以清楚地看到这一点checkbox
并且static control
背景不正确,而在我看来dialog box
(创建为子控件)具有适当的背景。
2014 年 11 月 24 日编辑:
将控件封闭后group boxes
似乎没有绘画问题。我的显示器是旧的 CRT(Samsung SyncMaster 753s),我的视力不好,但似乎一切正常。窗口在调整大小时仍然可怕地闪烁,但我已尽我所能修复它。
问题:
我怎样才能解决这个问题?
我为解决这个问题所做的努力:
我还没有找到任何东西,但我在输入这个问题时仍然在盯着看......
相关信息:
以下是创建说明问题的演示的说明:
1.)在中创建空C++
项目Visual Studio
;
2.)添加头文件,命名pomocne_funkcije.h
并复制/粘贴以下内容:
3.) 在资源编辑器中创建对话框,添加复选框静态控件。
为对话框设置以下内容:
- 边框:无
- 控制:真
- 控制父级:真
- 风格:儿童
- 系统菜单:假
4.)这是代码main.cpp
:
我Visual Studio 2008
正在Windows XP
使用C++
and WinAPI
。
winapi - 设置超类列表框控件的文本和背景颜色
我正在编写 WindowsLISTBOX
公共控件的超类版本以添加额外的功能。
标准控件将WM_CTLCOLORLISTBOX
消息发送到其父级,从而允许在运行时在适当的消息处理程序中指定其文本和背景颜色。但是WM_CTLCOLORLISTBOX
不会发送到控件本身,因此无法在内部进行封装和处理。
我试图解决的方案是根据控件的启用/禁用状态更改背景和文本颜色。无论其状态如何,让列表框背景保持相同阴影的标准行为对我来说看起来很丑陋且不一致。是否有另一种方法可以在封装内设置这些值,但将所有其他绘画任务移交给基类窗口过程?
我想知道如何使用SetClassLongPtr()
. 但是,这不仅不会解决文本颜色问题,而且如果我理解正确,它会更改当前存在的该类的所有控件的背景,而不是状态已更改的特定控件。
java - 在另一个 struts 标签中使用 struts 属性
我正在使用 Struts1;我正在使用逻辑迭代列表:迭代
我想在按下按钮时使用“index”属性作为传递给javascript函数的参数
sitax 如何访问 ctrl:button 标签内的正确“索引”属性?
谢谢
windows - 如何从单独的进程模拟 GetSaveFileName 对话框中“文件类型”组合框中的选择更改?
我正在编写一个自定义模块来使用专有软件。(该软件已经停产,我没有它的源代码。)我的模块将作为一个单独的进程运行。它的目标是通过这个专有软件使操作自动化。为此,我需要能够模拟保存该软件的输出。我可以通过模拟工具栏按钮单击来调出其另存为对话框:
然后我尝试将“另存为类型”组合框更改为所需的文件类型,添加要保存到的文件路径,并模拟单击“保存”按钮。我想出了以下代码来做到这一点:
有趣的是,上面的代码实现了目标(通过直观地更改“另存为类型”组合框)但是当文件被保存时,它仍然具有旧的或最初选择的类型,即“快速报告文件(.QRP)”。
知道如何解决这个问题吗?
jsp - 如何禁用工具提示 ctrl:columnhtml
我在带有通用控件的 jsp 中有这个简单的代码
当我将鼠标移到列标题上时,会显示一个工具提示,但我无法将其删除。如何禁用此功能?
delphi - 为什么 LineTo 成功时 FillRect 不绘制?
我正在尝试更改DateTimePicker的背景颜色,但我的问题与我正在尝试做的事情无关。
我正在捕捉一个窗口的WM_PAINT
消息,让默认的绘图实现发生(即 ComCtrl.dll 中的那个),然后随之而来并在它上面乱涂乱画。
最初我的代码很简单:
我什么都不做,控件正常绘制:
现在乐趣开始了
现在我将进行一些实际的绘图。这不是我想要的图纸,但它表明它有效。我将在控件的矩形上画一个十字:
这是非常简单的东西:
- 得到
HDC
我们将利用的 - 获取控件的客户端矩形
- 创建一支纯红色的笔
- 选择笔进入DC
- 画十字
- 恢复旧笔
- 删除我们的笔
它有效!
当然可以。
现在填充整个矩形
我不想画十字形,我想填充背景。首先,我将演示一种使用可怕、可怕的方法来实现我的目标的方法:
我会用很粗的笔画出控件的宽度
这是一件可怕的事情,但它具有实际工作的优点:
这是非常简单的东西:
- 创建一支 23 像素高的笔
- 从左到右描边选择器的整个宽度
它有效:
当然有效!
但我不想抹去一切
我不想删除 datetimepicker 中的所有内容,只是删除“客户”区域。所以我调整了矩形:
- 从顶部、左侧和底部减去 2 个像素
- datetimepicker 下拉按钮的右边缘减去 34 个像素
带有代码片段:
它有效:
当然有效!
FillRect 有什么问题?
最初我只是简单地使用FillRect
,除了它坚持只画白色;而不是任何颜色:
它不起作用:
当然它不起作用。它试图让我的生活变得困难。如果它有效,那么我就不会花 9 个小时在上面了。
我试着只填充矩形的上半部分;以确保我的来源是正确的:
它不起作用:
当然是行不通的。
为什么它不起作用?
为什么它不起作用?
奖金喋喋不休
您不能使用 Delphi 样式引擎,因为在使用 Windows 主题时(仅在使用自定义主题时)未启用样式引擎。
c++ - 如何在编辑控件中放置工具栏?
我最初的目标是在编辑控件中放置一个 X 按钮(后来证明这个编辑控件本身必须是组合框的一部分。)有人建议我使用这篇文章作为指导。
为了让它看起来更“漂亮”,我决定为那个 X 按钮使用一个工具栏。所以我想出了以下代码。下面是控件在 ComboBox 中的初始化方式:
这是编辑控件的子类窗口过程:
问题是我可以看到工具栏已创建(通过 Spy++),但它仍然处于非活动状态,并且我没有看到我的按钮(我得到的只是右侧的灰色矩形):
为了确保我可以自己创建工具栏,如果我将其父窗口从编辑控件(即hEditCtrl
)更改为主对话框窗口,它会显示(在错误的位置)并且可以很好地响应点击。所以我的结论是我必须在我的子类中阻止一些消息。问题是哪些?
知道我在这里想念什么吗?
c++ - 启用视觉样式
我目前正在尝试通过 Windows GUI API 工作,我看到的越多......让我们来重点:基本上我正在按照msdn的本指南启用 Win7 的视觉样式,但 InitCommandcontrolsEx 返回 false:我m 执行以下操作:
包括标题
使用所需的视觉样式对其进行初始化
创建一个将编译清单的资源文件
清单本身
为此,我正在使用来自 GNU binutils 的 windres
最后,我链接它和 ComCtl32.dll
但是正如介绍中提到的,InitCommonControlsEx 总是跳到错误的块中,不显示证明错误的更新的视觉样式。有任何想法吗?
系统:Win7 64Bit g++编译64Bit IDE Eclipse CDT
c++ - 选项卡控件的背景颜色的 GetSysColorBrush 常量?
我正在使用以下 API 在我的选项卡控制窗口的背景上绘制一个小股票图标(使用类名SysTabControl32
):
但它似乎没有画出一致的背景。让我展示。
在主题 Windows 7 上:
它正确地绘制它:
但如果我删除主题:
它绘制了这个白色背景:
那么我需要使用什么常量GetSysColorBrush
呢?