亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? toolbarex.cs

?? chaoshi guan li xitong
?? CS
?? 第 1 頁 / 共 3 頁
字號:
				{
					if (point != lastMousePosition)
					{
						int index = HitTest(point);
						if ((IsValid(index)) && (index != trackHotItem))
							TrackDropDownNext(index);
						lastMousePosition = point;
					}
				}
				else if (message.Msg == (int)Msg.WM_LBUTTONDOWN)
				{
					if (HitTest(point) == trackHotItem)
					{
						TrackDropDownNext(-1);
						return true;
					}
				}
			}
	
			return false;
		
		}

		void SetState(State state, int index)
		{
			if (this.state != state)
			{
				if (state == State.None)
					index = -1;
					
				SetHotItem(index);
				
				if (state == State.HotTracking)
				{
					trackEscapePressed = false;
					trackHotItem = index;
				}
			}
			
			this.lastState = this.state;
			this.state = state;
		}
		
		void IChevron.Show(Control control, Point point)
		{
			ToolBarItemCollection chevronItems = new ToolBarItemCollection();
			Size size = ClientSize;
			int currentCount = 0;
			bool addItem = true;
			ToolBarItem lastItem;
			bool hasComboBox = false;

			for (int i = 0; i < items.Count; i++)
			{
				bool IsSeparator = false;
				RECT rect = new RECT();
				WindowsAPI.SendMessage(Handle, (int)ToolBarMessages.TB_GETITEMRECT, i, ref rect);
				if (rect.right > size.Width)
				{
					ToolBarItem item = items[i];
					if ( item.ComboBox != null )
						hasComboBox = true;
					IsSeparator = (item.Style == ToolBarItemStyle.Separator);
					if ( item.Visible ) 
						if ( (!IsSeparator ) || (chevronItems.Count != 0) )
						{
							// don't add it if previous item was a separator
							currentCount = chevronItems.Count;
							if ( currentCount > 0 ) 
							{
								lastItem = chevronItems[currentCount-1];
								if ( lastItem.Style == ToolBarItemStyle.Separator && IsSeparator )
								{
									addItem = false;
								}
							}

							if ( addItem )
								chevronItems.Add(item);
							addItem = true;
						}
				}
			}

			// Don't show a separator as the last item of the context menu
			int itemsCount = chevronItems.Count;
			if ( itemsCount > 0 )
			{
				lastItem = chevronItems[itemsCount-1];
				if ( lastItem.Style == ToolBarItemStyle.Separator )
					chevronItems.RemoveAt(itemsCount-1);
			}
			
			chevronMenu.Items = chevronItems;
			chevronMenu.Style = VisualStyle.IDE;
			chevronMenu.TrackPopup(control.PointToScreen(point));

			// Need to reparent the combobox to this toolbar in case
			// there was a combobox that was displayed by the popup menu
			if ( hasComboBox )
			{
				// Run the logic for combobox visibility before reposition it
				ToolbarSizeChanged();      

				for (int i = 0; i < items.Count; i++)
				{
					ToolBarItem item = items[i];
					if ( item.Style == ToolBarItemStyle.ComboBox )
					{
						WindowsAPI.SetParent(item.ComboBox.Handle, Handle);
						ComboBoxBase cbb = (ComboBoxBase)item.ComboBox;
						cbb.ToolBarUse = true;
						UpdateItem(i);
						cbb.Invalidate();
					}
				}
			}		
		}

		internal void ToolbarSizeChanged()
		{
			if ( BarType == BarType.MenuBar )
				return;
			
			// Make sure that comboboxes are either visible
			// or invisible depending wheater they are showing
			// all of the client area or they are partially hidden
			Size size = ClientSize;
			for (int i = 0; i < items.Count; i++)
			{
				ToolBarItem item = items[i];
				if ( item.Style == ToolBarItemStyle.ComboBox )
				{
					RECT rect = new RECT();
					WindowsAPI.SendMessage(Handle, (int)ToolBarMessages.TB_GETITEMRECT, i, ref rect);
					if (rect.right > size.Width)
						item.ComboBox.Visible = false;
					else
						item.ComboBox.Visible = true;
				}
			}
		}

		protected override void WndProc(ref Message message)
		{
			base.WndProc(ref message);
			int index = -1;
			ToolBarItem item = null;

			switch (message.Msg)
			{
				case (int)ReflectedMessages.OCM_COMMAND:
					index = (int) message.WParam & 0xFFFF;
					item = items[index];
					item.RaiseClick();
					base.WndProc(ref message);
					ResetMouseEventArgs();
					break;

				case (int)Msg.WM_MENUCHAR:
					MenuChar(ref message);
					break;

				case (int)Msg.WM_ERASEBKGND:
					break;
				
				case (int)Msg.WM_NOTIFY:
				case (int)ReflectedMessages.OCM_NOTIFY:
					NMHDR nm = (NMHDR) message.GetLParam(typeof(NMHDR));
					switch (nm.code)
					{
						case (int)ToolBarNotifications.TTN_NEEDTEXTA:
							NotifyNeedTextA(ref message);
							break;
		
						case (int)ToolBarNotifications.TTN_NEEDTEXTW:
							NotifyNeedTextW(ref message);
							break;				
		
						case (int)ToolBarNotifications.TBN_QUERYINSERT:
							message.Result = (IntPtr) 1;
							break;
		
						case (int)ToolBarNotifications.TBN_DROPDOWN:
							NMTOOLBAR nmt = (NMTOOLBAR) message.GetLParam(typeof(NMTOOLBAR));
							index = nmt.iItem;
							item = items[index];
							item.Dropped = true;
							item.RaiseDropDown();
							break;
							
						case (int)NotificationMessages.NM_CUSTOMDRAW:
							NotifyCustomDraw(ref message);
							break;

						case (int)ToolBarNotifications.TBN_HOTITEMCHANGE:
							break;
					}
					break;
			}
		}

		void MenuChar(ref Message message)
		{
			
			ToolBarItem item = items[trackHotItem];
			Menu menu = item.ToolBarItemMenu.FindMenuItem(MenuItem.FindHandle, message.LParam);
			if (item.ToolBarItemMenu.Handle == message.LParam) menu = item.ToolBarItemMenu;

			if (menu != null)
			{
				char key = char.ToUpper((char) ((int) message.WParam & 0x0000FFFF));
				int index = 0;
				foreach (MenuItem menuItem in menu.MenuItems)
				{
					if ((menuItem != null) && (menuItem.OwnerDraw) && (menuItem.Mnemonic == key))
					{
						message.Result = (IntPtr) (((int)MenuCharReturnValues.MNC_EXECUTE << 16) | index);
						return;
					}
					
					if (menuItem.Visible) index++;
				}
			}
		}


		void NotifyNeedTextA(ref Message m)
		{
			TOOLTIPTEXTA ttt = (TOOLTIPTEXTA) m.GetLParam(typeof(TOOLTIPTEXTA));
			ToolBarItem item = (ToolBarItem) items[ttt.hdr.idFrom];
			string toolTip = item.ToolTip;
			if ( toolTip != null && toolTip != string.Empty )
			{
				ttt.szText = toolTip;
				ttt.hinst = IntPtr.Zero;
				if ( RightToLeft == RightToLeft.Yes ) ttt.uFlags |= (int)ToolTipFlags.TTF_RTLREADING;
				Marshal.StructureToPtr(ttt, m.LParam, true);
				m.Result = (IntPtr) 1;
			}
		}
	
		void NotifyNeedTextW(ref Message m)
		{
			if (Marshal.SystemDefaultCharSize != 2) return;
	
			// This code is a duplicate of NotifyNeedTextA
			TOOLTIPTEXT ttt = (TOOLTIPTEXT) m.GetLParam(typeof(TOOLTIPTEXT));
			ToolBarItem item = (ToolBarItem) items[ttt.hdr.idFrom];
			string toolTip = item.ToolTip;
			if ( toolTip != null && toolTip != string.Empty )
			{
				ttt.szText = toolTip;
				ttt.hinst = IntPtr.Zero;
				if (RightToLeft == RightToLeft.Yes) ttt.uFlags |= (int)ToolTipFlags.TTF_RTLREADING;
				Marshal.StructureToPtr(ttt, m.LParam, true);
				m.Result = (IntPtr) 1;
			}
		}

		void NotifyCustomDraw(ref Message m)
		{
			m.Result = (IntPtr) CustomDrawReturnFlags.CDRF_DODEFAULT;
			NMTBCUSTOMDRAW tbcd = (NMTBCUSTOMDRAW)m.GetLParam(typeof(NMTBCUSTOMDRAW));

			switch (tbcd.nmcd.dwDrawStage)
			{
				case (int)CustomDrawDrawStateFlags.CDDS_PREPAINT:
					// Tell toolbar control that we want to do the painting ourselves
					m.Result = (IntPtr) CustomDrawReturnFlags.CDRF_NOTIFYITEMDRAW;
					break;
	
				case (int)CustomDrawDrawStateFlags.CDDS_ITEMPREPAINT:
					// Do custom painting
					NotifyCustomDrawToolBar(ref m);
					break;
			}
		}

		void NotifyCustomDrawToolBar(ref Message m)
		{
			m.Result = (IntPtr) CustomDrawReturnFlags.CDRF_DODEFAULT;
			
			// See if use wants the VSNet look or let XP dictate
			// the toolbar look
			if ( IsCommonCtrl6() )
			{
                // Let the operating system do the drawing
				return;
			}
					
			NMTBCUSTOMDRAW tbcd = (NMTBCUSTOMDRAW) m.GetLParam(typeof(NMTBCUSTOMDRAW));
			RECT rc = tbcd.nmcd.rc;
			Rectangle rectangle = new Rectangle(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top);

			Graphics g = Graphics.FromHdc(tbcd.nmcd.hdc);
			int index = tbcd.nmcd.dwItemSpec;
			ToolBarItem item = items[index];

			if ( item.Style == ToolBarItemStyle.ComboBox )
			{
				// ComboBoxes paint themselves
				// the combox new size, after changing the combobox font,
				// does not get updated until later in the drawing logic
				// pick up the right size here and update the combobox position
				UpdateComboBoxPosition(index);
				m.Result = (IntPtr) CustomDrawReturnFlags.CDRF_SKIPDEFAULT;
				return;
			}

			bool hot = (bool)((tbcd.nmcd.uItemState & (int)CustomDrawItemStateFlags.CDIS_HOT) != 0);
			bool selected = (bool)((tbcd.nmcd.uItemState & (int)CustomDrawItemStateFlags.CDIS_SELECTED) != 0);
			bool disabled = (bool)((tbcd.nmcd.uItemState & (int)CustomDrawItemStateFlags.CDIS_DISABLED) != 0);
			string tempString = item.Text;
			bool hasText = (tempString != string.Empty && tempString != null);
	
			if (item.Checked) 
			{
				if ( hot )
					g.FillRectangle(new SolidBrush(ColorUtil.VSNetPressedColor), rectangle);
				else
					g.FillRectangle(new SolidBrush(ColorUtil.VSNetCheckedColor), rectangle);
				g.DrawRectangle(new Pen(new SolidBrush(ColorUtil.VSNetBorderColor), 1), 
					rectangle.Left, rectangle.Top, rectangle.Width-1, rectangle.Height-1);
				
			}
			else if (selected) 
			{
				if ( item.Style == ToolBarItemStyle.DropDownButton ) 
				{
					// Draw background
					g.FillRectangle(new SolidBrush(ColorUtil.VSNetSelectionColor), rectangle);
					g.FillRectangle(new SolidBrush(ColorUtil.VSNetPressedColor), rectangle.Left, rectangle.Top, 
						rectangle.Width-DROWPDOWN_ARROW_WIDTH+1, rectangle.Height);
					g.DrawRectangle(new Pen(new SolidBrush(ColorUtil.VSNetBorderColor), 1), 
						rectangle.Left, rectangle.Top, rectangle.Width-1, rectangle.Height-1);
				}
				else 
				{
					if ( barType == BarType.MenuBar)
					{
						g.FillRectangle(new SolidBrush(ColorUtil.VSNetControlColor), rectangle);
						if ( ColorUtil.UsingCustomColor )
						{
							// Use same color for both sides to make it look flat
							g.DrawRectangle(new Pen(ColorUtil.VSNetBorderColor), 
								rectangle.Left, rectangle.Top, rectangle.Width-1, rectangle.Height-1);
						}
						else 
						{
							ControlPaint.DrawBorder3D(g, rectangle.Left, rectangle.Top, rectangle.Width-1, 
								rectangle.Height-1, Border3DStyle.Flat, Border3DSide.Top | Border3DSide.Left | Border3DSide.Right);
						}
					}
					else 
					{
						g.FillRectangle(new SolidBrush(ColorUtil.VSNetPressedColor), rectangle);
						g.DrawRectangle(new Pen(new SolidBrush(ColorUtil.VSNetBorderColor), 1), 
							rectangle.Left, rectangle.Top, rectangle.Width-1, rectangle.Height-1);
					}
				}
				
				
			}
			else if ( item.Style == ToolBarItemStyle.DropDownButton && item.Dropped )
			{
				g.FillRectangle(new SolidBrush(ColorUtil.VSNetControlColor), rectangle);
				g.DrawRectangle(new Pen(new SolidBrush(SystemColors.ControlDark), 1), 
					rectangle.Left, rectangle.Top, rectangle.Width-1, rectangle.Height-1);
			}
			else if (hot)
			{
				g.FillRectangle(new SolidBrush(ColorUtil.VSNetSelectionColor), rectangle);
				g.DrawRectangle(new Pen(new SolidBrush(ColorUtil.VSNetBorderColor), 1), 
					rectangle.Left, rectangle.Top, rectangle.Width-1, rectangle.Height-1);
			}
			else 
			{
				if ( item.Style == ToolBarItemStyle.DropDownButton )
				{
					
					IntPtr hreBar = WindowsAPI.GetParent(Handle);
					IntPtr hMainWindow = IntPtr.Zero;
					bool mainHasFocus = false;
					if ( hreBar != IntPtr.Zero )
					{
						hMainWindow = WindowsAPI.GetParent(hreBar);
						if ( hMainWindow != IntPtr.Zero ) 
							mainHasFocus = ( hMainWindow == WindowsAPI.GetFocus());
					}

					if ( hMainWindow != IntPtr.Zero &&  mainHasFocus)
					{
						Point pos = Control.MousePosition;
						Point clientPoint = PointToClient(pos);
						if ( rectangle.Contains(clientPoint))
						{
							g.FillRectangle(new SolidBrush(ColorUtil.VSNetSelectionColor), rectangle);
							g.DrawRectangle(new Pen(new SolidBrush(ColorUtil.VSNetBorderColor), 1), 
								rectangle.Left, rectangle.Top, rectangle.Width-1, rectangle.Height-1);

							rc.right -= DROWPDOWN_ARROW_WIDTH;
							g.DrawLine(new Pen(new SolidBrush(ColorUtil.VSNetBorderColor), 1), 
								rc.right+1, rc.top, rc.right+1, rc.top + (rc.bottom-rc.top));
							rc.right += DROWPDOWN_ARROW_WIDTH;
						}
					}
				}
			}

			if ( item.Style == ToolBarItemStyle.DropDownButton ) 
			{
				DrawArrowGlyph(g, rectangle);

				// Draw line that separates the arrow from the button
				rc.right -= DROWPDOWN_ARROW_WIDTH;
				if ( hot && !item.Dropped )
					g.DrawLine(new Pen(new SolidBrush(ColorUtil.VSNetBorderColor), 1), 
						rc.right+1, rc.top, rc.right+1, rc.top + (rc.bottom-rc.top));
				item.Dropped = false;

			}
			
			Image image = item.Image;
			if (image != null)
			{
				Size size = image.Size;
				Point point = new Point(rc.left + ((rc.right - rc.left - size.Width) / 2), 
					rc.top + ((rc.bottom - rc.top - size.Height) / 2));
				if ( hasText ) point.X = rc.left + MARGIN;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久av资源网| 26uuu成人网一区二区三区| 成人短视频下载| 91麻豆6部合集magnet| 91精品在线免费观看| 国产亚洲短视频| 亚洲午夜精品网| 久久精品国产网站| wwww国产精品欧美| 国产传媒欧美日韩成人| 欧美精品久久久久久久多人混战| 国产亚洲一区二区三区| 岛国一区二区在线观看| 日韩视频一区二区三区| 亚洲免费色视频| 国产精品资源在线观看| 欧美精品丝袜中出| 激情欧美日韩一区二区| 欧美视频第二页| 国产精品理论在线观看| 美女脱光内衣内裤视频久久影院| 色综合天天做天天爱| 国产午夜久久久久| 色综合久久久久久久久久久| 国产精品久久久久久久久晋中 | 欧美日韩在线播放| 亚洲另类在线视频| 成人免费视频免费观看| 亚洲一二三区不卡| 国产欧美一区二区精品婷婷| 久久91精品久久久久久秒播 | 日韩女优视频免费观看| 午夜亚洲福利老司机| 一本到不卡精品视频在线观看| 日韩1区2区3区| 欧美日韩视频在线第一区 | voyeur盗摄精品| 国产精品盗摄一区二区三区| 欧美日韩一级视频| 大尺度一区二区| 日本人妖一区二区| 亚洲卡通动漫在线| 国产欧美一区二区精品仙草咪| 精品视频1区2区3区| 成人激情小说乱人伦| 日本91福利区| 久久久久综合网| 国产凹凸在线观看一区二区| 久久久国际精品| 在线91免费看| 色哟哟在线观看一区二区三区| 国产一区二区在线影院| 欧美韩国日本一区| 95精品视频在线| 亚洲不卡av一区二区三区| 欧美一级视频精品观看| 国产乱人伦偷精品视频免下载| 天天综合色天天综合| 亚洲欧美日韩国产综合在线| 国产亚洲精品资源在线26u| 91精品福利在线一区二区三区 | 国产成人欧美日韩在线电影| 丝袜a∨在线一区二区三区不卡| 在线成人小视频| 在线看日韩精品电影| 视频一区免费在线观看| 亚洲尤物视频在线| 久久亚洲一区二区三区四区| 欧美一区三区四区| 欧美日韩高清一区二区三区| 国产九色sp调教91| 国产伦精品一区二区三区免费迷 | 久久精品国产99久久6| 午夜久久久影院| 婷婷国产v国产偷v亚洲高清| 亚洲成人777| 婷婷综合久久一区二区三区| 午夜精品福利久久久| 视频一区中文字幕| 日本va欧美va瓶| 精品系列免费在线观看| 黄色成人免费在线| 国产成人av电影在线| 国产成+人+日韩+欧美+亚洲| 成人免费av在线| av不卡免费在线观看| 一本大道av伊人久久综合| 欧美性受xxxx黑人xyx性爽| 欧美性生活久久| 欧美日韩精品综合在线| 欧美二区三区的天堂| 日韩写真欧美这视频| 欧美电影免费观看完整版| 久久久久久久久久久久电影| 国产欧美久久久精品影院| 亚洲欧洲日产国产综合网| 精品国产精品一区二区夜夜嗨| 在线一区二区三区做爰视频网站| 国产美女久久久久| 97久久超碰国产精品| 欧美视频三区在线播放| 日韩久久免费av| 久久久精品中文字幕麻豆发布| 国产精品五月天| 久久久久高清精品| 日韩久久一区二区| 国产亚洲成aⅴ人片在线观看| 国产精品日韩成人| 亚洲综合久久久| 寂寞少妇一区二区三区| 成人禁用看黄a在线| 欧美老年两性高潮| 国产欧美日韩在线观看| 亚洲一二三区视频在线观看| 国模娜娜一区二区三区| 99re热视频精品| 欧美一级久久久久久久大片| 久久久不卡网国产精品二区| 一区二区三区国产豹纹内裤在线| 国产精品传媒视频| 日本大胆欧美人术艺术动态| 床上的激情91.| 在线不卡免费欧美| 17c精品麻豆一区二区免费| 蜜桃视频在线观看一区| av激情亚洲男人天堂| 日韩一区二区免费在线观看| 中文字幕av资源一区| 美女一区二区三区在线观看| 91女厕偷拍女厕偷拍高清| 欧美xxxx在线观看| 久久嫩草精品久久久精品一| 亚洲一区二区欧美日韩| 国产69精品一区二区亚洲孕妇| 欧美日韩日日骚| 亚洲欧美激情一区二区| 粉嫩欧美一区二区三区高清影视| 欧美日韩黄视频| 亚洲精品伦理在线| 国产一区二区在线影院| 51精品国自产在线| 亚洲黄色小说网站| 成人sese在线| www国产精品av| 久久精品噜噜噜成人88aⅴ| 欧美综合一区二区三区| 国产精品传媒入口麻豆| 春色校园综合激情亚洲| 亚洲精品在线电影| 久久99精品久久久久久动态图| 51精品秘密在线观看| 香港成人在线视频| 欧美日韩一区二区三区四区五区| 亚洲欧美一区二区视频| 不卡的av网站| 中文乱码免费一区二区| 国产成人在线网站| 欧美国产成人精品| 成人亚洲一区二区一| 久久精品无码一区二区三区| 黑人精品欧美一区二区蜜桃| 日韩欧美国产午夜精品| 麻豆精品新av中文字幕| 日韩欧美中文字幕一区| 蜜桃久久av一区| 久久影院视频免费| 国内欧美视频一区二区| 久久久三级国产网站| 国产乱码精品一区二区三区av | 中文字幕在线播放不卡一区| 国产伦精品一区二区三区视频青涩 | 国产午夜精品在线观看| 国产综合色产在线精品 | 国产精品国产自产拍高清av| 成人永久免费视频| 国产精品短视频| 色天使久久综合网天天| 亚洲成av人片一区二区梦乃 | 日韩欧美国产系列| 国产麻豆日韩欧美久久| 国产精品区一区二区三区| 99久久99精品久久久久久| 亚洲黄一区二区三区| 欧美狂野另类xxxxoooo| 日韩成人免费电影| 久久综合九色综合欧美亚洲| 成人午夜精品一区二区三区| 亚洲欧美日韩系列| 91精品福利在线一区二区三区| 久久精品国产999大香线蕉| 国产亚洲婷婷免费| 97精品超碰一区二区三区| 午夜视频久久久久久| 欧美r级在线观看| av一区二区三区黑人| 一区二区三区日韩精品视频| 欧美一区三区二区| av男人天堂一区| 日本视频中文字幕一区二区三区| 国产日韩视频一区二区三区|