![]() |
【转帖】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 |
所有的时间均为北京时间。 现在的时间是 11:45 AM. |