问题标签 [nonclient-area]
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# - 将按钮添加到 WPF 中的非客户区
作为我之前关于Non Client Area
在Window Chrome(也Windows Forms
称为 WPF
我需要在Non Client Area
或 Window Chrome 中添加一些按钮,类似于 Firefox 4
据我所知,在 WPF 中更容易做到这一点。我不知道从哪里开始。如果可能的话,有人可以给我一些关于如何做到这一点的指导吗?
windows - Windows 标题栏上的 DrawText 不再有效
为了在标题栏的右端写一些文本,我的程序捕获WM_NCPAINT
,获取设备上下文,计算写文本的位置,然后调用DrawText
. 此代码过去可以工作,但在 Windows 8 和 Windows 10 中,它不再工作。在这些较新版本的 Windows 中,您似乎根本无法在标题栏上绘画。
使用 Win API(不是 MFC)获取设备上下文如下:-
在Windows 开发中心中对此进行了描述:-
GetWindowDC函数检索整个窗口的设备上下文 (DC),包括标题栏、菜单和滚动条。窗口设备上下文允许在窗口中的任何位置进行绘制,因为设备上下文的来源是窗口的左上角而不是客户区。
没有提及此功能是特定于 Windows 版本的,但它所描述的内容不再有效。DrawText
用一个大的黑色矩形 (-300,-300,1000,1000)替换对的调用,使标题栏保持完好无损,表明绘制整个窗口矩形是不可能的。
我尝试按如下方式获取设备上下文:-
如. _ WM_NCPAINT
只要窗口类使用或之一注册CS_CLASSDC
,则返回 an (如果不返回零)。但这有完全相同的问题。CS_OWNDC
CS_PARENTDC
hDC
hDC
我尝试了上面的变体,因为剪辑看起来很可疑。我试过了:-
毕竟文档都说DCX_WINDOW
:-
值: DCX_WINDOW
含义:返回对应于窗口矩形而不是客户矩形的 DC。
此设备上下文也展示了相同的行为。
如何获得允许我DrawText
在标题栏上或确实绘制任何内容的设备上下文?
c# - 自定义winforms框架的最佳方法?
我想在窗口框架上绘制一些简单的矩形和文本,使其看起来像 Visual Studio。可以完成还是我应该制作一个无边框窗口并自己处理移动和调整大小?
编辑:我写了这个。但是我现在怎么画?
c - 如何删除任意 HWND 边框 (WinAPI)?
长话短说,我正在构建一个 i3 风格的平铺窗口管理器,并且需要覆盖任意窗口的镶边以强制删除边框、标题栏和相关按钮。
在尝试了几乎所有与镀铬相关的 WS_STYLE 和 WS_EX 样式的逻辑组合后,我对大多数应用程序一无所获。简单的本机程序(终端按预期工作)没问题,但对于绝大多数其他应用程序,也会出现同样的问题;
大多数情况下都会出现上述结果。有一个大小相同的周围边框,但每个应用程序的行为不同。据我所知,这是用于鼠标拖动命中测试的“透明”(在这种情况下显然不是)边框(尽管在样式中禁用了框架,但这不应该存在)。似乎该区域中的帧缓冲区没有被清除(即,如果将窗口调整为自身大小,则边框将被该位置的先前像素填充)。
这是一个快速的周末项目——我的工作与 WinAPI 编程无关,所以这对我来说是全新的,但如果我假设正确,那么这个边界实际上是非客户区吗?换句话说,非客户区必须归零,以便客户区占据整个窗口矩形。我试图通过使用 GWL_WNDPROC 对所有目标窗口进行子类化并将 WM_NCCALCSIZE 归零来处理这个问题,但我得到了相同的结果。
如何强制任意窗口(不是我自己创建的)完全删除它的整个非客户区?