/// <summary>
        /// Window Procedure
        /// </summary>
        /// <param name="m">Message content</param>
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case WM_REFRESH_SCREEN:         /* Refresh screen */
                    UpdateScreen();
                    break;
                case WM_WTSSESSION_CHANGE:     /* Session change */
                    int value = m.WParam.ToInt32();
                    if (value == WTS_SESSION_LOCK)
                    {
                        timerControl.Stop();
                    }
                    else if (value == WTS_SESSION_UNLOCK)
                    {
                        timerControl.Start();
                    }
                    break;
                case WM_REFRESH_LISTITEM:     /* Refresh list item */
                    this.RefreshListItem();
                    break;
                default: break;
            }

            base.WndProc(ref m);

            if (m.Msg == 0x0312)
            {
                Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF);
                KeyModifier modifier = (KeyModifier)((int)m.LParam & 0xFFFF);

                if (modifier == KeyModifier.Control)
                {
                    switch (key)
                    {
                        case Keys.OemQuestion:
                            if (statusform != null && statusform.Visible) statusform.Close();
                            statusform = new StatusFrm();
                            statusform.StartPosition = FormStartPosition.Manual;
                            statusform.Top = this.Top;
                            statusform.Left = this.Left - statusform.Width;
                            statusform.Show();
                            break;
                        case Keys.Up:
                            if (timerControl.Enabled == false)
                            {
                                timerControl.Start();
                                timerDisplay.Start();
                                NextItem(timerControl, new EventArgs());
                            }
                            break;
                        case Keys.Down:
                            timerControl.Stop();
                            timerDisplay.Stop();
                            if (lblContent2.Visible == false) lblContent2.Visible = true;
                            break;
                        case Keys.Right:
                            NextItem(timerControl, new EventArgs());
                            //timerControl.Start();
                            break;
                        case Keys.Left:
                            if (AppConfig.ItemShowedIndex > 0)
                            {
                                AppConfig.ItemShowedIndex -= 2;
                            }
                            else
                            {
                                AppConfig.ItemShowedIndex--;
                            }
                            NextItem(timerControl, null);
                            break;
                        case Keys.OemMinus:
                            AppConfig.RemoveItem(AppConfig.ItemShowedIndex);
                            NextItem(timerControl, new EventArgs());
                            break;
                        case Keys.F1:
                            SettingUpdate updatefrm = new SettingUpdate();
                            updatefrm.Show();
                            break;
                        case Keys.End:
                            this.CloseApp();
                            break;
                        default:
                            break;
                    }
                }
            }
        }
Example #2
0
        /// <summary>
        /// Window Procedure
        /// </summary>
        /// <param name="m">Message content</param>
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case WM_REFRESH_SCREEN:             /* Refresh screen */
                UpdateScreen();
                break;

            case WM_WTSSESSION_CHANGE:         /* Session change */
                int value = m.WParam.ToInt32();
                if (value == WTS_SESSION_LOCK)
                {
                    timerControl.Stop();
                }
                else if (value == WTS_SESSION_UNLOCK)
                {
                    timerControl.Start();
                }
                break;

            case WM_REFRESH_LISTITEM:         /* Refresh list item */
                this.RefreshListItem();
                break;

            default: break;
            }

            base.WndProc(ref m);

            if (m.Msg == 0x0312)
            {
                Keys        key      = (Keys)(((int)m.LParam >> 16) & 0xFFFF);
                KeyModifier modifier = (KeyModifier)((int)m.LParam & 0xFFFF);

                if (modifier == KeyModifier.Control)
                {
                    switch (key)
                    {
                    case Keys.OemQuestion:
                        if (statusform != null && statusform.Visible)
                        {
                            statusform.Close();
                        }
                        statusform = new StatusFrm();
                        statusform.StartPosition = FormStartPosition.Manual;
                        statusform.Top           = this.Top;
                        statusform.Left          = this.Left - statusform.Width;
                        statusform.Show();
                        break;

                    case Keys.Up:
                        if (timerControl.Enabled == false)
                        {
                            timerControl.Start();
                            timerDisplay.Start();
                            NextItem(timerControl, new EventArgs());
                        }
                        break;

                    case Keys.Down:
                        timerControl.Stop();
                        timerDisplay.Stop();
                        if (lblContent2.Visible == false)
                        {
                            lblContent2.Visible = true;
                        }
                        break;

                    case Keys.Right:
                        NextItem(timerControl, new EventArgs());
                        //timerControl.Start();
                        break;

                    case Keys.Left:
                        if (AppConfig.ItemShowedIndex > 0)
                        {
                            AppConfig.ItemShowedIndex -= 2;
                        }
                        else
                        {
                            AppConfig.ItemShowedIndex--;
                        }
                        NextItem(timerControl, null);
                        break;

                    case Keys.OemMinus:
                        AppConfig.RemoveItem(AppConfig.ItemShowedIndex);
                        NextItem(timerControl, new EventArgs());
                        break;

                    case Keys.F1:
                        SettingUpdate updatefrm = new SettingUpdate();
                        updatefrm.Show();
                        break;

                    case Keys.End:
                        this.CloseApp();
                        break;

                    default:
                        break;
                    }
                }
            }
        }