我基本上希望在我的OpenGL/Game中獲得一個類似本地的窗口GUI系統。我需要向用戶顯示一個窗口。在GLUT /其他應用程序中使用wxWidgets
我正在調查wxWidgets。
因爲它通過「竊取」WinMain/MainLoop工作,我試圖破解它,所以我可以在一個單獨的線程上運行它的主循環。
因爲我無法得到它的wxThread運作良好,我做了一個「樣本」與Windows線程...但初始化是在wxWidgets的內部還是破...
任何反饋這?
我的代碼是這樣的:
class MyApp: public wxApp
{
virtual bool OnInit();
};
DECLARE_APP(MyApp)
IMPLEMENT_APP_NO_MAIN(MyApp)
DWORD WINAPI MyThreadFunction(LPVOID lpParam)
{
wxApp* pApp = new MyApp();
wxApp::SetInstance(pApp);
int argc = 0; wxChar ** argv = NULL;
wxEntryStart(argc, argv);
pApp->CallOnInit();
pApp->OnRun();
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, wxCmdLineArgType lpCmdLine, int nCmdShow) {
DWORD id = 0;
CreateThread(NULL,0, MyThreadFunction,NULL, 0,&id);
assert(id != NULL);
return 0;
}
我試着做在主線程wxWidgets的初始化代碼,並且只在單獨的線程調用CallOnInit(),但同樣的結果。
爲什麼你需要在主線程的wxWidgets框架之外工作?只是好奇心,因爲我也使用wxWidgets/OpenGL的遊戲,只是使用閒置功能爲我的「主」。 – 2009-06-13 01:47:08