簡體   English   中英

C ++如何在DirectX中制作GUI?

[英]C++ How to make a GUI in directx?

我對此主題沒有什么疑問。
我為按鈕創建了一個類,該類有問題。
問題是:
1.如果要單擊按鈕,我想創建要調用的函數,問題是如果單擊每個按鈕,每個按鈕都會做不同的事情。 所以我不知道如何創建對每個按鈕都會執行不同操作的函數。
我不知道我應該如何設計我的界面。
如果您能給我一個關於我應該如何設計GUI的想法,那將會很棒。
這是我的按鈕課

class GUIButtons
{
public:
    GUIButtons(void);
    ~GUIButtons(void);
    void LoadMesh(string fileName, int startAnimation, LPDIRECT3DDEVICE9 d3ddev);
    void Render(float timeElapsed, D3DXMATRIX *matWorld);
    void EventProc(HWND hWnd, UINT msg, LPDIRECT3DDEVICE9 d3ddev);
    void Picking(HWND hWnd, LPDIRECT3DDEVICE9 d3ddev);
private:
    CXFileEntity *Button;
};

編輯2:
伙計,這可能嗎?
我創建了兩個函數,然后將一個函數指向另一個函數。
像這樣

void a()
{
     ....
}
void b() = a;

編輯3:
好的,我應該對onClick()函數使用這種方式。

void Onclick( void(*fun) )
{
    fun();
}

我將函數傳遞給OnClick不是調用函數。
我應該用這種方式嗎?

使用繼承/多態性:基類是GUIButtons ,每個新的單獨按鈕均來自該基類:

class MyButton : public GUIButtons { ... }

然后單擊的功能來自虛擬方法onClick()或其他方法。

更多詳情:

class GUIButtons 
{
   ... \\ lots of stuff
   virtual void onClick() { };
};

class CloseButton : public GUIButtons
{
  ...
  virtual void onClick()
  {
    //code to close window
  }
};

class SettingsButton : public GUIButtons
{
  ...
  virtual void onClick()
  {
    //stuff to open settings menu
  }
};

單擊按鈕是一個動作/事件。 您可以將click動作封裝為一個類。 使用按鈕小部件的應用程序對此操作的解釋和使用方式有所不同。 gui庫必須通知已單擊了包含相關信息的按鈕。 您可以參考流行的GUI庫(例如Qt或Gtk +)作為示例,以了解它們如何實現GUI事件等等。

我建議您閱讀《 DirectX 9用戶界面:設計和實現》一書 我有它,我可能會說您會在這里找到所需的一切!!!)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM