繁体   English   中英

Windows GUI:尝试使用Paint.net样式面板

[英]Windows GUI : attempting a Paint.net style pannel

我需要为3D建模应用程序实现GUI。 到目前为止,我已经实现了Windows Ribbon菜单-现在我需要添加面板以向其中添加控件。 到目前为止,我能找到的最好的模型是Paint.net控制面板。 因此,我正在寻找外观和行为类似的东西。

Paint.net用户界面

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

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

到目前为止,这是我实现的(下面的代码):

到目前为止的应用程序界面

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

  • 窗口布局是标准的应用程序窗口布局(粗边框+我不喜欢圆角边缘)
  • 它具有标题,但标题中没有按钮
  • 如果不需要,垂直滚动条不会隐藏
  • 窗口在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此部分的代码。 也欢迎有教养的方向:-)

使用CreateWindowEx(...)扩展的窗口样式 WS_EX_TOOLWINDOW应该可以为您提供所需的窗口框架外观。

它还将照顾:

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

但是我不确定它是否会/如何影响“永远在最前面”的状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM