我对这个问题几乎没有问题
我为按钮创建了一个类,该类有问题
问题是:
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
,而不是调用函数
我应该用这种方式吗?
答案 0 :(得分:3)
使用inheritance / polymorphism:基类是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
}
};
答案 1 :(得分:1)
按钮点击是一个动作/事件。您可以将click操作封装为类。使用按钮窗口小部件的应用程序会对此操作进行不同的解释和使用。 gui库必须通知已按下相关信息的按钮。您可以参考像Qt或Gtk +这样的流行GUI库来了解它们如何实现GUI事件等等。
答案 2 :(得分:1)
我推荐你的书"DirectX 9 User Interfaces: Design and Implementation"。我有它,我可以说你会找到你需要的一切!!!;)