查看单个帖子
旧 2009-05-06, 04:38 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】layer updates

layer updates
layer updates
hi,
my mfc app uses the doc/view structure, and i'm using vc2003 + dd2.2. the problem i have is possibly simple, but i can't see where to go. i load in a file into a database, and once loaded, i scan the layer table, setting some of the layers off (for application reasons) using setisoff(true). this sets them off correctly, so when the view is displayed they are not visible. however, when i try to then set them on, using setisoff(false), they are not updated on the view.
after a day of struggling with this, i've found that if i leave it till the layers have been drawn the first time before i set them off, then it works correctly, but if i set them off before the first view update, then i can never display them after that.
but if i interrogate the layer records, they are set as on/unlocked/not frozen, so i reckon they should be displayed.
in my cview:npaint routine if i have
void cplanview:npaint()
{
if (m_blayersneedswitchingoff)
{
m_pdoc->switchoffrequiredlayers();
m_blayersneedswitchingoff = false;
}
if(!m_pdevice.isnull()) m_pdevice->update();
invalidate();
cview:npaint();
}
it does not work, but it works if i have :
void cplanview:npaint()
{
if(!m_pdevice.isnull()) m_pdevice->update();
if (m_blayersneedswitchingoff)
{
m_pdoc->switchoffrequiredlayers();
m_blayersneedswitchingoff = false;
}
invalidate();
cview:npaint();
}
have i missed something?
thanks in advance,
ali smith
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)