簡體   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