【发布时间】:2014-02-10 11:23:26
【问题描述】:
我将开始为 Windows 开发应用程序。但我想摆脱取消按钮和典型的 Windows 格式,例如:
我希望它看起来像这样,摆脱 Windows 格式并以我自己的方式设计我的应用程序。
那么,有人会建议我,怎么做?我搜索了很多,但没有找到任何结果。
【问题讨论】:
我将开始为 Windows 开发应用程序。但我想摆脱取消按钮和典型的 Windows 格式,例如:
我希望它看起来像这样,摆脱 Windows 格式并以我自己的方式设计我的应用程序。
那么,有人会建议我,怎么做?我搜索了很多,但没有找到任何结果。
【问题讨论】:
如果这个应用程序。是使用 Swing GUI 工具包编写的,它就像使用 JWindow 或调用 Frame.setUndecorated(true) 一样简单。
【讨论】:
很难说你的问题是什么语言,这里是 C++ for WinAPI 的答案:
像这样创建你的窗口:
HWND hWnd;
WNDCLASS WndCls;
// Create the application window
WndCls.style = CS_HREDRAW | CS_VREDRAW;
WndCls.lpfnWndProc = WndProcedure;
WndCls.cbClsExtra = 0;
WndCls.cbWndExtra = 0;
WndCls.hIcon = NULL;
WndCls.hCursor = LoadCursor(NULL, IDC_ARROW);
WndCls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndCls.lpszMenuName = NULL;
WndCls.lpszClassName = _T("WndClassName");
WndCls.hInstance = GetModuleHandle(NULL);
// Register the window class
RegisterClass(&WndCls);
hWnd = CreateWindow(_T("MyWnd"),
_T("WndClassName"),
WS_BORDER,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
::GetModuleHandle(0),
NULL);
然后:
::ShowWindow(hWnd, SW_SHOW);
SetWindowLong(hWnd, GWL_STYLE, 0);
您将拥有一个白色矩形应用程序,您可以随心所欲地进行绘画。
此外,您可以使用 Visual Studio 包中的 Spy++ 监视窗口样式
【讨论】:
它被称为标题栏。通过移除表单边框样式来隐藏它。
this.FormBorderStyle= System.Windows.Forms.FormBorderStyle.None;
【讨论】: