我有一个.NET应用程序,目标是在Windows Mobile 5和Windows CE .NET 4.2上运行,并且我试图收集的表单显示方式之间存在一些细微差别。
在WM设备上,表格将在右上角显示“ok”按钮,而在CE上相同的表格将显示“X”。无论如何CE上都显示“OK”?我看到“OK”出现在消息框上,所以看起来我应该能够......
答案 0 :(得分:1)
最简单的方法可能是设置表单窗口样式ControlBox = False
和MinimizeBox = False
,然后在表单的Paint事件处理程序中调用SHDoneButton以及何时激活或显示它。在表单成为前景窗口之前,你真的只需要这样做但我发现你必须在Paint事件处理程序中调用它。因此SHDoneButton(this.handle, SHDB_SHOW)
您需要SHDB_SHOW = 0x0001
:
[DllImport("aygshell.dll")]
public static extern bool SHDoneButton(IntPtr hWnd, UInt32 dwState);
某处也是。
根据链接文档:
通常,“完成”按钮由shell管理,显示或隐藏“确定”按钮会自动发生。需要显示“完成”按钮的顶级窗口应使用WS_EX_CAPTIONOKBTN窗口样式。
要显示“确定”按钮,请确保您的窗口没有WS_CAPTION或WS_CHILD样式。
每当前景窗口发生变化时,shell都会检查窗口的样式位,以确定OK按钮是否应出现在任务栏中。 “确定”按钮优先于添加到任务栏的菜单栏。