- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已从 2009 年升级到 Delphi XE,但遇到了一个奇怪的问题。
我新建一个项目,放下一个TRibbon控件,编译并运行。将表单保持为默认大小,然后最小化并恢复,不会出现任何问题。然后我最大化表单,最小化并恢复,表单颜色更改为黑色。
我没有随机代码来更改它,并且正在使用 Delphi XE 附带的所有默认值,并且它每次都会执行此操作,不会失败。
我已将编译后的 exe 移至 friend 的计算机上,但问题仍然存在,因此我知道这不是我的计算机。如果我关闭 Aero 效果,问题就会消失,但是重新打开 Aero 效果,问题就会再次出现。
有什么想法吗?我无法在互联网上找到与此问题相关的任何相关线索。
谢谢,塞布
编辑(根据要求,显示此行为的表单的 DFM。注意:这种情况发生在我启动的任何项目上):
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 555
ClientWidth = 989
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PrintScale = poNone
Scaled = False
PixelsPerInch = 96
TextHeight = 13
object Ribbon1: TRibbon
Left = 0
Top = 0
Width = 989
Height = 143
Caption = 'Ribbon1'
ExplicitLeft = 104
ExplicitTop = 296
ExplicitWidth = 0
StyleName = 'Ribbon - Luna'
end
end
一点也不奇怪,这只是一个单一形式的新项目。
最佳答案
我能够重现该错误,以下是我发现的一些问题。也许他们会帮助别人解决这个问题。
OnClick
事件中调用 Invalidate
,表单将恢复其颜色。WM_SIZE
上从 WndProc
启用计时器,其中 wParam
= SIZE_MAXIMIZED
,然后从计时器中调用 Invalidate
,表单将恢复其颜色。这本质上与第一种方法(从按钮调用 Invalidate
)相同,但计时器会自动执行此操作,并确保仅当没有更多消息时才调用 Invalidate
被处理。我用一个简单的 PostMessage
尝试了同样的操作,但没有成功(即:我可能 Invalidate
太快了,这可能是另一个线索)Application.MainFormOnTaskbar := False
,我将不再看到黑色表单。功能区占据表单的顶部。将 TPanel
放在表单的其余部分上,使其 Align = alClient
并将所有内容放在面板上。面板后面的黑色不再可见!
关于具有 Aero 效果的 Delphi XE 导致油漆问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6490900/
我正在使用 OpenGL 进行渲染。我的东西是沙盒的,所以我使用 CreateDesktop() 来防止粉碎攻击。但是,无论出于何种原因创建新桌面时都没有 Aero 组合(尽管默认桌面有)并且尝试使用
使用 Aero 主题时,是否有样式的资源名称,我可以 Hook 以实现与标准 Win7 应用程序相同的外观: 换句话说,是否已经有众所周知的 TextBlocks(和其他控件)样式名称可以让我获得与上
我想弄清楚在 Vista 或 Win7 中使用 Aero 主题时如何在窗口的标题栏上绘制自定义按钮。我需要在不更改原始代码的情况下将其应用于许多不同的应用程序,因此这将在一个 Hook 过程中。由于无
有谁知道是否有 API 以编程方式禁用/启用特定的 Windows 视觉效果,例如“启用透明玻璃”或“启用 Aero Peek”? 我所指的效果是那些配置在:系统/高级系统首选项/高级(选项卡)/性能
使用 GDI+ 在玻璃上绘制文本: graphics.DrawString(s, Length(s), font, MakePointF(x, y), brush); 您会注意到启用 ClearTyp
有人有关于 7 或 Vista 上的 Delphi 和 Windows Aero 的好资源吗? 我们即将将 Windows 7 添加到我们的公司,并希望确保我们的内部应用程序尽可能适应。 使用 Del
我一直在尝试在 Delphi 2010 中使用 Aero 来找到一个好看的设计。人们看到的一个明显的用途是玻璃框架被扩展以包括屏幕底部的“确定”/“取消”按钮。我注意到,这在 Delphi 2010
使用 GDI+ 绘制各种颜色: brush = new SolidBrush(color); graphics.FillRectangle(brush, x, y, width, height); 您
Raymond Chen 已确认 there is no publicly documented way去做这个。有谁知道undocumented solution ? 最佳答案 我也有同样的问题,并
我正在开发一个适用于 Windows(XP、Vista、7、8)的窗口(非全屏)OpenGL 应用程序,其中 VSync 和 GPU 帧排队会导致非常明显(且严重)的输入延迟。我使用 wglSwapB
我使用 WPF 制作了一个非常漂亮的 Windows 8 风格界面。结果已经比我希望的要好得多,但我想知道以下几点: 是否可以通过某种方式检索用户设置的当前窗口颜色?您知道,您可以在右键单击桌面时设置
第一次绘制时,绘制不正确。但是,当我最小化框架并恢复它时,它被正确绘制。 我该如何解决这个问题?我尝试过 repaint()。 这是代码 import javax.swing.JComponent;
我正在寻找一种将自定义控件绘制到对话框的客户端和非客户端区域的方法。大致就是下面的白色区域 我使用了 DwmExtendFrameIntoClientArea 并且我设法通过在整个窗口上扩展客户区来获
我已经使用 DWM API 通过调用 DwmExtendFrameIntoClientArea 创建了一个 Aero 玻璃窗。 void CMainFrame::OnActivate(UINT nSt
我有一个应用程序,我已经使用 C++/Win32 制作了一段时间,当我创建我的第一个对话框时,当我没有启用 aero 或我没有使用 windows 7/8 时,它显示得很奇怪。 这是它的截图: 这是我
我正在尝试在 Qt5.6.0 中制作一个无边框窗口,具有 aero-snap 功能。一切正常,除了当我最大化窗口时:它太大了。 我的屏幕分辨率是 2560x1440,所以窗口的大小应该是 2560x1
我遇到 Aero Snap 无法与我正在处理的应用程序(Windows 桌面、 native C++ 应用程序)一起工作的问题,我对发生的事情有点困惑,因为它似乎应该可以正常工作,开箱即用。 我在一个
我有一个使用 MFC 创建的模态对话框。当它出现时,Aero 主题会为出现的新窗口执行淡入过渡。在我的特殊情况下,我会立即从一个对话框切换到另一个对话框,淡入淡出的效果让人分心。有没有一种方法可以禁用
好的,所以我已经按照文档一直到最小的细节,当我尝试调试和运行 (F5) 时,它一直给我以下错误: PInvokeStackImbalance was detected Message: A call
我到处查看如何在我的程序中使用 Aero。我找不到任何可以在您自己的窗口后面预览窗口的 C 函数,例如文件资源管理器或任何主流浏览器在其标题栏上所做的那样。 有些程序通过添加看起来像 Windows
我是一名优秀的程序员,十分优秀!