NC Simulation for Multi-axis(5)

グラフィックスの部分はGLUTを使っています。
ただ、glutMainLoopが戻ってこないのは問題。
一旦閉じてから別のデータを表示しようとすると再度始めなければならない。
いろんな方が苦心されているようです。
 
そんなときはさっさとfreeGLUTに乗り換えた方が良いです。
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,GLUT_ACTION_GLUTMAINLOOP_RETURNS);
glutMainLoop();
とやればちゃんとglutMainLoop()は戻ってきます。
イメージ 1
さて、次に思うのはGUIを付けたいという思いに駆られます。
便利なgluiというのが在りますが気の利いたことはあまり出来ません。
そこで思いついたのはGLUTで作ったやつを子ウインドウとして別に用意したGUIに取り込めないだろうか?
という事です。
 ::SetParent(GLUTで作ったやつのウインドウハンドル, 親ウインドウハンドル);
 style=::GetWindowLong(GLUTで作ったやつのウインドウハンドル,GWL_EXSTYLE);
 ::SetWindowLong(GLUTで作ったやつのウインドウハンドル,GWL_EXSTYLE, style | WS_EX_MDICHILD);
これでGLUTで作ったやつは後で作ったウインドウプログラムの子ウインドウに乗り移ってくれる。
イメージ 2

ただこれだと子ウインドウになるだけで適当な位置になってしまうから
後は
 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);
とやって位置をそろえてやる。
これで旨くいったのだがGLUTで作ったやつのウインドウを最大化したり最小化したりすると位置がおかしくなってしまう。
ん、、、どうしたら良いんだろう。。。
あ、そもそも上記のやり方が間違っているのだろうか、、、わからない。