SetCooperativeLevel函数介绍(设置协作等级)

函数声明

function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall;

参数介绍

hWnd       DirectDraw具体指向的窗体,在所有的情况下,只需使用主窗体句柄。

dwFlags

控制标志参数,直接影响DirectDraw和Windows协同工作的方式。下面为说明:

DDSCL_ALLOWMODEX

允许使用Mode X显示模式。只有当DDSCL_EXCLUSIVE 和DDSCL_FULLSCREEN标志存在的时候才能使用 。

DDSCL_ALLOWREBOOT

当处于独占(全屏)模式时,允许Ctrl+Alt+Del被检测到。

DDSCL_EXCLUSIVE

请求独占级别,该标志必须和DDSCL_FULLSCREEN 一起使用。

DDSCL_FULLSCREEN

表示需要全屏模式。其他程序中的GDI将不允许在屏幕上画图。这个标志必须和DDSCL_EXCLUSIVE 一起使用。

DDSCL_NORMAL

表示应用程序将是一个标准的Windows应用程序。该标志不能和DDSCL_ALLOWMODEX ,DDSCL_EXCLUSIVE ,DDSCL_FULLSCREEN 一起使用。

DDSCL_NOWINDOWCHANGES

表示在激活状态下,不允许DirectDraw最小化或恢复窗体。

返回值

如果执行成功,返回DD_OK,否则返回错误代码。

SetCooperativeLevel是DirectInput API中的一个方法,用于设置输入设备与应用程序的协作级别。在.NET控制台应用程序中,可以通过以下步骤使用该方法: 1. 引入DirectInput命名空间:using Microsoft.DirectX.DirectInput; 2. 创建DirectInput对象:DirectInput dinput = new DirectInput(); 3. 获取输入设备:Device device = new Device(dinput, deviceGuid); 其中deviceGuid是输入设备的GUID,可以通过DirectInput.GetDevices方法获取。 4. 设置协作级别:device.SetCooperativeLevel(windowHandle, CooperativeLevel); 其中windowHandle是应用程序窗口句柄,可以通过Process.GetCurrentProcess().MainWindowHandle获取;CooperativeLevel协作级别,可以是以下值之一: - Exclusive:独占模式,应用程序对输入设备的控制权最高,其他应用程序无法访问输入设备。 - NonExclusive:非独占模式,应用程序与其他应用程序共享输入设备,但应用程序优先级最高。 - Foreground:前台模式,应用程序与其他前台应用程序共享输入设备,但后台应用程序无法访问输入设备。 - Background:后台模式,应用程序与其他后台应用程序共享输入设备,但前台应用程序优先级最高。 5. 设置数据格式:device.SetDataFormat(DeviceDataFormat.Keyboard); 其中DeviceDataFormat.Keyboard表示输入设备为键盘。 6. 开始接收输入数据:device.Acquire(); 以上就是在.NET控制台应用程序中使用SetCooperativeLevel方法的基本步骤。需要注意的是,该方法只对DirectInput输入设备有效,对于其他类型的输入设备,应该使用相应的API进行控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值