0

我需要为 3D 建模应用程序实现 GUI。到目前为止,我已经实现了一个 Windows 功能区菜单 - 现在我需要添加面板来添加控件。到目前为止,我能找到的最好的模型是Paint.net控制面板。所以我正在寻找看起来和行为都像这样的东西。

Paint.net 用户界面

我期待模仿的功能(如上图所示):

  • 细边框
  • 面板标题
  • 右上角的小关闭按钮
  • 薄窗口标题
  • 条件垂直滑块
  • 面板应始终位于主应用程序窗口的顶部
  • 面板不应停留在主应用程序窗口前面的其他应用程序之上
  • 面板/窗口不应在窗口任务栏中弹出新项目
  • 模糊透明度是可选的
  • 带按钮的小页脚也不错

到目前为止,这是我取得的成就(下面的代码):

到目前为止的应用程序 UI

这是一个非常基本的窗口 - 几个问题很明显:

  • 窗口布局是标准的应用程序窗口布局(粗边框+我不喜欢圆角)
  • 它有一个标题,但它的标题中没有按钮
  • 如果不需要,垂直滚动条不会隐藏
  • 窗口在 Windows 任务栏中弹出它自己的图标
  • 该窗口位于所有窗口应用程序的顶部,而不仅仅是应用程序主窗口

到目前为止的代码:

// 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 的代码。一个受过教育的方向也是受欢迎的:-)

4

1 回答 1

1

使用CreateWindowEx(...)扩展的窗口样式 WS_EX_TOOLWINDOW应该可以让您获得所需的窗框外观。

它还将处理:

  • 面板/窗口不应在窗口任务栏中弹出新项目

但我不确定它是否/如何影响“始终处于领先地位”。

于 2015-11-26T22:40:35.487 回答