copy a wxDC to wxScrolledWindow

Miguel Cartagena miguel.cartagena at gmail.com
Mon Dec 4 05:40:11 PST 2006


I test this and when I call Blit method, it's draw a print screen .. my
IDE.
Here the code:

  dc.GetSize(&w, &h);
          // the source DC
  wxBitmap bmp(w, h, wxBITMAP_TYPE_BMP);
  wxMemoryDC *memDC = new wxMemoryDC();
  memDC->SelectObject(bmp);
  bmp.SaveFile(_T("c:\\test1.bmp"), wxBITMAP_TYPE_BMP);    // just for
test
  wxCoord zero = 0;
  wxCoord ww = w;
  wxCoord hh = h;

  memDC->Blit(zero, zero, ww, hh, &dc, zero, zero);
  bmp.SaveFile(_T("c:\\test2.bmp"), wxBITMAP_TYPE_BMP);   // just for
test

  memDC->DrawBitmap(bmp, 0, 0, false);

  wxImage img = bmp.ConvertToImage();
  img.Rescale(210, 297);
  wxBitmap bmpRescaled(img);

  bmpRescaled.SaveFile(_T("c:\\test3.bmp"), wxBITMAP_TYPE_BMP);   //
just for test




On Dec 4, 9:56 am, pstarczew... at o2.pl (Piotr Starczewski) wrote:
> That should not be a problem. First of all you need to get a
> pointer/reference to your source wxDC. Then just wxDC::Blit it into
> wxMemoryDC with selected bitmap. Final step is to rescale your bitmap
> and draw it with wxDC::DrawBitmap(...) onto your scrolled window.
>
> Regards,
> Peter
>
>
>
> Miguel Cartagena wrote:
> > Sorry, I'll try to explain the problem better.
>
> > I have a wxDC drawn before, outside my application. So, I don't know
> > what is drawn in it and I can't "do my drawing"  :)
> > What I want to do is: get this DC, rescale to my ScrolledWindow size
> > and show it into my ScrolledWindow.
>
> > For this, copy the DC it's not enough, I think. A possible solution is
> > redraw the DC that I receive on MyScrolledWindow::OnDraw(wxDC& dc)
> > method, or something like.
>
> > void DCReceiver::ReceiveDC(wxDC& dc){
> >   MyScrolledWindow::Draw(dc);
> > }
>
> > ...
>
> > void MyScrolledWindow::Draw(wxDC& dc){
> >   dc.Redraw();  // the wxDC::Redraw() method not exists, therefore my
> > doubt.
> > }
>
> > void MyScrolledWindow::OnDraw(wxDC& dc){
> >   Draw(dc);  // rewrite the wxScrolledWindow::OnDraw method ?
> > }
>
> > Thanks and regards,
> > Miguel
>
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: wx-users-unsubscr... at lists.wxwidgets.org
> > For additional commands, e-mail: wx-users-h... at lists.wxwidgets.org---------------------------------------------------------------------
> To unsubscribe, e-mail: wx-users-unsubscr... at lists.wxwidgets.org
> For additional commands, e-mail: wx-users-h... at lists.wxwidgets.org







More information about the wx-users mailing list