public static String fillString(Object o, int bit, char chr, PADDING padding) { String result = null; switch (padding) { case PADDING.LEFT: result = o.ToString().PadLeft(bit, chr); break; case PADDING.RIGHT: result = o.ToString().PadRight(bit, chr); break; default: break; } return(result); }
/// <summary> /// 绘图更新方法 /// </summary> public override void Update() { int width = Width, height = Height; int menuSize = m_subMenus.Count; if (menuSize > 0) { PADDING padding = Padding; int left = padding.left, top = padding.top; int cwidth = width - padding.left - padding.right; for (int i = 0; i < menuSize; i++) { FoldSubMenuA menu = m_subMenus[i]; PADDING menuMargin = menu.Margin; int mwidth = cwidth - menuMargin.left - menuMargin.right; top += menuMargin.top; menu.Location = new POINT(padding.left + menuMargin.left, top); PADDING menuPadding = menu.Padding; int mLeft = menuPadding.left; int mTop = menuPadding.top; menu.TitleLabel.Location = new POINT(mLeft, mTop); menu.ShrinkButton.Location = new POINT(mwidth - menuPadding.right - menu.ShrinkButton.Width, mTop); int menuHeight = 0; if (menu.LayoutDiv.Visible) { mTop += menu.TitleLabel.Height + menu.LayoutDiv.Margin.top; menu.LayoutDiv.Top = mTop; menu.LayoutDiv.Width = mwidth; menu.LayoutDiv.Height = menu.LayoutDiv.GetContentHeight() + menuPadding.bottom; menuHeight = menu.LayoutDiv.Bottom; } else { menuHeight = menu.TitleLabel.Height + menu.LayoutDiv.Margin.top; } menu.Size = new OwLib.SIZE(mwidth, menuHeight); top += menuHeight + menuMargin.bottom; } } base.Update(); }
/// <summary> /// 获取App功能 /// </summary> public void GetApps(List <UserAppsTable> type1List, List <UserAppsTable> type2List, List <UserAppsTable> type3List, List <UserAppsTable> type4List) { PADDING margin1 = new PADDING(5, 5, 5, 5); PADDING padding = new PADDING(5, 5, 5, 5); PADDING margin2 = new PADDING(5, 5, 5, 5); Dictionary <String, FoldSubMenuA> menuCaches = new Dictionary <String, FoldSubMenuA>(); if (type1List != null && type1List.Count > 0) { int num = type1List.Count; FoldSubMenuA menuItemAccount = new FoldSubMenuA(); m_foldMenu.AddSubMenu(menuItemAccount); menuItemAccount.Name = "TYPE1"; menuCaches[menuItemAccount.Name] = menuItemAccount; menuItemAccount.TitleLabel.Text = "员工管理(" + num + ")"; menuItemAccount.ShrinkButton.Text = "收缩"; menuItemAccount.ShrinkButton.Name = "shrink"; menuItemAccount.LayoutDiv.Margin = margin1; menuItemAccount.Padding = padding; menuItemAccount.Margin = margin2; menuItemAccount.TitleLabel.Size = new SIZE(150, 20); menuItemAccount.ShrinkButton.Size = new SIZE(80, 20); foreach (UserAppsTable userApp in type1List) { FoldMenuItemA menuButtonAddUser = new FoldMenuItemA(); menuButtonAddUser.Text = userApp.m_appName; menuButtonAddUser.Name = userApp.m_appID; menuButtonAddUser.BackImage = "file='images\\" + userApp.m_appID + ".jpg'"; menuButtonAddUser.Margin = margin2; menuItemAccount.LayoutDiv.AddControl(menuButtonAddUser); } } if (type2List != null && type2List.Count > 0) { int num = type2List.Count; FoldSubMenuA menuItemFundTrade = new FoldSubMenuA(); m_foldMenu.AddSubMenu(menuItemFundTrade); menuItemFundTrade.Name = "TYPE2"; menuCaches[menuItemFundTrade.Name] = menuItemFundTrade; menuItemFundTrade.TitleLabel.Text = "项目管理(" + num + ")"; menuItemFundTrade.ShrinkButton.Text = "收缩"; menuItemFundTrade.ShrinkButton.Name = "shrink"; menuItemFundTrade.LayoutDiv.Margin = margin1; menuItemFundTrade.Padding = padding; menuItemFundTrade.Margin = margin2; menuItemFundTrade.TitleLabel.Size = new SIZE(150, 20); menuItemFundTrade.ShrinkButton.Size = new SIZE(80, 20); foreach (UserAppsTable userApp in type2List) { FoldMenuItemA menuButtonAddUser = new FoldMenuItemA(); menuButtonAddUser.Text = userApp.m_appName; menuButtonAddUser.Name = userApp.m_appID; menuButtonAddUser.BackImage = "file='images\\" + userApp.m_appID + ".jpg'"; menuButtonAddUser.Margin = margin2; menuItemFundTrade.LayoutDiv.AddControl(menuButtonAddUser); } } if (type3List != null && type3List.Count > 0) { int num = type3List.Count; FoldSubMenuA menuItemSystem = new FoldSubMenuA(); menuItemSystem.Name = "TYPE3"; menuCaches[menuItemSystem.Name] = menuItemSystem; m_foldMenu.AddSubMenu(menuItemSystem); menuItemSystem.TitleLabel.Text = "个人管理(" + num + ")"; menuItemSystem.ShrinkButton.Text = "收缩"; menuItemSystem.ShrinkButton.Name = "shrink"; menuItemSystem.LayoutDiv.Margin = margin1; menuItemSystem.Padding = padding; menuItemSystem.Margin = margin2; menuItemSystem.TitleLabel.Size = new SIZE(150, 20); menuItemSystem.ShrinkButton.Size = new SIZE(80, 20); foreach (UserAppsTable userApp in type3List) { FoldMenuItemA menuButtonAddUser = new FoldMenuItemA(); menuButtonAddUser.Text = userApp.m_appName; menuButtonAddUser.Name = userApp.m_appID; menuButtonAddUser.BackImage = "file='images\\" + userApp.m_appID + ".jpg'"; menuButtonAddUser.Margin = margin2; menuItemSystem.LayoutDiv.AddControl(menuButtonAddUser); } } if (type4List != null && type4List.Count > 0) { int num = type4List.Count; FoldSubMenuA menuItemRisk = new FoldSubMenuA(); menuItemRisk.Name = "TYPE4"; menuCaches[menuItemRisk.Name] = menuItemRisk; m_foldMenu.AddSubMenu(menuItemRisk); menuItemRisk.TitleLabel.Text = "情报管理(" + num + ")"; menuItemRisk.ShrinkButton.Text = "收缩"; menuItemRisk.ShrinkButton.Name = "shrink"; menuItemRisk.LayoutDiv.Margin = margin1; menuItemRisk.Padding = padding; menuItemRisk.Margin = margin2; menuItemRisk.TitleLabel.Size = new SIZE(150, 20); menuItemRisk.ShrinkButton.Size = new SIZE(80, 20); foreach (UserAppsTable userApp in type4List) { FoldMenuItemA menuButtonAddUser = new FoldMenuItemA(); menuButtonAddUser.Text = userApp.m_appName; menuButtonAddUser.Name = userApp.m_appID; menuButtonAddUser.BackImage = "file='images\\" + userApp.m_appID + ".jpg'"; menuButtonAddUser.Margin = margin2; menuItemRisk.LayoutDiv.AddControl(menuButtonAddUser); } } //读取布局信息 UserCookie cookie = new UserCookie(); cookie.m_key = "MENULAYOUT" + DataCenter.UserID.ToString(); cookie.m_userID = DataCenter.UserID; if (DataCenter.UserCookieService.GetCookie(cookie.m_key, ref cookie) > 0) { String value = cookie.m_value; String[] strs = value.Split(new String[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); int strsSize = strs.Length; for (int i = 0; i < strsSize; i++) { String[] subStrs = strs[i].Split(new String[] { "," }, StringSplitOptions.RemoveEmptyEntries); String foldName = subStrs[0]; bool visible = subStrs[1] == "1"; if (menuCaches.ContainsKey(foldName)) { FoldSubMenuA foldSubMenu = menuCaches[foldName]; foldSubMenu.LayoutDiv.Visible = visible; int subStrsSize = subStrs.Length; int orderNum = 0; for (int j = 2; j < subStrsSize; j++) { List <ControlA> subControls = foldSubMenu.LayoutDiv.m_controls; int subControlsSize = subControls.Count; for (int m = 0; m < subControlsSize; m++) { ControlA subControl = subControls[m]; if (subControl.Name == subStrs[j]) { (subControl as FoldMenuItemA).OrderNum = orderNum; orderNum++; break; } } } foldSubMenu.LayoutDiv.m_controls.Sort(new FoldMenuItemOrderNumCompare()); } } } menuCaches.Clear(); m_foldMenu.Update(); Native.Update(); ControlPaintEvent paintLayoutEvent = new ControlPaintEvent(PaintLayoutDiv); m_foldMenu.RegisterEvent(paintLayoutEvent, EVENTID.PAINT); }
public static extern void M135(int layoutStyle, ref RECT bounds, ref PADDING padding, ref PADDING margin, int left, int top, int width, int height, int tw, int th, ref POINT headerLocation);