Pocket PC / Windows Mobile: Как обнаружить умный, минимизируют

Попробуйте это;

val appModule = module {

        single {
            androidApplication().getSharedPreferences("default", Context.MODE_PRIVATE) as SharedPreferences
        }

        single {
            getSharedPreferences(androidApplication()).edit() as SharedPreferences.Editor
        }
    }
7
задан ctacke 23 January 2009 в 14:35
поделиться

2 ответа

Я думаю, что способ пойти сюда обрабатывает сообщение WM_ACTIVE и затем проверяет, не является ли fMinimized параметр нулем. Можно найти больше информации о том, как объявить, что это обменивается сообщениями в коде в здесь.

Я попробую фигуру, как точно кодировать это в C# и доказать гипотезу. Однако Вы, возможно, быстрее, чем я и понимаете это.

Также проверьте функции DefWindowProc и WindowProc, которые используются для обработки сообщений. Функции объявляются в Вашем коде как это:

Сначала имейте включение:

using System.Runtime.InteropServices;

затем в классе объявляют как это

[DllImport("coredll.dll")]
static extern IntPtr DefWindowProc(IntPtr hWnd, uint uMsg, UIntPtr wParam,
   IntPtr lParam);

Существует другая вещь, которую Вы могли сделать, это - больше "философское" обходное решение. INMO, который умные минимизируют X, сбивает с толку пользователей, именно поэтому мне не нравится включать его. Вместо этого я обеспечиваю кнопку в правильном нижнем угле формы, которая говорит "близко" или "назад", который использует близкий метод формы. Я использовал его во всех формах для хранения стандарта. Это менее неоднозначно для пользователей Windows, потому что они могут предположить, что X в Windows Mobile являются теми же X в окнах для ПК.

Если по некоторым причинам необходимо минимизировать приложение или отправить, оно к фону использует следующий код:

using System.Runtime.InteropServices;
...

public partial class Main : Form
{
   public Main()
    {


        InitializeComponent();
    }

  [DllImport("coredll.dll")]
    static extern int ShowWindow(IntPtr hWnd, int nCmdShow);

  const int SW_MINIMIZED = 6;

  ...
  ...

   public void HideForm()
    {
        ShowWindow(this.Handle, SW_MINIMIZED);
    }
} 
5
ответ дан 7 December 2019 в 14:39
поделиться

Под чем точно Вы подразумеваете умно минимизированный? Я предполагаю, что Вы имеете в виду свое приложение, автоматически минимизируемое ни на каком действии в течение некоторого времени? Ну, я не думаю, что существует событие для этого.

Автор этого пятна блога использует событие Deactivate для того, чтобы включить и выключить внутренний процесс. Это приемлемо для анимации и других подобных процессов, и случаи окна сообщения или другого появления формы не являются никакими проблемами. Если однако, Ваш процесс не должен быть остановлен, если приложение не закрывается или 'умный-minimizes', Вы могли попытаться запуститься, таймер на деактивируют события. Если бы форма не активируется назад для определенного интервала, то было бы безопасно остановить внутренний процесс.

Конечно, в разработке Вашего решения необходимо взять власть управление в соображение. Взгляните на это и конечно также OpenNetCF для уведомлений о питании.

-1
ответ дан 7 December 2019 в 14:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: