NET 框架是Windows 应用领域中一个非常新的技术,可以肯定在未来的一段时间内,
NET 应用必须与现存的Windows 技术交互作用
这种交互作用主要体现在两个领域:COM 和应用编程接口(API)
NET 框架在Windows API 之上提供了一个OO 层,但是有时候可能需要使用一个
NET 不可到达的API 调用
在这种情况下,可以使用
NET 平台调用(P/Invoke)机制从
NET 中调用C 或 C++函数
因为 Windows API 函数在DLL 中,所以,P/Invoke 为从
NET 代码调用DLL 中的C 或 C++函数提供了一种通用机制
本文针对C#
NET 中没有提供直接的类似SystemMenu 的属性或类似GetSystemMenu 的成员函数的实际,编写了一个C#类SystemMenu,从而实现了传统的对于系统菜单的操作,这是通过调用本地Windows API 来完成的
二、系统菜单简介 当你单击窗口图标或右击窗口标题栏时系统菜单即弹出
它包含当前窗口的默认行为
不同窗口的系统菜单看起来有些不同,如一个正常的窗口的系统菜单看起来与一个工具栏子对话框窗口的菜单就不一样
修改系统菜单的好处: ·添加应用程序自己定义的菜单项
·在WW 被最小化时,SS 是一个很好的地方来放置动作,可以被存取,因为SS 可以显示,通过在任务栏窗口图标上单击右键
·使某菜单项失去能力,如从系统菜单中移去“最大化”,“最小化”“关闭”等
由于这种改动还影响到窗口右上角的三个按钮,所以这是一个使窗口右上角“X”失去能力的不错的办法
操纵系统菜单 通过调用 API 函数GetSystemMenu,你就检索到了系统菜单的一个拷贝
该函数的第二个参数指明是否你要复位系统菜单到它的缺省状态
再加上另外几个API 菜单函数如AppendMe