Windows GUI:尝试 Paint.net 风格的面板
Windows GUI : attempting a Paint.net style pannel
我需要为 3D 建模应用程序实现 GUI。到目前为止,我已经实现了一个 Windows 功能区菜单 - 现在我需要添加面板来添加控件。到目前为止,我能找到的最好的模型是 Paint.net 控制面板。所以我正在寻找外观和行为都像这样的东西。
我期待模仿的功能(如上图所示):
- 细边框
- 面板标题
- 小top-right关闭按钮
- 瘦windowheader
- 条件垂直滑块
- 面板 应始终位于主应用的顶部 window
- 面板 不应位于主应用程序前面的其他应用程序之上 window
- pannels/windows 不应在 windows 任务栏中弹出新项目
- 模糊透明度是可选的
- 带按钮的小页脚也不错
到目前为止,这是我取得的成就(代码如下):
这是一个非常基础的 windows - 有几个问题很明显:
- window 布局是标准应用 window 布局(粗边框 + 我不喜欢圆边)
- 它有标题但没有按钮 header
- 不需要时垂直滚动条不隐藏
- window 在 Windows 任务栏中弹出它自己的图标
- window 位于 所有 window 应用 之上,而不仅仅是主应用 window
到目前为止的代码:
// Model structure pannel
wndClass.lpszClassName = "StructurePannel";
if (!RegisterClassEx(&wndClass)) return -1;
g_WindowHandlePannelStructure = CreateWindowEx(
WS_EX_TOPMOST,
"StructurePannel",
"Model Structure Pannel",
WS_BORDER | WS_CAPTION | WS_OVERLAPPED | WS_POPUP | WS_SIZEBOX | WS_VSCROLL,
CW_USEDEFAULT,
CW_USEDEFAULT,
300,
550,
NULL,
NULL,
hInstance,
NULL);
我正在找人给我一个详尽的 Paint.net 风格的面板示例 - 或者给我一个好的代码示例。 我已经下载了最新的开源 PDN 源代码,但不知道从哪里开始寻找负责这部分的代码UI。也欢迎有教养的指导:-)
使用 CreateWindowEx(...)
和 extended window style WS_EX_TOOLWINDOW
应该可以得到您想要的 window 框架外观。
它还会处理:
- pannels/windows 不应在 windows 任务栏中弹出新项目
但我不确定 if/how 它会影响 "always on top"-ness。
我需要为 3D 建模应用程序实现 GUI。到目前为止,我已经实现了一个 Windows 功能区菜单 - 现在我需要添加面板来添加控件。到目前为止,我能找到的最好的模型是 Paint.net 控制面板。所以我正在寻找外观和行为都像这样的东西。
我期待模仿的功能(如上图所示):
- 细边框
- 面板标题
- 小top-right关闭按钮
- 瘦windowheader
- 条件垂直滑块
- 面板 应始终位于主应用的顶部 window
- 面板 不应位于主应用程序前面的其他应用程序之上 window
- pannels/windows 不应在 windows 任务栏中弹出新项目
- 模糊透明度是可选的
- 带按钮的小页脚也不错
到目前为止,这是我取得的成就(代码如下):
这是一个非常基础的 windows - 有几个问题很明显:
- window 布局是标准应用 window 布局(粗边框 + 我不喜欢圆边)
- 它有标题但没有按钮 header
- 不需要时垂直滚动条不隐藏
- window 在 Windows 任务栏中弹出它自己的图标
- window 位于 所有 window 应用 之上,而不仅仅是主应用 window
到目前为止的代码:
// Model structure pannel
wndClass.lpszClassName = "StructurePannel";
if (!RegisterClassEx(&wndClass)) return -1;
g_WindowHandlePannelStructure = CreateWindowEx(
WS_EX_TOPMOST,
"StructurePannel",
"Model Structure Pannel",
WS_BORDER | WS_CAPTION | WS_OVERLAPPED | WS_POPUP | WS_SIZEBOX | WS_VSCROLL,
CW_USEDEFAULT,
CW_USEDEFAULT,
300,
550,
NULL,
NULL,
hInstance,
NULL);
我正在找人给我一个详尽的 Paint.net 风格的面板示例 - 或者给我一个好的代码示例。 我已经下载了最新的开源 PDN 源代码,但不知道从哪里开始寻找负责这部分的代码UI。也欢迎有教养的指导:-)
使用 CreateWindowEx(...)
和 extended window style WS_EX_TOOLWINDOW
应该可以得到您想要的 window 框架外观。
它还会处理:
- pannels/windows 不应在 windows 任务栏中弹出新项目
但我不确定 if/how 它会影响 "always on top"-ness。