- UID
- 7119
- 积分
- 111
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-7-1
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
我做了个对话框,其中有一个复合框控件,列出图中所有的图层,从中选出喷头所在的图层。m_HeadLayer是对话框的公有变量
void DataInputDLG::OnDropdownHeadlaylist()
{
CComboBox* pLB=(CComboBox*)GetDlgItem(IDC_HEADLAYLIST);
int nSelect=pLB->GetCurSel();
m_HeadLayer=pLB->SetCurSel(nSelect);
}
然后我设置一个全局变量CString strHeadLayer;用来接受m_HeadLayer
void CreateDataInputDlg()
{
DataInputDLG MainDlg(CWnd::FromHandle(adsw_acadMainWnd()));
int nReturnValue=MainDlg.DoModal();//addon
strHeadLayer=MainDlg.m_HeadLayer;
}
最后读取喷头,将圆心变换后在圆心插入喷头图块
void DrawSprHead(ads_point basePt)
{
struct resbuf sprhead;
char sbuf1[10];
ads_name namesprhead;
sprhead.restype=8;
strcpy(sbuf1,strHeadLayer);
sprhead.resval.rstring=sbuf1;
sprhead.rbnext=NULL;
acedSSGet("x",NULL,NULL,&sprhead,namesprhead);
ads_name headent;
long nHeadNum=0;
long nHeadSelect;
acedSSLength(namesprhead,&nHeadSelect);
while (nHeadNum<nHeadSelect)
{acedSSName(namesprhead,nHeadNum,headent);
projectHead(basePt,headent);
nHeadNum++;
}
acedSSFree(namesprhead);
}
问题是:我第一次运行时,尽管在复合控件中选择了图层,strHeadLayer的值还是没有,需要我再运行一次才会正常。我想问题的原因可能在全局变量和VC的对话框上,可是怎么解决呢? |
|