copy a wxDC to wxScrolledWindow
Piotr Starczewski
pstarczewski at o2.pl
Mon Dec 4 07:02:22 PST 2006
Here is a sample of what I think should help you.
I have tested it with wx2.8.0 on WinXP sp2
Regards,
Peter
Piotr Starczewski wrote:
> Your code looks ok (didn't test it yet). The only thing is that you =
> should put memDC->SelectObject(wxNullBitmap) instead of =
> memDC->DrawBitmap. By drawing your bitmap on memDC theoretically you =
> are drawing currently selected bitmap on the same bitmap (I'm not sure =
> if that is possible with currently drawn bitmap selected into =
> wxMemoryDC and I'm not sure how it will behave). I'll test this =
> solution later this evening.
>
> You mentioned that "I have a wxDC drawn before, outside my =
> application.". What do you mean by that? Are you trying to take a =
> window snapshot from external application or does some external =
> application "draws" on your dc?
>
> Regards,
> Peter
>
> Miguel Cartagena wrote:
>> 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 =3D new wxMemoryDC();
>> memDC->SelectObject(bmp);
>> bmp.SaveFile(_T("c:\\test1.bmp"), wxBITMAP_TYPE_BMP); // just for
>> test
>> wxCoord zero =3D 0;
>> wxCoord ww =3D w;
>> wxCoord hh =3D 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 =3D 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
>>> =
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: wx-users-unsubscribe at lists.wxwidgets.org
>> For additional commands, e-mail: wx-users-help at lists.wxwidgets.org
>>
>>
>>
>> =
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wx-users-unsubscribe at lists.wxwidgets.org
> For additional commands, e-mail: wx-users-help at lists.wxwidgets.org
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dc_to_scrolledwindow.7z
Type: application/octet-stream
Size: 2441 bytes
Desc: not available
Url : http://lists.wxwidgets.org/pipermail/wx-users/attachments/20061204/fa=
67769c/dc_to_scrolledwindow.obj
More information about the wx-users
mailing list