Hi,
Guys, I got the solution.
Thanks a lot for all your help!
The code is right now like this:
Code:
void init_viewer(osgViewer::Viewer* Viewer, int x, int y, int width, int height)
{
scene = osgDB::readNodeFile("d:/OpenSceneGraph-Data/cessna.osg");
Viewer->setSceneData(scene);
Viewer->setUpViewInWindow(x, y, width, height);
Viewer->addEventHandler(new KeyboardEventHandler());
//get window handle to remove the borders and later on for minimizim
and restoring the OSG-window.
gw = dynamic_cast<osgViewer::GraphicsWindowWin32*>
(viewer->getCamera()->getGraphicsContext());
//this is the window handle
hWnd = gw->getHWND();
//remove the buttons (minimize, restore and close)
LONG lStyle = GetWindowLong(hWnd, GWL_STYLE);
lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZE | WS_MAXIMIZE |
WS_SYSMENU);
SetWindowLong(hWnd, GWL_STYLE, lStyle);
//remove the window borders
LONG lExStyle = GetWindowLong(hWnd, GWL_EXSTYLE);
lExStyle &= ~(WS_EX_DLGMODALFRAME | WS_EX_CLIENTEDGE |
WS_EX_STATICEDGE);
SetWindowLong(hWnd, GWL_EXSTYLE, lExStyle);
}
void makeViewerVisible()
{
ShowWindow(hWnd, SW_RESTORE);
}
void makeViewerInvisible()
{
ShowWindow(hWnd, SW_MINIMIZE);
}
This works exactly how I wanted.
Instead of trying it from the OSG side, I let the window handle take care of
removing the borders and hide/show the window.
The only thing that was needed is to get the windows handle from OSG. Then let
windows do the "magic".
Thanks you again!
Cheers,
Marco[/code]
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=59636#59636
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org