本帖最后由 3105955 于 2013-1-1 18:47 编辑
使用COM生成的一个工具栏,然后从注册表中读出上次工具栏的位置,但是通过put_Left(),put_Top()得到的效果并不正确.
请大家帮我看看,先谢谢了。
void setDock(IAcadToolbar *tlbr, string sDataArr[]){ //数组中保存的是从注册表中读出的工具栏位置信息 //sDataArr[0]=是否隐藏, sDataArr[1]=是否停靠, sDataArr[2]=left //sDataArr[3]=top if(0==strcmp(sDataArr[1].c_str(),"top")) tlbr->Dock(acToolbarDockTop); else if(0==strcmp(sDataArr[1].c_str(),"right")) tlbr->Dock(acToolbarDockRight); else if(0==strcmp(sDataArr[1].c_str(),"left")) tlbr->Dock(acToolbarDockLeft); if(0==strcmp(sDataArr[1].c_str(),"float")) tlbr->Float(atoi(sDataArr[3].c_str()),atoi(sDataArr[2].c_str()),atoi(sDataArr[4].c_str())); else{ tlbr->put_Top(atoi(sDataArr[3].c_str())); tlbr->put_Left(atoi(sDataArr[2].c_str())); }
if(0==strcmp(sDataArr[0].c_str(),"show")) tlbr->put_Visible(TRUE); else tlbr->put_Visible(FALSE);
}
|