NC Simulation for Multi-axis(5)
グラフィックスの部分はGLUTを使っています。
ただ、glutMainLoopが戻ってこないのは問題。
ただ、glutMainLoopが戻ってこないのは問題。
一旦閉じてから別のデータを表示しようとすると再度始めなければならない。
いろんな方が苦心されているようです。
いろんな方が苦心されているようです。
そんなときはさっさとfreeGLUTに乗り換えた方が良いです。
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,GLUT_ACTION_GLUTMAINLOOP_RETURNS);
glutMainLoop();
とやればちゃんとglutMainLoop()は戻ってきます。
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,GLUT_ACTION_GLUTMAINLOOP_RETURNS);
glutMainLoop();
とやればちゃんとglutMainLoop()は戻ってきます。
さて、次に思うのはGUIを付けたいという思いに駆られます。
便利なgluiというのが在りますが気の利いたことはあまり出来ません。
便利なgluiというのが在りますが気の利いたことはあまり出来ません。
::SetParent(GLUTで作ったやつのウインドウハンドル, 親ウインドウハンドル);
style=::GetWindowLong(GLUTで作ったやつのウインドウハンドル,GWL_EXSTYLE);
::SetWindowLong(GLUTで作ったやつのウインドウハンドル,GWL_EXSTYLE, style | WS_EX_MDICHILD);
style=::GetWindowLong(GLUTで作ったやつのウインドウハンドル,GWL_EXSTYLE);
::SetWindowLong(GLUTで作ったやつのウインドウハンドル,GWL_EXSTYLE, style | WS_EX_MDICHILD);
これでGLUTで作ったやつは後で作ったウインドウプログラムの子ウインドウに乗り移ってくれる。
ただこれだと子ウインドウになるだけで適当な位置になってしまうから
後は
RECT rect2;
GetWindowRect(GLUTで作ったやつのウインドウハンドル, (LPRECT)&rect2);
MoveWindow(GLUTで作ったやつのウインドウハンドル, 0, 0, rect2.right - rect2.left, rect2.bottom - rect2.top, true);
SetWindowPos(GLUTで作ったやつのウインドウハンドル, HWND_TOP,0, 0, rect2.right - rect2.left, rect2.bottom - rect2.top, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
SetWindowPos(GLUTで作ったやつのウインドウハンドル, HWND_TOP,0, 0, rect2.right - rect2.left, rect2.bottom - rect2.top, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
あ、そもそも上記のやり方が間違っているのだろうか、、、わからない。