[vtkusers] Rendering in the existing window!
Alex Malyushytskyy
alexmalvtk at gmail.com
Wed May 22 14:06:01 EDT 2013
try add
renWin->SetParentId(handler);
to
drawSphere(HWND handler)
vtk source has Win32Cone.cxx example which might be useful
Alex
On Wed, May 22, 2013 at 2:36 AM, Le Minh Nhat <nhatleminh10 at gmail.com>wrote:
> Hi everyone,
> I am quite new to Vtk, and I have tried to create a sphere using Vtk.
> However, the rendering window is separated from my existing window. Here is
> my source code:
>
> #include <windows.h>
>
> #include "vtkSphereSource.h"
> #include "vtkPolyDataMapper.h"
> #include "vtkProperty.h"
> #include "vtkActor.h"
> #include "vtkRenderWindow.h"
> #include "vtkRenderer.h"
> #include "vtkRenderWindowInteractor.h"
> #include "vtkWin32OpenGLRenderWindow.h"
> #include "vtkNew.h"
> #include "vtkCamera.h"
> //
> //
> void drawSphere(HWND handler)
> {
> // create sphere geometry
> vtkSphereSource *sphere = vtkSphereSource::New();
> sphere->SetRadius(1.0);
> sphere->SetThetaResolution(18);
> sphere->SetPhiResolution(18);
>
> // map to graphics library
> vtkPolyDataMapper *map = vtkPolyDataMapper::New();
> map->SetInput(sphere->GetOutput());
>
> // actor coordinates geometry, properties, transformation
> vtkActor *aSphere = vtkActor::New();
> aSphere->SetMapper(map);
> aSphere->GetProperty()->SetColor(0,0,1); // sphere color blue
>
> // a renderer and render window
> vtkRenderer *ren1 = vtkRenderer::New();
> vtkRenderWindow *renWin = vtkRenderWindow::New();
>
> renWin->AddRenderer(ren1);
>
> // an interactor
> vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
> iren->SetRenderWindow(renWin);
>
> // add the actor to the scene
> ren1->AddActor(aSphere);
> ren1->SetBackground(1,1,1); // Background color white
>
> // render an image (lights and cameras are created automatically)
> //renWin->InitializeFromCurrentContext();
> renWin->Render();
>
>
> // begin mouse interaction
> iren->Start();
>
> // release memory and return
> sphere->Delete();
> map->Delete();
> aSphere->Delete();
> ren1->Delete();
> renWin->Delete();
> iren->Delete();
>
> }
>
> LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
> {
> switch(msg)
> {
>
>
> case WM_CLOSE:
> DestroyWindow(hwnd);
> break;
>
> case WM_DESTROY:
> PostQuitMessage(0);
> break;
>
> case WM_PAINT:
> drawSphere(hwnd);
> break;
>
> default:
> return DefWindowProc(hwnd, msg, wParam, lParam);
> }
> return 0;
> }
>
> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
> lpCmdLine, int nCmdShow)
> {
> WNDCLASSEX wc;
> HWND hwnd;
> MSG Msg;
>
> wc.cbSize = sizeof(WNDCLASSEX);
> wc.style = 0;
> wc.lpfnWndProc = WndProc;
> wc.cbClsExtra = 0;
> wc.cbWndExtra = 0;
> wc.hInstance = hInstance;
> wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
> wc.hCursor = LoadCursor(NULL, IDC_ARROW);
> wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
> wc.lpszMenuName = NULL;
> wc.lpszClassName = "mySphere";
> wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
>
> if(!RegisterClassEx(&wc))
> {
> MessageBox(NULL, "Window Registration Failed!", "Error!",
> MB_ICONEXCLAMATION | MB_OK);
> return 0;
> }
>
> hwnd = CreateWindowEx(
> WS_EX_CLIENTEDGE,
> "mySphere",
> "Sphere",
> WS_OVERLAPPEDWINDOW,
> CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
> NULL, NULL, hInstance, NULL);
>
> if(hwnd == NULL)
> {
> MessageBox(NULL, "Window Creation Failed!", "Error!",
> MB_ICONEXCLAMATION | MB_OK);
> return 0;
> }
>
> ShowWindow(hwnd, nCmdShow);
> UpdateWindow(hwnd);
>
> while(GetMessage(&Msg, NULL, 0, 0) > 0)
> {
> TranslateMessage(&Msg);
> DispatchMessage(&Msg);
> }
> return Msg.wParam;
> }
>
> Anyone has any idea how to set the rendering window and the existing
> window to be one! Any response will be appreciated.
> Best regards,
> Bent
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20130522/4035d82c/attachment.htm>
More information about the vtkusers
mailing list