3105955 发表于 2013-1-1 18:45:58

求助使用COM生成的工具栏,但是用注册表中保存的上次工具栏位置来设置结果一直不正确

本帖最后由 3105955 于 2013-1-1 18:47 编辑

    使用COM生成的一个工具栏,然后从注册表中读出上次工具栏的位置,但是通过put_Left(),put_Top()得到的效果并不正确.
    请大家帮我看看,先谢谢了。


void setDock(IAcadToolbar*tlbr, string sDataArr[]){    //数组中保存的是从注册表中读出的工具栏位置信息                                                                              //sDataArr=是否隐藏, sDataArr=是否停靠, sDataArr=left                                                                              //sDataArr=top      if(0==strcmp(sDataArr.c_str(),"top"))                   tlbr->Dock(acToolbarDockTop);      else if(0==strcmp(sDataArr.c_str(),"right"))                tlbr->Dock(acToolbarDockRight);      else if(0==strcmp(sDataArr.c_str(),"left"))                tlbr->Dock(acToolbarDockLeft);            if(0==strcmp(sDataArr.c_str(),"float"))                tlbr->Float(atoi(sDataArr.c_str()),atoi(sDataArr.c_str()),atoi(sDataArr.c_str()));      else{                tlbr->put_Top(atoi(sDataArr.c_str()));                tlbr->put_Left(atoi(sDataArr.c_str()));      }
      if(0==strcmp(sDataArr.c_str(),"show"))                tlbr->put_Visible(TRUE);      else                tlbr->put_Visible(FALSE);
}
页: [1]
查看完整版本: 求助使用COM生成的工具栏,但是用注册表中保存的上次工具栏位置来设置结果一直不正确