它们是在Linux上使特定窗口无边框的标准方法吗?我相信窗口边框是由你的窗口管理器绘制的,所以我可能需要使用一个特定的窗口管理器(可以找到,我只需要知道哪一个)...我的希望是那个所有窗口管理器都可能遵循一些标准,允许我以编程方式执行此操作...
我有一个需要调整大小的无边界 winForm,我设法这样做:
protected override void WndProc(ref Message m)
{
const int wmNcHitTest = 0x84;
const int htLeft = 10;
const int htRight = 11;
const int htTop = 12;
const int htTopLeft = 13;
const int htTopRight = 14;
const int htBottom = 15;
const int htBottomLeft = 16;
const int htBottomRight = 17;
if (m.Msg == wmNcHitTest)
{
Console.Write(true + "\n");
int x = (int)(m.LParam.ToInt64() & 0xFFFF);
int y = (int)((m.LParam.ToInt64() & 0xFFFF0000) >> 16);
Point pt = PointToClient(new …Run Code Online (Sandbox Code Playgroud) 我可以删除此元素的背景和交替颜色,但我找不到如何删除它周围的边框。是否可以?
我正在努力实现像Visual Studio安装程序那样的无边框窗口和投影:
我尝试了各种选项,比如CS_DROPSHADOW和DWM API,但是一旦我应用了WS_THICKFRAME样式,阴影就消失了.
这是我创建和居中窗口的代码:
RECT R = {0, 0, _clientWidth, _clientHeight};
AdjustWindowRect(&R, WS_OVERLAPPEDWINDOW, false);
_mainWnd = CreateWindow(L"D3DWndClassName", _mainWndCaption.c_str(), WS_OVERLAPPEDWINDOW, 100, 100, R.right, R.bottom, nullptr, nullptr, _appInst, nullptr);
if(!_mainWnd){
MessageBox(nullptr, L"CreateWindow FAILED", nullptr, 0);
PostQuitMessage(0);
}
RECT rc;
GetWindowRect(_mainWnd, &rc);
LONG lStyle = GetWindowLong(_mainWnd, GWL_STYLE);
lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZE | WS_MAXIMIZE | WS_SYSMENU );
SetWindowLong(_mainWnd, GWL_STYLE, lStyle);
int xPos = (GetSystemMetrics(SM_CXSCREEN) - rc.right) / 2;
int yPos = (GetSystemMetrics(SM_CYSCREEN) - rc.bottom) / 2; …Run Code Online (Sandbox Code Playgroud) 我有一种情况,我想通过在其客户区域上按住鼠标右键来移动窗体; 正如我所说,这种形式是无国界的.
我想"原生"地移动它(如果可能的话,否则其他答案也可以).我的意思是当你在标题栏上按住鼠标左键时它的行为方式(鼠标移动和类似的东西,我得到很多奇怪的行为,但也许只是我).
我已经阅读了很多内容,这篇文章看起来很有帮助
我尝试了各种方式来使用它,并通过http://msdn.microsoft.com/en-us/library/ff468877%28v=VS.85%29.aspx观看以寻找其他有用的东西,WM_NCRBUTTONDOWN出现在我的脑海中, wndproc没有检测到它,也许是因为它是由表单处理的?
任何建议都表示赞赏,谢谢
弗朗切斯科
我想让datagridview对象的左手边框消失.有什么建议?
我使用 c# 创建了一个无边框表单,但可以使自定义标题栏可移动,因此我搜索互联网并找到了以下代码:
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
if (m.Msg == WM_NCHITTEST)
m.Result = (IntPtr)(HT_CAPTION);
}
private const int WM_NCHITTEST = 0x84;
private const int HT_CLIENT = 0x1;
private const int HT_CAPTION = 0x2;
Run Code Online (Sandbox Code Playgroud)
应用此代码后,可以在除标题栏之外的表单的每一英寸中单击并拖动我的表单。
我正在尝试将XNA游戏移植到MonoGame.我只想针对Windows平台.我想在无边框窗口中显示游戏.我这样做,在我的XNA游戏中:
private void SetForm()
{
Form myForm = (Form)Form.FromHandle(this.Window.Handle);
myForm.Name = "WIPForm";
int width = 1024;
int height = 768;
IntPtr auxptr = (this.Window.Handle);
SafeNativeMethods.MoveWindow(
(int)auxptr,
0,
0,
Properties.Settings.Default.width,
Properties.Settings.Default.height,
1);
myForm.FormBorderStyle = FormBorderStyle.None;
myForm.SetBounds(0, 0, width, height);
}
Run Code Online (Sandbox Code Playgroud)
当我在monogame版本myForm = null中测试此代码时.有没有办法在monogame版本中绘制无边框窗口?
我的应用程序中有一些可关闭的视图,标题中有一个关闭按钮。我想让这个按钮无边框和小。
编码:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="?android:attr/borderlessButtonStyle"
android:layout_margin="0dp"
android:padding="0dp"
android:src="@android:drawable/ic_menu_close_clear_cancel"/>
Run Code Online (Sandbox Code Playgroud)
我制作了一个无边框表格,然后将背景图像(PNG格式)设置为如下图所示.我想要的是使表单的背景透明,以便只显示圆形图像.我尝试将表单更改BackColor为Transparent但是我收到错误说Property value is not vald
