主要参考在MFC中使用SDL的方式
MFC中使用方式如下

gWindow=SDL_CreateWindowFrom( (void *)( GetDlgItem(IDC_STATIC)->GetSafeHwnd() ) )

绑定的是一个子控件的句柄

但FLTK中整个窗口就一个HWND,子控件是没有HWND,现在很多窗口都是这样的,例如腾讯的TIM。
解决方案使用最原始的方法创建一个控件,然后获取该控件的HWND,就跟MFC的方式一样的。

m_window = new Fl_Window(800,600);
m_window->end();
m_window->show(argc, argv);
//在这之后使用fl_xid(m_window)获取主窗口句柄创建子控件
//HINSTANCE没必要获取,用NULL,且32跟64位的获取方式还有点区别HWND tmp_hwnd=CreateWindow (TEXT("STATIC"),"",       WS_CHILD | WS_VISIBLE ,40,110,720,480 ,(HWND)fl_xid(m_window), (HMENU) 0,
#if 0
#ifdef _WIN64(HINSTANCE) GetWindowLongPtr ((HWND)fl_xid(m_window), GWLP_HINSTANCE), NULL) ;
#else       (HINSTANCE) GetWindowLong ((HWND)fl_xid(m_window), GWL_HINSTANCE), NULL) ;
#endif
#else       NULL,NULL) ;
#endif
m_sdlwindow=SDL_CreateWindowFrom((void*)tmp_hwnd);

还有个问题没解决,被其它画面遮挡时画面不会刷新
主要是主循环用的是Fl::run();没用SDL的消息处理。
想了个临时解决方案
不用时SDL_HideWindow(m_sdlwindow);
用的时候SDL_ShowWindow(m_sdlwindow);

fltk+SDL2+ffms2做的播放器如下,总之可以播放,但是还有很多需要完善的地方,有空再完善完善
https://gitee.com/zhujiatc/fltk_sdlplayer

FLTK中使用SDL的一种处理方式相关推荐

  1. oracle if=,oracle中if/else的三种实现方式详解

    1.标准sql规范 1.单个IF IF v=... THEN END IF; 2.IF ... ELSE IF v=... THEN ELSE t....; END IF; 3.多个IF IF v=. ...

  2. pcb 理论阻值、 过孔_超实用!PCB设计中过孔常用的6种处理方式

    原标题:超实用!PCB设计中过孔常用的6种处理方式 小伙伴们我们又见面啦! 上一次的" 神仙过孔 ",还没过瘾吧? <整齐的过孔固然符合审美,但是却...> 今天的小课 ...

  3. java map遍历_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  4. java 调用枚举种方法_Java中枚举类型的一种使用方式

    今天改同事的代码发现同事的代码中有大量的if else语句.很不美观而且可读性太差. 因为需要给前端一个key,value的列表.这个列表写死.然而同事的代码. 放几张图,大家自己感受.我都不知道以后 ...

  5. java中两种遍历集合的方式_Java中Map集合的两种遍历方式

    Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...

  6. Java中List集合的三种遍历方式(全网最详)

    Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...

  7. java foreach hashmap_在 Java 中遍历 HashMap 的5种最佳方式

    在本文中,我们将通过示例讨论在 Java 上遍历  HashMap  的五种最佳方式. 使用  Iterator  遍历 HashMap EntrySet 使用  Iterator  遍历 HashM ...

  8. MyEclipse网站服务器,MyEclipse中web服务器的三种配置方式

    初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通 ...

  9. 1.JavaScript中定义数组的两种主要方式

    JavaScript中定义数组的两种主要方式(new Array()和[]方式) new Array() ①可以用像JAVA的那种写法的方式定义,如 var arr = new Array() 这样定 ...

  10. C/C++中switch用法的一种替换方式

    在C/C++中,switch语句是经常被用到的,当switch内的case语句较多时程序有时显得比较繁乱,此种情况下可以用另外一种实现方式替代switch.详细用法见例子: #include &quo ...

最新文章

  1. 战神笔记本电脑自带access吗_双·12超值价 十代酷睿+GTX1650游戏本只卖4219元_神舟 战神Z7M-CU5NB_笔记本新闻...
  2. 速读训练软件_记忆力训练:如何提高注意力呢?
  3. Netweaver是如何判断哪些对象可以被增强的
  4. 好代码是管出来的——使用GitHub实现简单的CI/CD
  5. 【数据结构基础应用】【顺序表】
  6. JMS 在 SpringBoot 中的使用
  7. centos7开启vnc服务_CentOS 7.2搭建VNC远程桌面服务的方法
  8. [CodePlus 2017 11月赛]晨跑 题解(辗转相除法求GCD)
  9. 在服务器上使用 gradle 打包 android 源码
  10. JDK和JRE安装与下载
  11. 英文简历制作必备词汇表
  12. Python+matplotlib绘制极坐标柱状图(南丁格尔玫瑰图)
  13. 浅谈股价预测模型:你是否掉进机器学习的陷阱
  14. 考研英语 长难句训练day12
  15. 线上问题:java.sql.SQLException: connection holder is null
  16. 成功解决:wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(key=[your_api_key])
  17. 常见拉丁文读法,肯定用得着~
  18. DDR学习心得(一)
  19. ATmega8/16/32/64/128中文参考手册
  20. ArcEngine根据属性分割要素类的实现方法

热门文章

  1. Linux du命令和df命令
  2. VBA实现EXCEL随机本地随机刷题
  3. win10投影到电脑无法成功,一直显示即将投影
  4. 自我学习35:Log日志分析
  5. 小米路由器无线网无法连接到服务器,小米路由器桥接后进不了路由器设置
  6. 计算机网络pop3是什么意思,smtp服务器是什么 pop3服务器是什么?
  7. 计算机查看图片的打开方式,windows10电脑怎么在右键菜单打开方式添加照片查看器...
  8. java微信支付通知接口_java实现微信支付结果通知
  9. Visio绘制架构图(一)
  10. C语言中空字符串长度,C语言中求字符串的长度