1. 函数原型解析

函数声明

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

设置指定的IDirectFB对象与其它IDirectFB对象的协作级别

参数介绍

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

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

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

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

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

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

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

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

返回值

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

2. 实例

static void* sample_func(IDirectFB *dfb)

{

    ...

    //dfb->SetCooperativeLevel(dfb, DFSCL_FULLSCREEN);

    dfb->SetCooperativeLevel(dfb, DFSCL_NORMAL);

    ...

3. 注意事项

SetCooperativeLevel()设置指定的IDirectFB对象与其它IDirectFB对象的协作级别。

DFSCL_FULLSCREEN和DFSCL_EXCLUSIVE的处理方式是一样的,与DFSCL_NORMAL的差别是它们有自己独立的Context,也就是说设置为DFSCL_FULLSCREEN的DirectFB对象自成一个体系,不会与其它DirectFB对象干扰。在多进程情况下,一般是设置为DFSCL_NORMAL的,它保证所有窗口由同一个窗口器管理。

(题外话,这个函数里调用了drop_window函数,drop_window的实现是有点问题的,它始终调用dfb_windowstack_cursor_enable去打开光标,这是不对的,应该根据据情况而定,在IDirectFB_Destruct里调用时就不应该打开光标,因为这可能会造成程序不正常退出。)

DFB系列 之 SetCooperativeLevel协作级别的更多相关文章

  1. SharePoint自动化系列——Site/Web/List级别的导航菜单

    转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ 需求:在不同的测试用例中,对脚本中不确定的因素需要和用户交互来确定,比如选择哪个site,选择哪个 ...

  2. DFB系列 之 Clear清空surface缓存

    1. 函数原型解析 函数声明: DFBResult Clear (     IDirectFBSurface    *  thiz,      u8     r,      u8     g,     ...

  3. DFB系列 之 Flip()更新buffe

    1. 函数原型解析 函数声明: DFBResult Flip (     IDirectFBSurface    *  thiz,      const DFBRegion    *  region, ...

  4. DFB系列 之 Bilp叠加

    1. 函数原型解析 函数声明: DFBResult Blit (     IDirectFBSurface    *  thiz,      IDirectFBSurface    *  source ...

  5. MySQL 不同隔离级别,都使用了什么锁?

    大家好,我是树哥. 在上篇文章,我们聊了「MySQL 啥时候会用表锁,啥时候用行锁」这个问题.在文章中,我们还留了一个问题,即:如果查询或更新时的数据特别多,是否从行锁会升级为表锁?此外,还有朋友留言 ...

  6. 最简单的视音频播放演示样例8:DirectSound播放PCM

    ===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频 ...

  7. WIN32下使用DirectSound接口的简单音频播放器(支持wav和mp3)

    刚好最近接触了一些DirectSound,就写了一个小程序练练手,可以用来添加播放基本的wav和mp3音频文件的播放器.界面只是简单的GDI,dxsdk只使用了DirectSound8相关的接口. D ...

  8. DirectSound播放PCM(可播放实时采集的音频数据)

    前言 该篇整理的原始来源为http://blog.csdn.net/leixiaohua1020/article/details/40540147.非常感谢该博主的无私奉献,写了不少关于不同多媒体库的 ...

  9. 最简单的视音频播放示例8:DirectSound播放PCM

    本文记录DirectSound播放音频的技术.DirectSound是Windows下最常见的音频播放技术.目前大部分的音频播放应用都是通过DirectSound来播放的.本文记录一个使用Direct ...

随机推荐

  1. Python实现的异步代理爬虫及代理池

    使用python asyncio实现了一个异步代理池,根据规则爬取代理网站上的免费代理,在验证其有效后存入redis中,定期扩展代理的数量并检验池中代理的有效性,移除失效的代理.同时用aiohttp实 ...

  2. JavaWeb之Filter、Listener

    昨天和大家介绍了一下JSON的用法,其实JSON中主要是用来和数据库交互数据的.今天给大家讲解的是Filter和Listener的用法. 一.Listenner监听器 1.1.定义 Javaweb中的 ...

  3. idea调试SpringMvc, 出现:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误的解决办法

    有时,使用idea开发SpringMvc发现调试时出现以下错误: 12-Mar-2017 12:08:02.345 严重 [RMI TCP Connection(2)-127.0.0.1] org.a ...

  4. Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager)

    Alamofire源码解读系列(七)之网络监控(NetworkReachabilityManager) 本篇主要讲解iOS开发中的网络监控 前言 在开发中,有时候我们需要获取这些信息: 手机是否联网 ...

  5. Android开发之自定义视图

    继承View 1.重写onMeasure(int wMeasureSpec,int hMeasureSpec)处理程序,这样可以标明视图尺寸 2.重写onDraw,以便绘制我们自己的自定义视图内 3. ...

  6. Linux shell-grep

    grep --help备忘录 Usage: grep [OPTION]... PATTERN [FILE]...Search for PATTERN in each FILE or standard ...

  7. 【react-router】从Link组件和a标签的区别说起,react-router如何实现导航并优化DOM性能?

    (注:参考自官方英文文档V3.X版本) react-router是伴随着react框架出现的路由系统,它也是公认的一种优秀的路由解决方案.在使用react-router时候,我们常常会使用其自带的路径 ...

  8. Linux下安装Java(JDK8)

    一.文件准备 1.1 文件名称 jdk-8u121-linux-x64.tar.gz 1.2 下载地址 http://www.oracle.com/technetwork/java/javase/do ...

  9. PBXCp Error

    在项目开发中遇到了报PBXcp Error错误 然后我用快捷键清理了下项目中的缓存,直接错误警告消除 多次清理缓存,我编译时用的Xcode 8.1 问题是资源文件中的nib文件找不到,有时能找到 ,有 ...

  10. Tcl与Design Compiler (十一)——其他的时序约束选项(二)

    本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/  ,作者:IC_learner 前面介绍的设计都不算很复杂,都是使用时钟的默认行为 ...