问题标签 [createparams]

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.

0 投票
5 回答
23372 浏览

c# - 在 Windows 窗体应用程序中闪烁

我有一个应用程序,上面有很多控件。而且它有大量的闪烁,尤其是在启动时。

我对它应用了这个修复

这效果很好 - 闪烁减少了令人难以置信的数量。但是,副作用是窗口右上角的最小化、最大化和关闭按钮在我将鼠标移到或单击它们时没有动画(尽管它们仍然有效)。这给应用程序一种挂起的感觉。

如何在保留最大化、最小化和关闭按钮的可用性的同时保留 WS_EX_COMPOSITED?

这发生在 Windows XP 上。正如@fallenidol 指出的那样,这在 Windows 7 上不是问题。

0 投票
1 回答
604 浏览

c# - 对 CreateParams 有效使用位运算符,不希望的行为?

我正在为 ProgressBar 控件编写一个包装器(不是真正的包装器,而是正确实现 Vista 功能)。这是我的代码:

但问题是,当您将控件放在窗体上时,它以垂直方式开始,带有 PBS_SMOOTH。所以我的问题是,在使用按位运算在 CreateParams.Style 上设置值之前,我应该做哪些额外的检查,或者我的按位运算(或实际上我的代码)是否正确?

更新感谢 Jon Skeet 能够得到这个完全修复和工作,并应用 UpdateStyles() 来强制新样式在属性中按需 apply(),控件现在可以按预期工作并被抛光:)

0 投票
1 回答
2840 浏览

windows - 是否可以覆盖 CreateParams 过程让我仍然可以完全访问 WS_SYSMENU?

完整的源代码可以在这里找到: http ://www.eyeClaxton.com/download/delphi/SkinProject.zip

我正在尝试创建一个没有“标题或边框”的蒙皮表单,但仍然让我可以完全访问系统菜单(IE:移动、最小化、最大化、还原和大小)。我可以通过使用 WS_SYSMENU、WS_MAXIMIZEBOX、WS_MINIMIZEBOX 覆盖 CreateParams 过程来实现所有菜单项。使用 WS_SIZEBOX 可以让我访问菜单“大小”命令,但会绘制我不想要的边框。我在上面的链接中包含了一个完整的(Delphi 7)示例。如果需要更多信息,请随时询问。

解决方案:

完整的“更新”源代码可以在这里找到: http ://www.eyeClaxton.com/download/delphi/SkinProject.zip

0 投票
2 回答
3690 浏览

c# - DataGridView 绘制错误

我有一个表单,它有其他控件的色调(按钮、自定义控件、标签、面板、gridview)。你可以猜到我有闪烁的问题。我尝试了双缓冲,但无法解决。最后我尝试了这个:

闪烁消失了,但我的 datagridview 画错了。它显示 CellBorders,BorderColors 错误。实际上,这段代码在背景图像、线条和其他内容方面存在一些问题。为什么会这样,如何解决?

0 投票
2 回答
1001 浏览

delphi - 更改 TCreateParams.WinClassName 或如何找到另一个自己的应用程序的表单句柄是否安全?

我有两个应用程序,第一个需要从第二个(也是我自己的)但不同的应用程序(不是实例,而是不同的应用程序)中找到表单的句柄。我见过一些技术,但我想知道我想做的事情是否安全,或者什么是有效的方法。

我正在考虑使用FindWindow可以传递类名的函数,所以如果我将表单中的WinClassName成员更改CreateParams为某个唯一值(例如 GUID),那么我将很容易找到这个大窗口机会是我的应用程序中的一个。

需要查找其表格的应用程序:

另一个需要从前一个应用程序中查找表单的应用程序:

我的问题是:

将此成员更改TCreateParams为我想要的任何内容是否安全,或者在某些方面不安全?或者您将如何从您自己的另一个应用程序(不是应用程序实例,而是您自己的另一个应用程序)中查找表单句柄?

非常感谢!

0 投票
0 回答
909 浏览

winforms - Aero drop - 无边框形式上的阴影?

我尝试了以下代码来覆盖 CreateParams。

它工作正常。但它没有给出预期的结果。

这是我想要的阴影类型...

这是我想要的影子类型。

这就是我从代码中得到的......

这是我从代码中得到的。

我在想是否有任何方法可以获得这种航空风格的 Drop-Shadows ?

0 投票
1 回答
1041 浏览

vb.net - 显示模态对话框时,窗体在顶部但不可点击

我想要的是一个小的通知消息,当有任何消息要显示时,它会显示在右下角。如果没有,则不会显示通知消息。通知消息不应窃取焦点或阻塞主应用程序。

我所拥有的是一个将任务作为一种消息服务运行的应用程序。此应用程序包含多个作为模式对话框打开的对话框。

当消息到达应用程序时,它会被添加到可观察列表中。这会在显示通知消息的表单中触发一个事件处理程序,并重新绘制它以显示列表中的第一项。当一条消息被读取/关闭时,它会从再次触发事件的列表中删除,并使用列表中第一项的信息更新表单。如果列表为空,则隐藏表单。

我的问题是,如果我收到一条消息并显示通知消息表单,并且在我关闭它之前,在主应用程序中打开了一个模式对话框,我的通知消息表单仍然位于所有内容之上,甚至是模式对话框,但它不可点击。

我已经搜索并阅读了几个论坛以寻求答案,但一直未能找到答案。

可以在 Github 上找到一个模拟这种行为的小型测试应用程序。 https://github.com/Oneleg/NotificationMessage

一些快速信息:

NotificationMessage 表单具有:

  • FormBorderStyle = 无
  • 最顶层 = 假
  • 用 Show() 显示
  • 重载 ShowWithoutActivation()
  • 使用 WS_EX_NOACTIVATE WS_EX_TOOLWINDOW WS_EX_TOPMOST 重载 CreateParams

关于如何解决这个问题的任何想法?

0 投票
0 回答
516 浏览

c# - CreateParams 发生 - 窗口句柄异常

我在我自己的 Tabcontrol 上使用 CreateParams 来摆脱它的闪烁,同时调整大小和加载。这只是一个我实现 CreateParams 的空类。

如果您有标签、文本框或按钮并且在 Windows 7 上运行良好。但如果您有面板、tablelayoutpanel、datagridview 和 Windows XP,那么它运行得不是很好。例如,datagridview 的列没有以正确的方式出现。

如果当前系统是Windows XP,我还发现有人发布了以下内容。但这发生在我的 XP 上,在启动窗口之前出现窗口句柄异常。仅使用 0x02000000 它正在加载,但正如我所写的那样,列并没有以正确的方式出现。

有没有人知道有关闪烁和集成数据网格视图的任何解决方法,而不会出现此异常?

0 投票
1 回答
893 浏览

c# - .NET Winforms 垂直进度条文本

最近,我的 win 表单应用程序需要一个垂直进度条。派生类如下所示。我还需要在进度条上添加文本。由于透明度问题,它上面的标签不起作用。经过一番研究,我发现了一些东西。但问题是,虽然进度条是垂直的,但它上面的文本却是水平的。我也需要垂直的。我怎样才能做到这一点?

谢谢。

0 投票
1 回答
2617 浏览

.net - 闪烁和“CreateParams”

我想避免在我的应用程序面板中闪烁,从4 个月前进行谷歌搜索后,尝试子类面板后,在这里询问两三次后,在其他论坛中询问后......没有人有解决方案,但今天我找到了在最后一个答案中奇迹般的解决方案:他们是一种阻止图片框在调整大小时闪烁的方法吗?

现在我想知道那几行代码的真正作用。我需要了解该代码对我的应用程序的作用,

是避免闪烁的好方法吗?

MSDN 说:

“不应重写 CreateParams 属性并用于调整派生控件的属性”

但为什么不呢?,这是我发现真正让我的面板闪烁的唯一方法,这就是为什么我想了解更多关于我上面发布的代码的原因,我想了解所有订单,以及该子的好处和负面的,所有的事情都是受欢迎的......

有人可以向我解释更多关于该代码的信息吗?

我已经在我的所有应用程序中测试了“闪烁解决方案”,是的,它是一个闪烁的解决方案......但有负面影响,因为我的程序转 -200% 速度更慢,我的意思是当使用该覆盖子程序时非常慢,比如 x6 倍,所以按原样使用覆盖子不是一个好主意。

有人知道我是否可以在不影响我的应用程序的情况下避免闪烁?