using System; using System.Diagnostics; using System.Drawing; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.Runtime.InteropServices; namespace CSharpFormLibrary { public class IMENotifyForm : System.Windows.Forms.Form { private IContainer components; //Not used codes //private int currentPage = 0; //目前頁次 //private int totalPage = 0; //傳入的 Notify 共有幾頁 //private ArrayList m_NotifyArray; //傳入的 Notify array //private string[] m_inputs; //private int m_mode = 0; //0:直式 1:展開 // //當頁的index //int now_index; //int baseSize; //基本長度(沒有Notify時form的大小) private IntPtr m_hwnd; private const int WM_MOUSEACTIVATE = 0x0021; private const int MA_ACTIVATE = 0x0001; private const int MA_ACTIVATEANDEAT = 0x0002; private const int MA_NOACTIVATE = 0x0003; //Not used codes //private ColumnHeader columnHeader1; //private ColumnHeader columnHeader2; // private ImageList imageList1; private PictureBox pictureBox1; private TextBox textBox1; private ToolStrip toolStrip1; private const int MA_NOACTIVATEANDEAT = 0x0004; public IMENotifyForm() { InitializeComponent(); //baseSize = this.lbNotifys.Location.Y+100; //this.Opacity = 1; this.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); Application.EnableVisualStyles(); } public IMENotifyForm(string[] Notifys) { InitializeComponent(); this.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true); } protected override void WndProc(ref Message m) { if (m.Msg == WM_MOUSEACTIVATE) { m.Result = (IntPtr)MA_NOACTIVATEANDEAT; //m.Result = (IntPtr)MA_NOACTIVATE; return; } base.WndProc(ref m); } protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } } base.Dispose(disposing); } #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.imageList1 = new System.Windows.Forms.ImageList(this.components); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.textBox1 = new System.Windows.Forms.TextBox(); this.toolStrip1 = new System.Windows.Forms.ToolStrip(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // imageList1 // this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.imageList1.ImageSize = new System.Drawing.Size(1, 25); this.imageList1.TransparentColor = System.Drawing.Color.Transparent; // // pictureBox1 // this.pictureBox1.Location = new System.Drawing.Point(57, 42); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(138, 96); this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; // // textBox1 // this.textBox1.Location = new System.Drawing.Point(32, 161); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(223, 31); this.textBox1.TabIndex = 1; // // toolStrip1 // this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.Size = new System.Drawing.Size(292, 25); this.toolStrip1.TabIndex = 2; this.toolStrip1.Text = "toolStrip1"; // // IMENotifyForm // this.AutoSize = true; this.BackColor = System.Drawing.SystemColors.Info; this.ClientSize = new System.Drawing.Size(292, 260); this.Controls.Add(this.toolStrip1); this.Controls.Add(this.textBox1); this.Controls.Add(this.pictureBox1); this.Font = new System.Drawing.Font("PMingLiU", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(136))); this.ForeColor = System.Drawing.SystemColors.WindowText; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Name = "IMENotifyForm"; this.ShowInTaskbar = false; this.Deactivate += new System.EventHandler(this.IMENotifyForm_Deactivate); this.Enter += new System.EventHandler(this.IMENotifyForm_Enter); this.Activated += new System.EventHandler(this.IMENotifyForm_Activated); this.Validated += new System.EventHandler(this.IMENotifyForm_Validated); this.Click += new System.EventHandler(this.IMENotifyForm_Click); this.Validating += new System.ComponentModel.CancelEventHandler(this.IMENotifyForm_Validating); this.Leave += new System.EventHandler(this.IMENotifyForm_Leave); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } #endregion #region public methods public void SetNotifyStr(string inputs) { //this.textBox1.Text = inputs; NotifyWindow nw; //if (checkBoxTitle.Checked) { nw = new NotifyWindow("Notify Titile",inputs ); nw.TitleClicked += new System.EventHandler(titleClick); } //else //nw = new NotifyWindow(textBoxText.Text); nw.TextClicked += new System.EventHandler(textClick); nw.SetDimensions(200, 120); nw.Notify(); } public void SetLocation(int x, int y) { this.Location = new Point(x, y); } public void DisposeForm() { this.Dispose(true); } public void ClearNotify() { } public void SetHWND(IntPtr hwnd) { m_hwnd = hwnd; } #endregion #region a protected override method for WS_POPUP protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style = unchecked((int)0x80000000); //WS_POPUP return cp; /*const int WS_EX_NOACTIVATE = 0x08000000; CreateParams cp = base.CreateParams; cp.ExStyle = cp.ExStyle | WS_EX_NOACTIVATE; return cp;*/ } } #endregion public int GetWidth() { return this.Width; } public int GetHeight() { return this.Height; } public void ShowNoActive() { if (!this.Visible) UtilFuncs.SetVisibleNoActivate(this, true); // true to show. } public void HideNoActive() { if (this.Visible) UtilFuncs.SetVisibleNoActivate(this, false); // false to hide. } private void IMENotifyForm_Click(object sender, System.EventArgs e) { System.Diagnostics.Debug.WriteLine("Click"); } private void lbNotifys_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { //MessageBox.Show(this.lbNotifys.Parent.ToString()); //SendKeys.SendWait((this.lbNotifys.SelectedIndex+1).ToString()); } private void IMENotifyForm_Activated(object sender, System.EventArgs e) { //ShowNoActive(); //if(!isTouched) { //UtilFuncs.GiveBackFocus(m_hwnd); System.Diagnostics.Debug.Write("Notify Active(); give back focus to "); System.Diagnostics.Debug.WriteLine(m_hwnd); // isTouched = true; }//else // isTouched = false; } private void IMENotifyForm_Deactivate(object sender, System.EventArgs e) { //HideNoActive(); System.Diagnostics.Debug.WriteLine("Notify DeActive();"); } private void lbNotifys_Enter(object sender, System.EventArgs e) { System.Diagnostics.Debug.WriteLine("lbNotifys_Enter"); } private void lbNotifys_Leave(object sender, System.EventArgs e) { System.Diagnostics.Debug.WriteLine("lbNotifys_Leave"); } private void IMENotifyForm_Enter(object sender, System.EventArgs e) { System.Diagnostics.Debug.WriteLine("Notify Enter"); } private void IMENotifyForm_Leave(object sender, System.EventArgs e) { System.Diagnostics.Debug.WriteLine("Notify Leave"); } private void IMENotifyForm_Validated(object sender, System.EventArgs e) { System.Diagnostics.Debug.WriteLine("Notify Validated"); } private void IMENotifyForm_Validating(object sender, System.ComponentModel.CancelEventArgs e) { System.Diagnostics.Debug.WriteLine("Notify Validating"); } private void lbNotifys_KeyDown(object sender, KeyEventArgs e) { /* if (totalPage > 1 && e.KeyCode==Keys.Right) //超過一頁才有展開功能 { //expandable = true; MessageBox.Show("fuck"); }*/ } private void lbNotifys_KeyPress(object sender, KeyPressEventArgs e) { /* if (totalPage > 1) { e.Handled = true; MessageBox.Show("fuck"); }*/ } protected void textClick(object sender, System.EventArgs e) { MessageBox.Show("Text clicked"); } protected void titleClick(object sender, System.EventArgs e) { MessageBox.Show("Title text clicked"); } } }