FLTK中使用SDL的一种处理方式
主要参考在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的一种处理方式相关推荐
- 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=. ...
- pcb 理论阻值、 过孔_超实用!PCB设计中过孔常用的6种处理方式
原标题:超实用!PCB设计中过孔常用的6种处理方式 小伙伴们我们又见面啦! 上一次的" 神仙过孔 ",还没过瘾吧? <整齐的过孔固然符合审美,但是却...> 今天的小课 ...
- java map遍历_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- java 调用枚举种方法_Java中枚举类型的一种使用方式
今天改同事的代码发现同事的代码中有大量的if else语句.很不美观而且可读性太差. 因为需要给前端一个key,value的列表.这个列表写死.然而同事的代码. 放几张图,大家自己感受.我都不知道以后 ...
- java中两种遍历集合的方式_Java中Map集合的两种遍历方式
Java中的map遍历有多种方法,从最早的Iterator,到java5支持的foreach,再到java8 Lambda,让我们一起来看下Java中Map集合的两种遍历方式! 关于遍历Map集合的几 ...
- Java中List集合的三种遍历方式(全网最详)
Map集合:链接: Map集合的五种遍历方式及Treemap方法 Set集合:链接: Java中遍历Set集合的三种方法 TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法 ...
- java foreach hashmap_在 Java 中遍历 HashMap 的5种最佳方式
在本文中,我们将通过示例讨论在 Java 上遍历 HashMap 的五种最佳方式. 使用 Iterator 遍历 HashMap EntrySet 使用 Iterator 遍历 HashM ...
- MyEclipse网站服务器,MyEclipse中web服务器的三种配置方式
初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通 ...
- 1.JavaScript中定义数组的两种主要方式
JavaScript中定义数组的两种主要方式(new Array()和[]方式) new Array() ①可以用像JAVA的那种写法的方式定义,如 var arr = new Array() 这样定 ...
- C/C++中switch用法的一种替换方式
在C/C++中,switch语句是经常被用到的,当switch内的case语句较多时程序有时显得比较繁乱,此种情况下可以用另外一种实现方式替代switch.详细用法见例子: #include &quo ...
最新文章
- 战神笔记本电脑自带access吗_双·12超值价 十代酷睿+GTX1650游戏本只卖4219元_神舟 战神Z7M-CU5NB_笔记本新闻...
- 速读训练软件_记忆力训练:如何提高注意力呢?
- Netweaver是如何判断哪些对象可以被增强的
- 好代码是管出来的——使用GitHub实现简单的CI/CD
- 【数据结构基础应用】【顺序表】
- JMS 在 SpringBoot 中的使用
- centos7开启vnc服务_CentOS 7.2搭建VNC远程桌面服务的方法
- [CodePlus 2017 11月赛]晨跑 题解(辗转相除法求GCD)
- 在服务器上使用 gradle 打包 android 源码
- JDK和JRE安装与下载
- 英文简历制作必备词汇表
- Python+matplotlib绘制极坐标柱状图(南丁格尔玫瑰图)
- 浅谈股价预测模型:你是否掉进机器学习的陷阱
- 考研英语 长难句训练day12
- 线上问题:java.sql.SQLException: connection holder is null
- 成功解决:wandb.errors.UsageError: api_key not configured (no-tty). call wandb.login(key=[your_api_key])
- 常见拉丁文读法,肯定用得着~
- DDR学习心得(一)
- ATmega8/16/32/64/128中文参考手册
- ArcEngine根据属性分割要素类的实现方法
热门文章
- Linux du命令和df命令
- VBA实现EXCEL随机本地随机刷题
- win10投影到电脑无法成功,一直显示即将投影
- 自我学习35:Log日志分析
- 小米路由器无线网无法连接到服务器,小米路由器桥接后进不了路由器设置
- 计算机网络pop3是什么意思,smtp服务器是什么 pop3服务器是什么?
- 计算机查看图片的打开方式,windows10电脑怎么在右键菜单打开方式添加照片查看器...
- java微信支付通知接口_java实现微信支付结果通知
- Visio绘制架构图(一)
- C语言中空字符串长度,C语言中求字符串的长度