ここに行く方法は、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 MobileのXがPCのWindowsのXと同じであると想定する可能性があるため、Windowsユーザーにとってはそれほど曖昧ではありません。
何らかの理由でアプリを最小化するか、バックグラウンドに送信する必要がある場合は、次のコードを使用してください。
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);
}
}