![]() |
【转帖】problem with view and zoom
problem with view and zoom
problem with view and zoom hallo again, i have a problem with the view again, if i set the top of the window-rect not to null... the two images shows the problem. (i set top to 100 here) i do this, because there must be a toolbar, which is in the window here. ok is the good one, the other is the bad one. after resizing the window it looks fine (well aligned), after a zooming to extents the graphical output is again moved 100 pixels (also 200 pixels). here is my resizing code: void tformsimple::resize(void) { if(false == m_pdevice.isnull() && clientwidth > 0 && clientheight > 0) { trect rect; rect.left = 0; rect.top = 100; //100 to see the effekt better // paneltoolbar->height; rect.right = clientwidth; rect.bottom = clientheight; odgsdcrect outputrect(odgsdcpoint(rect.left, rect.bottom), odgsdcpoint(rect.right, rect.top)); m_pdevice->onsize(outputrect); } } michael attached images i don't very understand the problem :-) what exactly is bad in second screenshot? btw, the easy way for finding problems of such kind is to open debugger on one part of screen (or one monitor) and your application (under debugger) - on other part of screen (or on other monitor). then you can trace a moment (a line) which caused visualization problem. sincerely yours, george udov quote: originally posted by george udov i don't very understand the problem :-) what exactly is bad in second screenshot? btw, the easy way for finding problems of such kind is to open debugger on one part of screen (or one monitor) and your application (under debugger) - on other part of screen (or on other monitor). then you can trace a moment (a line) which caused visualization problem. ok, i hope this is a better way to see what happens: i modified the odamfcapp exactly on the same way, i give the output window an offset of 100 pels, (at dwgviewer.cpp) void cdwgviewer::resize() { if(m_pdevice.get()) { odgsdcrect outputrect(odgsdcpoint(m_rc.left, m_rc.bottom), odgsdcpoint(m_rc.right, m_rc.top + 100)); m_pdevice->onsize(outputrect); } } load a drawing, it is shown correctly width the offset of 100 pixels when you now zoom to extents you'll see what i mean. the renderoutput begins now at 200 pixels from top. michael |
| 所有的时间均为北京时间。 现在的时间是 11:54 PM. |