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. 图文:eclipse中SVN分支合并到主干

    在项目开发中,需要添加一些新的功能,但是又不想影响到其他开发人员的项目进度,所以决定使用SVN分支进行开发,分支开发完毕后再合并到主干.本文介绍如何在eclipse中合并分支到主干. 1. 要想将分支 ...

  2. CSS3 贝塞尔曲线实现

    cubic-bezier 曲线是 css3 动画的一个重要基石.另一个为 steps (ease 等都是 cubic-bezier 的特殊形式),css3 中的 cubic_bezier 曲线限制了首 ...

  3. 使用MyBatis对数据库中表实现CRUD操作(二)

    一.使用MyBatis对表实现CRUD操作 1.定义sql映射 userMapper.xml <?xml version="1.0" encoding="UTF-8 ...

  4. CSS -- 练习(待续优化)

    啊啊啊  错误百出啊 错点总结: 字符全角半角.清楚浮动.结尾</div>有点乱找不到对应的了.注释要写好. <!DOCTYPE html> <html lang=&qu ...

  5. JavaScript高级程序设计---学习笔记(一)

    今天,2017.3.17开始利用课余时间仔细学习<JavaScript高级程序设计>,将需要掌握的知识点记录下来,争取把书里的所有代码敲一遍并掌握. 1.标识符命名最好是第一个字母小写,剩 ...

  6. php写留言板

    简单的PHP留言板制作 做基础的留言板功能  需要三张表: 员工表,留言表,好友表 首先造一个登入页面: <form action="drcl.php" method=&qu ...

  7. Eclipese Mars安装SVN的全步骤

    在做毕业设计的过程中,由于是团队项目,需要用到SVN,而全新的Eclipse Mars从官网下载下来没有SVN插件,需要自己下载. 1.选择Help-->Eclipese MarketPlace ...

  8. 使用Atom打造无懈可击的Markdown编辑器

    一直以来都奢想拥有一款全能好用的Markdown编辑器,直到遇到了Atom.废话不多说,直接开搞! 1. 安装Atom 下载安装Atom:https://atom.io/ 2. 增强预览(markdo ...

  9. 程序猿 tensorflow 入门开发及人工智能实战

    tensorflow 中文文档: http://www.tensorfly.cn http://wiki.jikexueyuan.com/project/tensorflow-zh/ tensorfl ...

  10. 整合初步______SH

    什么是框架 在的J2EE开发中,经常会提到"框架"这个词汇,例如Spring,Struts,Webx等等都称之为J2EE开发框架.那么,什么是框架呢? 框架的英文为Framewor ...