高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】how to get the last used viewport of current layou
how to get the last used viewport of current layout
how to get the last used viewport of current layout
hi
i open a dwg file that have some paper model.
when i change to the paper model,
can i get the last used viewport of the paper model ?
i use the code below
odgsview *pview=m_pdevice->viewat(0);
odgepoint3d tag=pview->target();
double fieldwidth=pview->fieldwidth();
double fieldheight=pview->fieldheight();
to calc viewport,but it not work.
i always get the same viewport.
can anyone tell me why ?
last edited by yashu; 4th november 2004 at 01:23 amfff">.
maybe oddblayout::activeviewportid() will help?
sergey slezkin
quote:
originally posted by sergey slezkin
maybe oddblayout::activeviewportid() will help?
i use the code below:
pdatabase->setcurrentlayout(name);
pdwgcontext = odgicontextfordbdatabase::createobject();
m_pdevice = cdwgvectorizedevice::createobject();
pdwgcontext->setdatabase(pdatabase);
m_pdevice=oddbgsmanager::setupactivelayoutviews(m_ pdevice,pdwgcontext);
oddblayoutptr playout=getcurrentlayout();
oddbobjectid id=playout->activeviewportid();
oddbviewportptr pviewport=id.safeopenobject();
odgepoint3d tag=pviewport->viewtarget();
double fieldwidth=pviewport->width();
double fieldheight=pviewport->height();
but id is null,why ?
i also have another question.
i write the cdwgvectorizedevice inherit from dgsbasevectorizedevice,odgigeometrysimplifier and odrxdispatchimpl<>,
i set the background is black and when i find a entity whick color is the same with background color,i use inverse color to draw it,everything is ok.
when i change the layout to paper model,there is a paper whick color is white on the background,when i draw a entity which color is black,so i change it's colot to write,and draw a white entity to white paper,i can't see the entity again.
how can i avoid it ?
in paper mode,there is a big rectangle which color is white to be draw on topmost sometime. it cover everything.
how can i avoid it ?
last edited by yashu; 4th november 2004 at 05:48 pmfff">.
quote:
originally posted by yashu
oddbobjectid id=playout->activeviewportid();
but id is null,why ?
probably because this layout doesn't have any viewports (e.g. new layout or model space layout).
quote:
originally posted by yashu
i also have another question.
i write the cdwgvectorizedevice inherit from dgsbasevectorizedevice,odgigeometrysimplifier and odrxdispatchimpl<>,
i set the background is black and when i find a entity whick color is the same with background color,i use inverse color to draw it,everything is ok.
when i change the layout to paper model,there is a paper whick color is white on the background,when i draw a entity which color is black,so i change it's colot to write,and draw a white entity to white paper,i can't see the entity again.
how can i avoid it ?
odamfcapp uses palettes for rendering (see odamfcapp). there are two palettes in odamfcapp - one for "light" background, and one for "dark" background. in both palettes color 7 is "contrast color", it is black in white background palette, and it is white in dark background palette.
quote:
originally posted by yashu
in paper mode,there is a big rectangle which color is white to be draw on topmost sometime. it cover everything.
how can i avoid it ?
hmm... big white rectangle that is to be drawn on topmost... strange... can this problem be reproduced in odamfcapp sample application?
sincerely yours,
george udov
|