【发布时间】:2010-11-29 02:44:35
【问题描述】:
我对这个主题有几个问题。
我为按钮创建了一个类,该类有问题。
问题是:
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,而不是它调用该函数。
我应该用这种方式吗?
【问题讨论】:
-
如果您已经在 Microsoft 平台上,为什么不使用 Windows Presentation Foundation?
-
因为,在directx全屏下你不能使用Windows Presentation Foundation
-
您在第二次编辑时所写的内容是不可能的。但是你可以使用函数指针。但说真的,使用类/多态会更好、更安全、更优雅,这样你会学到更多:)
-
您可以使用 Boost Signals 库来实现与您想要的类似的东西。查看:boost.org/doc/libs/release/doc/html/signals.html 或线程友好的:boost.org/doc/libs/release/libs/signals2
标签: c++ winapi user-interface visual-c++ directx