void CTerrainEditorDlg::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); if(m_HeightDlg.m_hWnd!=NULL&&m_TerrainTexDlg.m_hWnd!=NULL&&m_TerrainGrassDlg.m_hWnd!=NULL) SetCtrlPos(); }
void CModifyDlg::CreateCtrl() { CRect rcClient; GetClientRect(&rcClient); int top = rcClient.top + TOPINCREMENT; int Left = rcClient.left + LEFTINCREMENT; CRect CTRRECT; if (PUBLIC == m_tableType || INCODE == m_tableType){ for (int i = 0;i < m_vHead.size();i++){ CStatic *Static = new CStatic; CTRRECT = SetCtrlPos(Left,top,88,CTRLHEIGHT); Static->Create(m_vHead[i],WS_CHILD|WS_VISIBLE,CTRRECT,this); Static->SetFont(GetFont()); Left += 88 + HINCREMENT; CEdit *Edit = new CEdit; CTRRECT = SetCtrlPos(Left,top - 3,380,EDITHEIGHT); Edit->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER|ES_MULTILINE|ES_AUTOVSCROLL,CTRRECT,this,IDC_MODIFY_EDIT); Edit->SetFont(GetFont()); Edit->SetWindowText(m_vData[i]); top += VINCREMENT + CTRLHEIGHT ; Left = rcClient.left + LEFTINCREMENT; if (i == 0){ Static->EnableWindow(FALSE); Edit->EnableWindow(FALSE); } if (i == m_vHead.size()-1 && INCODE == m_tableType) { CStatic *Static1 = new CStatic; CTRRECT = SetCtrlPos(Left,top,450,CTRLHEIGHT); Static1->Create("调度规则 1:最大空闲时间调度 2:最短会话时间调度 3:最高优先级调度",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static1->SetFont(GetFont()); m_StaticObject.push_back(Static1); } m_StaticObject.push_back(Static); m_EidtObject.push_back(Edit); } } if (TP == m_tableType) SetTPRuleCtrl(); }
void CModifyDlg::SetTPRuleCtrl() { CRect rcClient; GetClientRect(&rcClient); int top = rcClient.top + TOPINCREMENT; int Left = rcClient.left + LEFTINCREMENT; CStatic *Static0= new CStatic; CRect CTRRECT = SetCtrlPos(Left,top ,88,CTRLHEIGHT); Static0->Create("路由规则ID",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static0->EnableWindow(FALSE); Static0->SetFont(GetFont()); Left += 88 + HINCREMENT; CEdit *Edit0 = new CEdit; CTRRECT = SetCtrlPos(Left,top - 3,380,EDITHEIGHT); Edit0->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER|ES_MULTILINE|ES_AUTOVSCROLL,CTRRECT,this,IDC_EDIT1); Edit0->EnableWindow(FALSE); Edit0->SetFont(GetFont()); Edit0->SetWindowText(m_vData[0]); top += CTRLHEIGHT + VINCREMENT; Left = rcClient.left + LEFTINCREMENT; CStatic *Static1= new CStatic; CTRRECT = SetCtrlPos(Left,top ,88,CTRLHEIGHT); Static1->Create("路由名称",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static1->SetFont(GetFont()); Left += 88 + HINCREMENT; CEdit *Edit1 = new CEdit; CTRRECT = SetCtrlPos(Left,top - 3,380,EDITHEIGHT); Edit1->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER|ES_MULTILINE|ES_AUTOVSCROLL,CTRRECT,this,IDC_EDIT1); Edit1->SetFont(GetFont()); Edit1->SetWindowText(m_vData[2]); top += CTRLHEIGHT + VINCREMENT; Left = rcClient.left + LEFTINCREMENT; CStatic *Static2 = new CStatic; CTRRECT = SetCtrlPos(Left ,top ,88,CTRLHEIGHT); Static2->Create("路由类型",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static2->SetFont(GetFont()); Left+=88 + HINCREMENT; CComboBox *Combo1 = new CComboBox; CTRRECT = SetCtrlPos(Left,top,380,EDITHEIGHT*5); Combo1->Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_TABSTOP|CBS_DROPDOWNLIST,CTRRECT,this,IDC_COMBOX1); Combo1->SetFont(GetFont()); Combo1->AddString("时间路由"); Combo1->AddString("问题路由"); Combo1->AddString("接口路由"); Combo1->AddString("直接客服"); //Combo1->AddString("扩展路由"); int cursel = UnTransToTpRule(m_vData[1]) - 1; Combo1->SetCurSel(cursel); top += CTRLHEIGHT + VINCREMENT; CStatic *Static3 = new CStatic(); Left = rcClient.left + LEFTINCREMENT; CTRRECT = SetCtrlPos(Left,top ,88,CTRLHEIGHT); Static3->Create("起始时间",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static3->SetFont(GetFont()); Left += 88 + HINCREMENT; CDateTimeCtrl* Datetime1 = new CDateTimeCtrl; CTRRECT = SetCtrlPos(Left,top-3 ,90,EDITHEIGHT); Datetime1->Create(WS_CHILD|WS_VISIBLE|DTS_TIMEFORMAT,CTRRECT,this,IDC_DATETIMEPICKER1); if(m_vData[3].IsEmpty())m_vData[3] ="0:0:0"; COleVariant vtime(m_vData[3]); vtime.ChangeType(VT_DATE); COleDateTime oletime = vtime; Datetime1->SetTime(oletime); Left += 90 + HINCREMENT; CStatic *Static4 = new CStatic(); CTRRECT = SetCtrlPos(Left,top ,55,CTRLHEIGHT); Static4->Create("时间间隔",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static4->SetFont(GetFont()); Left += 55 + HINCREMENT; CEdit *Edit2 = new CEdit; CTRRECT = SetCtrlPos(Left,top - 3,215,EDITHEIGHT); Edit2->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER|ES_MULTILINE|ES_AUTOVSCROLL,CTRRECT,this,IDC_EDIT1); Edit2->SetFont(GetFont()); Edit2->SetWindowText(m_vData[4]); top += CTRLHEIGHT + VINCREMENT; Left = rcClient.left + LEFTINCREMENT; CStatic *Static5 = new CStatic(); CTRRECT = SetCtrlPos(Left,top ,88,CTRLHEIGHT); Static5->Create("问题路由类型",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static5->SetFont(GetFont()); Left += 88 + HINCREMENT; CEdit *Edit3 = new CEdit; CTRRECT = SetCtrlPos(Left,top - 3,380,EDITHEIGHT); Edit3->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER|ES_MULTILINE|ES_AUTOVSCROLL,CTRRECT,this,IDC_EDIT1); Edit3->SetFont(GetFont()); Edit3->SetWindowText(m_vData[5]); top += CTRLHEIGHT + VINCREMENT; Left = rcClient.left + LEFTINCREMENT; CStatic *Static6 = new CStatic(); CTRRECT = SetCtrlPos(Left,top ,88,CTRLHEIGHT); Static6->Create("接口名称",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static6->SetFont(GetFont()); Left += 88 + HINCREMENT; CEdit *Edit4 = new CEdit; CTRRECT = SetCtrlPos(Left,top - 3,380,EDITHEIGHT); Edit4->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER|ES_MULTILINE|ES_AUTOVSCROLL,CTRRECT,this,IDC_EDIT1); Edit4->SetFont(GetFont()); Edit4->SetWindowText(m_vData[6]); top += CTRLHEIGHT + VINCREMENT; Left = rcClient.left + LEFTINCREMENT; CStatic *Static7 = new CStatic(); CTRRECT = SetCtrlPos(Left,top ,88,CTRLHEIGHT); Static7->Create("客服工号",WS_CHILD|WS_VISIBLE,CTRRECT,this); Static7->SetFont(GetFont()); Left += 88 + HINCREMENT; CEdit *Edit5 = new CEdit; CTRRECT = SetCtrlPos(Left,top - 3,380,EDITHEIGHT); Edit5->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_BORDER|ES_MULTILINE|ES_AUTOVSCROLL,CTRRECT,this,IDC_EDIT1); Edit5->SetFont(GetFont()); Edit5->SetWindowText(m_vData[7]); m_StaticObject.push_back(Static1); m_StaticObject.push_back(Static2); m_StaticObject.push_back(Static3); m_EidtObject.push_back(Edit1); m_ComboObject.push_back(Combo1); m_StaticObject.push_back(Static4);//时间路由 m_EidtObject.push_back(Edit2); m_DatetimeObject.push_back(Datetime1); m_StaticObject.push_back(Static5);//问题路由 m_EidtObject.push_back(Edit3); m_StaticObject.push_back(Static6); //接口路由 m_EidtObject.push_back(Edit4); m_StaticObject.push_back(Static7);//直接客服路由 m_EidtObject.push_back(Edit5); m_StaticObject.push_back(Static0); m_EidtObject.push_back(Edit0); IsShowCtrl(); }
void CTerrainEditorDlg::SetCtrlPos() { CRect rcClient; GetClientRect(rcClient); int cx=rcClient.Width(),cy=rcClient.Height(); SCROLLINFO si; si.cbSize=sizeof(si); // Set Horizontal Scrollbar Info GetScrollInfo(SB_HORZ,&si); si.nMin=0; if(cx<=DLG_MINWIDTH) { si.nPage=cx; si.nMax=DLG_MINWIDTH; } else { si.nPage=cx+1; si.nMax=cx; } if(si.nMax<=(int)si.nPage) si.nPos=0; else if(si.nPos>si.nMax-(int)si.nPage) si.nPos=si.nMax-si.nPage; int xPos=si.nPos; si.fMask=SIF_PAGE|SIF_RANGE|SIF_POS; SetScrollInfo(SB_HORZ,&si); // Get Sub Dialog Info int height=0; CRect rc; m_HeightDlg.GetClientRect(rc); height+=rc.Height()+1; m_TerrainTexDlg.GetClientRect(rc); height+=rc.Height()+1; m_TerrainGrassDlg.GetClientRect(rc); height+=rc.Height()+1; m_TerrainWaterDlg.GetClientRect(rc); height+=rc.Height()+1; // Set Vertical Scrollbar Info GetScrollInfo(SB_VERT,&si); si.nPage=cy; si.nMax=height; if((int)si.nPage>=si.nMax) si.nPos=0; else if(si.nPos>si.nMax-(int)si.nPage) si.nPos=si.nMax-si.nPage; int yPos=si.nPos; si.fMask=SIF_PAGE|SIF_RANGE|SIF_POS; SetScrollInfo(SB_VERT,&si); int width=cx>DLG_MINWIDTH?cx:DLG_MINWIDTH; GetClientRect(rc); if(rc.Width()!=cx||rc.Height()!=cy) SetCtrlPos(); else { // Set Ctrl Pos int top=0; CRect rcCtrl; m_HeightDlg.GetClientRect(rc); rcCtrl.SetRect(0,top,width,rc.Height()); rcCtrl.OffsetRect(-xPos,-yPos); m_HeightDlg.MoveWindow(rcCtrl); top+=rc.Height()+1; m_TerrainTexDlg.GetClientRect(rc); rcCtrl.SetRect(0,top,width,top+rc.Height()); rcCtrl.OffsetRect(-xPos,-yPos); m_TerrainTexDlg.MoveWindow(rcCtrl); top+=rc.Height()+1; m_TerrainGrassDlg.GetClientRect(rc); rcCtrl.SetRect(0,top,width,top+rc.Height()); rcCtrl.OffsetRect(-xPos,-yPos); m_TerrainGrassDlg.MoveWindow(rcCtrl); top+=rc.Height()+1; m_TerrainWaterDlg.GetClientRect(rc); rcCtrl.SetRect(0,top,width,top+rc.Height()); rcCtrl.OffsetRect(-xPos,-yPos); m_TerrainWaterDlg.MoveWindow(rcCtrl); top+=rc.Height()+1; } }