问题标签 [windows-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# - 当我们切换缩放比例时,AutoScale Factor 没有正确更新
问题:切换缩放时控件的边缘被剪掉。
视窗操作系统:10
我使用的是从 DpiAware Enabled 应用程序中的 Control 继承的 Usercontrol,我需要根据当前缩放来缩放控件
AutoScaleMode.Font
在窗体中设置。当前在 100 缩放如果我拖放用户控件并运行应用程序,控件将以定义的宽度和高度正确呈现。现在将缩放从 100 更改为 200 并运行相同的应用程序,控件需要根据 200 自动缩放缩放但这里我面临的问题是控件的高度和宽度没有正确更新[控制边缘被剪掉]。这个问题可能是由于 AutoScale 因子没有正确更新,此时如果我打开应用程序的设计器
表单的AutoScaleDimensions
值根据当前缩放比例进行更改,现在我再次运行应用程序,控件将正确呈现。
AutoScaleFactor 值未在以下覆盖函数中正确更新
表单 AutoScaleDimensions 值
这可能是因为我们切换缩放时 Form 的 AutoScaleDimension 值没有更新。(AutoScaleDimension (6F,13F) for 100 scaling) 将保持所有缩放。但是我们在运行应用程序之前打开设计器,AutoScaleDimension 值会根据相应的缩放比例正确更新其值,现在报告的问题将得到解决。
打开设计器之前
打开设计器后
请建议我如何解决报告的问题。
c# - 如何在 C# 中覆盖按钮属性(字体、高度、宽度、背景色)
如何使用 C# 覆盖我的控件?
需要设置按钮属性,如
默认。
如何对受尊重的按钮属性使用覆盖方法。
注意:我将在我的项目中使用 Windows 控件库控件。提前致谢。
c# - 关闭表单/再次打开后需要保持调整后的 datagridview 列的值
需要由 datagridview 列的用户设置调整大小的值,以便在关闭存在 datagridview 控件的表单后再次打开它,因此列的调整大小值应该与关闭表单时设置的值相同。
我试过的代码:1]
2]
dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells)
;
3]
我试过的属性:
c# - 从全屏模式最小化后,AxMSTSCLib 显示在任务栏中消失
我正在使用AxMSTSCLib
开发用于创建 RDP 连接的 Windows 应用程序。
下面列出的步骤导致我的远程桌面显示消失:
- 以全屏模式启动 RDP 连接
- 单击连接栏中的“还原”按钮
- 再次点击“最大化”按钮重新进入全屏模式
- 点击“最小化”按钮
- 然后我的应用程序消失了,我在任务栏中看不到它(但仍然在任务管理器中列出/运行)
如果我跳过第 2 步和第 3 步,当我从连接栏中单击“最小化”按钮时它不会消失,这真的很奇怪。
我在这里发布了我的部分代码,希望任何人都可以帮助我找出问题所在。
我尝试了一些方法,但都没有奏效。
或者
或者
到目前为止,我想到的唯一解决方案是禁用恢复按钮,如下所示:
这种方式并不能解决问题,只是避免触发问题。
我将不胜感激任何帮助。
winapi - 用 BCM_SETIMAGELIST 谁破坏了 HIMAGELIST?
我在看,BCM_SETIMAGELIST
但不清楚谁应该摧毁HIMAGELIST
?如果创建它的人WM_NCDESTROY
可以用来简单BCM_GETIMAGELIST
并销毁它,还是应该先获取它然后将其设置为空,例如 -1,然后销毁它?
蒂亚!!
winapi - TreeView 控件会泄漏正常的 ImageList 但 ListView 控件不会?
我使用任务管理器查看动态创建的控件,发现每次使用 ImageList 创建 TreeView 时,每次销毁树并再次创建时, GDI 对象计数都会增加 4。但是,ListView 从来没有问题。
我知道状态图像的TVS_CHECKBOXES
问题并且已经破坏了状态图像列表,但我随后实施了:
现在资源泄漏已经消失了。
到目前为止,您似乎必须手动清理以下图像WM_DESTROY
:
但是 ListView 是不同的,是按设计还是我应该继续WM_DESTROY
使用类似的东西:
请注意,使用WM_NCDESTROY
TreeViews 为时已晚。
c++ - 为什么按下按钮时调用超类的 OnPaint() 方法?
我正在尝试在MFC 类OnPaint()
的子类中实现该方法。CButton
然后,我有一个对话框。在资源编辑器中,我将按钮放在了它的表单上。在对话框声明中,我写了
和
在DoDataExchange()
. 所以,我想,我所做的一切都是为了让我的绘画程序正常工作。但我得到了奇怪的事情:当我的对话框打开时,图像被绘制好了(没有按钮的边框,正如我在我的方法中实现的那样)。但是,如果我试图点击它,图像会消失,按钮的边框也会被绘制,并且我在 VS 资源编辑器中指定的文本也会被绘制。即,看起来超类的OnPaint()
方法是通过某种方式调用的。我什至在我的方法的入口处放置了一个调试输出——它实际上没有被调用。然后,如果我将焦点切换到其他控件,我的按钮将用图像重绘。
请不要建议我使用其他方式在按钮上绘制图像。我需要得到关于所提问题的答案。
谢谢!