有一个极度难解决的问题,请大家留步!

u010225776 2013-04-10 09:05:18
前言:
大家都知道视频渲染对吧,他是一帧帧的yuv变成rgb渲染到屏幕上边的

但现在给你一款没有界面只能往hwnd上面显示rgb的exe,这里比如ffplay.exe


极度难解决的问题:
不知道大家有没有想过,在CreateProcess调用ffplay.exe并指定hwnd,让其渲染到对应的窗口中。然后你再去这个界面上边加入gui,也就是导航和控制按钮又或者进度条按钮,会出现很多问题,比如闪烁、比如只能是一个窗口得到消息,另外一个得不到(使用WS_POPUP样式)的时候


希望得到大家帮助的:
求大家给个思路,或者谈谈怎样做之类外部exe的gui!
...全文
182 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
无言猪 2013-04-10
  • 打赏
  • 举报
回复
int SetWindowRgn(
  HWND hWnd,     // handle to window
  HRGN hRgn,     // handle to region
  BOOL bRedraw   // window redraw option
);
u010225776 2013-04-10
  • 打赏
  • 举报
回复
引用 7 楼 lostying 的回复:
可以设置这个窗口的RGN,让窗口大小与你绘画的区域一样大.
怎么设计啊,我用的是win32的windowsex!求指点!
无言猪 2013-04-10
  • 打赏
  • 举报
回复
可以设置这个窗口的RGN,让窗口大小与你绘画的区域一样大.
u010225776 2013-04-10
  • 打赏
  • 举报
回复
引用 5 楼 lostying 的回复:
如果这个UI控件是你播放窗口的子窗口,设置播放窗口的Clip Children属性为TRUE,如果和播放窗口是兄弟关系,设置Clip Siblings属性为TRUE.


我知道这个,但问题是达不到我想要的只绘制控件的效果,会出来带有窗口的背景:




这个怎么办啊!
无言猪 2013-04-10
  • 打赏
  • 举报
回复
如果这个UI控件是你播放窗口的子窗口,设置播放窗口的Clip Children属性为TRUE,如果和播放窗口是兄弟关系,设置Clip Siblings属性为TRUE.
u010225776 2013-04-10
  • 打赏
  • 举报
回复
引用 2 楼 lostying 的回复:
如果进度条之类的和显示窗口没有交集的话,可以在对话框上随意用一个控件来播放视频,控制按钮放在与播放窗口平行的地方.这个播放窗口是可以随意调整大小的. 比如这个的最上面就是控制按钮,这样比较好做,也好控制.
但我想要把整个ui界面放在渲染界面上啊,有啥办法没?求救啊!
无言猪 2013-04-10
  • 打赏
  • 举报
回复
如果进度条之类的和显示窗口没有交集的话,可以在对话框上随意用一个控件来播放视频,控制按钮放在与播放窗口平行的地方.这个播放窗口是可以随意调整大小的.
比如这个的最上面就是控制按钮,这样比较好做,也好控制.
u010225776 2013-04-10
  • 打赏
  • 举报
回复
就像这哥们做的那样 http://bbs.csdn.net/topics/210024750 但他没说明怎么做的界面 而我想要做成迅雷看看那样的效果!谢谢
无言猪 2013-04-10
  • 打赏
  • 举报
回复
下一个问题是什么
u010225776 2013-04-10
  • 打赏
  • 举报
回复
引用 10 楼 zengraoli 的回复:
引用 9 楼 lostying 的回复:查C/C++ code?12345int SetWindowRgn( HWND hWnd, // handle to window HRGN hRgn, // handle to region BOOL bRedraw // window redraw option); 这个可以处理你想要的情况,注意……
好 这个暂时这样了,帮忙看一下 我的下个问题!
u010225776 2013-04-10
  • 打赏
  • 举报
回复
引用 9 楼 lostying 的回复:
查C/C++ code?12345int SetWindowRgn( HWND hWnd, // handle to window HRGN hRgn, // handle to region BOOL bRedraw // window redraw option);
好 这个暂时这样了,帮忙看一下 我的下个问题!
  • 打赏
  • 举报
回复
引用 9 楼 lostying 的回复:
查C/C++ code?12345int SetWindowRgn( HWND hWnd, // handle to window HRGN hRgn, // handle to region BOOL bRedraw // window redraw option);
这个可以处理你想要的情况,注意一个构成四边形的四个点,是需要闭合起来的

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧