.net – 掌上电脑/ Windows Mobile:如何检测智能最小化
如何检测我的Compact Framework应用程序何时智能最小化(智能最小化是用户单击Pocket PC右上角的“X”按钮时发生的情况)?
Deactivate事件不是正确的方式,因为它发生在最小化以外的情况下,例如在主窗体顶部显示消息框或其他窗体时.窗体的WindowState没有用,因为.NET CF上没有“Minimized”WindowState. 我听说通过设置MinimizeBox = false,我的应用程序将被关闭而不是最小化.但我实际上不希望我的应用程序关闭,我只是想知道它何时被最小化.
我认为这里的方法是处理
WM_ACTIVE消息,然后检查fMinimized参数是否不为零.您可以在
here中找到有关如何在代码中声明此消息的更多信息.
我将尝试弄清楚如何在C#中对此进行精确编码并证明该假设.然而,你可能比我快,并弄明白. 另请检查用于处理消息的功能DefWindowProc和WindowProc.函数在代码中声明如下: 首先要包括: using System.Runtime.InteropServices; 然后在类中声明像这样 [DllImport("coredll.dll")] static extern IntPtr DefWindowProc(IntPtr hWnd,uint uMsg,UIntPtr wParam,IntPtr lParam); 还有一件事你可以做,这更像是一种“哲学”的解决方法. INMO智能最小化X让用户感到困惑,这就是我不喜欢包含它的原因.相反,我在表单的右下角提供了一个按钮,表示“关闭”或“返回”,它使用表单的close方法.我以各种形式使用它来保持标准.这对于Windows用户来说不那么模糊,因为他们可能会认为Windows Mobile中的X与PC的Windows中的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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-phone – Cortana帮助列表需要什么图标?
- windows – 如何在Visual Studio代码上删除最近打
- windows – 在多域林中,当某些(但不是全部)基础架
- Windows 8 – Windows 8上的Octave问题:任何错误
- 将几个本机DLL合并到一个DLL中
- windows-server-2008-r2 – 如何在重命名审核日志
- windows-server-2008 – 病毒是否可以通过RDP连接
- windows-server-2003 – 在AD中委派帐户解锁权限
- windows – 远程运行调用“以管理员身份运行”的
- 是否有相当于Windows的ssh-copy-id?