/// <summary> /// 消息转发 /// </summary> /// <param name="msg"></param> protected override void GUIProc(Message msg) { base.GUIProc(msg); switch (msg.ID) { case Messages.Message.MOUSE_WHEEL: case Messages.Message.KEY_UP: case Messages.Message.KEY_DOWN: case Messages.Message.KEY_CHAR: case Messages.Message.KEY_IME_POS: if (gnEditID > 0) { Objects.Object obj = Pool.ObjectPool.GetObjectByID(gnEditID); if (obj != null) { ((GUI.Controls.Control)obj).SendMessage(msg); } } //Pub.Debug.WriteLine("GUIProc", msg.ToString(), msg.ToString()); break; default: for (int i = 0; i < gControls.Count; i++) { if (gControls[i].Visible) { gControls[i].SendMessage(msg); if (msg.Suppress) return; } } break; } }
protected override void GUIProc(Message m) { base.GUIProc(m); switch (m.ID) { case Message.MOUSE_MOVE: //GUIProcMouseMove((Message.MouseMessage)m.Data); MouseMessage data = (MouseMessage)m; Point mp = this.AbsoluteLocation(); Point p = new Point(data.Point.X - mp.X, data.Point.Y - mp.Y); //if (gMouseDown) { // int iLeft = p.X + gHScroll - base.ShadowsSize - base.BorderSize - base.PaddingLeft; // if (iLeft < 0) { // gSelectEnd = 0; // } else { // for (int i = 0; i <= base.Text.Length; i++) { // int len = base.Text.Length - i; // if (base.FontManager.GetWordWidth(base.Text.Substring(0, len)) < iLeft) { // if (gSelectEnd != len) { // gSelectEnd = len; // base.Refresh(); // } // break; // } // } // } // //base.Form.Text = "X:" + p.X + ",Select:" + gSelectEnd; //} break; case Message.MOUSE_DOWN: //GUIProcMouseDown((Message.MouseMessage)m.Data); break; case Message.MOUSE_UP: //GUIProcMouseUp((Message.MouseMessage)m.Data); gMouseDown = false; break; case Message.PAINT: //GUIProcPaint((Message.PaintMessage)m.Data); break; case Message.KEY_IME_POS: KeyImePosMessage kipMsg = (KeyImePosMessage)m; Point pos = this.AbsoluteLocation(); kipMsg.Y = pos.Y + this.PaddingTop + base.BorderSize + this.ShadowsSize; //kipMsg.X = pos.X + this.PaddingLeft + base.BorderSize + this.ShadowsSize + (int)OnGetTextLen(gSelectStart) - gHScroll; break; } }
protected override void GUIProc(Message m) { switch (m.ID) { case Message.MOUSE_DOWN: MouseMessage data = (MouseMessage)m; Point p = new Point(data.Point.X, data.Point.Y); if (this.Rectangle.Contains(p)) { //gForm.Text = "Name:" + this.ID; m.Suppress = true; System.Diagnostics.StackFrame stackFrame = new System.Diagnostics.StackFrame(); System.Reflection.MethodBase methodBase = stackFrame.GetMethod(); System.Diagnostics.Trace.WriteLine(this.GetType().Name + "." + methodBase.Name + "\\>Suppress:" + m.Suppress); } break; } base.GUIProc(m); }
protected override void GUIProc(Message m) { switch (m.ID) { case Message.PAINT: //GUIProcPaint((PaintMessage)m); base.GUIProc(m); break; case Message.MOUSE_WHEEL: GUIProcMouseWheel((MouseMessage)m); break; default: //System.Windows.Forms.MessageBox.Show("All:" + m.Msg); //if (m.Msg != Message.MessageTypes.MOUSE_MOVE) Trace.WriteLine("PanelMessage\\>ID:" + this.ID + ",Name:" + this.Name + ",Msg:(" + m.Msg + ")"); base.GUIProc(m); break; } }
private void ControlContainer_Apply(object sender, Message Msg) { //throw new NotImplementedException(); }
protected override void GUIProc(Message m) { //System.Windows.Forms.MessageBox.Show("All:" + m.Msg + ":" + base.GUIProcSendToChildren); //if (m.Msg != Message.MessageTypes.MOUSE_MOVE) Trace.WriteLine("ContainersMessage\\>ID:" + this.ID + ",Name:" + this.Name + ",Msg:(" + m.Msg + "),SendToChildren:" + base.GUIProcSendToChildren); //if (base.GUIProcSendToChildren) { //base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "m.ID", m.ID.ToString()); switch (m.ID) { case Message.MOUSE_DOWN: MouseMessage mData = (MouseMessage)m; //base.Form.Text = "X:" + mData.X + ",Y:" + mData.Y; MouseMessageSend(m); //StackFrame stackFrame = new StackFrame(); //System.Reflection.MethodBase methodBase = stackFrame.GetMethod(); //Trace.WriteLine(this.GetType().Name + "." + methodBase.Name + "\\>Suppress:" + m.Suppress); if (!m.Suppress) base.GUIProc(m); break; case Message.MOUSE_MOVE: MouseMessage moveData = (MouseMessage)m; //base.Form.Text = "Move->X:" + moveData.X + ",Y:" + moveData.Y; MouseMessageSend(m); if (!m.Suppress) base.GUIProc(m); break; case Message.MOUSE_UP: MouseMessageSend(m); if (!m.Suppress) base.GUIProc(m); break; case Message.RELAYOUT: gChildren.SetOrderByZIndex(); NormalMessageSend(m); break; case Message.PAINT://绘制事件路由 base.GUIProc(m); //根据容器的设定重新设定请求区域 //int nTop = base.ShadowsSize + base.BorderSize + base.PaddingTop; //int nLeft = base.ShadowsSize + base.BorderSize + base.PaddingLeft; //int nWidth = base.Width - (base.ShadowsSize * 2 + base.BorderSize * 2 + base.PaddingRight + base.PaddingLeft) - 1; //int nHeight = base.Height - (base.ShadowsSize * 2 + base.BorderSize * 2 + base.PaddingBottom + base.PaddingTop) - 1; //PaintMessage pm = (PaintMessage)m; ////base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "pm.Rectangle", pm.Rectangle.ToString()); ////base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "this.Rectangle", this.Rectangle.ToString()); ////base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "Pading", "(" + nLeft + ":" + nTop + ")"); ////当绘制区域和当前区域有交集时路由绘制 //if (this.Rectangle.IntersectsWith(pm.Rectangle)) { // //重新定义绘制大小,避免子对象的内容超出父对象的限定 // int nRectWidth = pm.Rectangle.Width; // int nRectHeight = pm.Rectangle.Height; // //重新定义宽度 // if (pm.Rectangle.Right > this.Right - this.PaddingRight) { // nRectWidth -= pm.Rectangle.Right - (this.Right - this.PaddingRight); // } // //重新定义高度 // if (pm.Rectangle.Bottom > this.Bottom - this.PaddingBottom) { // nRectHeight -= pm.Rectangle.Bottom - (this.Bottom - this.PaddingBottom); // } // Rectangle rect = new Rectangle(pm.Rectangle.Left - this.Left - nLeft - gnOffsetX, pm.Rectangle.Top - this.Top - nTop - gnOffsetY, nRectWidth, nRectHeight); // Rectangle rectAbs = new Rectangle(pm.Rectangle.Left - this.Left - nLeft, pm.Rectangle.Top - this.Top - nTop, nRectWidth, nRectHeight); // PaintMessage pmNew = new PaintMessage(pm.Graphics, rect); // PaintMessage pmNewAbs = new PaintMessage(pm.Graphics, rectAbs); // base.GUIProc(m); // for (int i = 0; i < gChildren.Count; i++) { // if (gChildren[i].Visible) { // if (gChildren[i].Absolute) { // gChildren[i].SendMessage(pmNewAbs); // } else { // gChildren[i].SendMessage(pmNew); // } // if (pmNew.Suppress) return; // } // } // //base.Debug(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName, "GUIProc", "Rectangle", rect.ToString()); //} break; default: NormalMessageSend(m); break; } // } }
private void NormalMessageSend(Message m) { base.GUIProc(m); for (int i = 0; i < gChildren.Count; i++) { if (gChildren[i].Visible) { gChildren[i].SendMessage(m); if (m.Suppress) return; } } }
private void MouseMessageSend(Message m) { MouseMessage mData = (MouseMessage)m; MouseMessage em = new MouseMessage(m.ID, mData.Button, mData.Wheel, new System.Drawing.Point(mData.Point.X - base.Left, mData.Point.Y - base.Top)); //data.X = mData.X - base.Left; //data.Y = mData.Y - base.Top; //data.Button = mData.Button; //Message em = new Message(m.Msg, data); //if (m.Msg == Message.MessageTypes.MOUSE_DOWN) base.Form.Text = "X:" + data.X + ",Y:" + data.Y; //if (m.Msg != Message.MessageTypes.MOUSE_MOVE) Trace.WriteLine("MouseMessageSend\\>ID:" + this.ID + ",Name:" + this.Name + ",Msg:(" + m.Msg + "),Children:" + gChildren.Count); for (int i = gChildren.Count - 1; i >= 0; i--) { if (gChildren[i].Visible) { gChildren[i].SendMessage(em); if (em.Suppress) { m.Suppress = true; return; } } } }
protected override void GUIProc(Message m) { base.GUIProc(m); //System.Windows.Forms.MessageBox.Show("All:" + m.Msg + ":" + base.GUIProcSendToChildren); switch (m.ID) { case Message.MOUSE_MOVE: GUIProcMouseMove((MouseMessage)m); break; case Message.MOUSE_UP: gbMouseDown = false; break; } }
protected override void GUIProc(Message m) { base.GUIProc(m); switch (m.ID) { case Message.MOUSE_MOVE: GUIProcMouseMove((MouseMessage)m); break; case Message.MOUSE_UP: gbMouseDown = false; break; } }