高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】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
|