如何创建一个只显示窗口边框但不想显示窗口本身内容的应用程序窗口。我的意思是我想通过整个窗口区域查看桌面的其余部分或其他窗口。不使用透明胶片。只需绘制边框即可。我想这就像检测消息WM_ERASEBKGND和WM_PAINT并且在这些情况下什么都不做以强制不在内容中绘制,但我已经尝试过并且窗口仍在绘制白色背景。如何获取? 最佳答案 据我了解,如果您在win32应用程序或wince应用程序中工作。类注册时,即窗口类的注册。IfobjectofWNDCLASSiswc.Assignthevalueforwc.hbrbackgroundasf
我试图在下面的代码中从第1行转到第2行:使用系统;使用System.Windows.Forms;命名空间MyNameSpace{内部类MyTextBox:System.Windows.Forms.TextBox{protected覆盖voidOnEnabledChanged(EventArgse){base.OnEnabledChanged(e);无效();//Line#1-可以到达这里刷新();}protected覆盖voidOnPaint(PaintEventArgse){base.OnPaint(e);System.Diagnostics.Debugger.Break();//第
我想用C#直接在桌面上画图。经过一番搜索,我最终使用了来自DesktopHDC(null)的Graphics对象。然后,我使用这个Graphics对象正常绘画。问题是当屏幕的任何部分被重绘时我的形状会丢失。我尝试了一个While循环,但它实际上以应用程序所能达到的速度结束绘制,这不是桌面的更新速率。通常,我需要将我的绘图代码放在“OnPaint”事件中,但桌面上不存在这样的事情。我该怎么做?示例代码:https://stackoverflow.com/questions/1536141/how-to-draw-directly-on-the-windows-desktop-c
我已经做了几天了,这让我抓狂。我有一个继承自System.Windows.Forms.Panel的控件,我正试图覆盖OnPaint。它很简单,完全忽略了它。publicclassCollapsiblePanel:System.Windows.Forms.Panel{publicCollapsiblePanel(){////RequiredfortheWindowsFormDesigner//InitializeComponent();////TODO:AddanyconstructorcodeafterInitializeComponentcall//SetStyle(ControlS
我想用C#直接在桌面上画图。经过一番搜索,我最终使用了来自DesktopHDC(null)的Graphics对象。然后,我使用这个Graphics对象正常绘画。问题是当屏幕的任何部分被重绘时我的形状会丢失。我尝试了一个While循环,但它实际上以应用程序所能达到的速度结束绘制,这不是桌面的更新速率。通常,我需要将我的绘图代码放在“OnPaint”事件中,但桌面上不存在这样的事情。我该怎么做?示例代码:https://stackoverflow.com/questions/1536141/how-to-draw-directly-on-the-windows-desktop-c
我有一个ManualResetEvent。有一次,我使用WaitOne等待那个事件。令我惊讶的是,我在WaitOne中收到了一个OnPaint事件。这种情况也经常发生。堆栈跟踪看起来像这样:我知道WaitOne会阻塞当前线程,并且在事件触发之前不允许执行任何其他代码。有人能解释一下这里发生了什么吗? 最佳答案 这是设计使然。CLR遵守单线程单元(STA)的契约(Contract)。GUI应用程序的主线程是Windows编程所要求的STA,Main()方法中的[STAThread]属性可确保这一点。STA线程的硬性规则是它必须泵送消息