100分!win32+Duilib写视频播放器的,有经验的高手请入。

maya8maya85 2016-06-20 10:18:22
我的问题不难,但请高手们要给出代码,而不是随便写个函数名,写个宏。如果是这样,分是不会给的。
我想要的效果就一个,全屏与退出全屏。请对win32+duilib了解高手们指导。
现在的情况是:

代码如下:以省去不重要的代码
// 将HWND显示到CControlUI上面
class CWndUI: public CControlUI
{
public:
CWndUI(): m_hWnd(NULL){}

virtual void SetVisible(bool bVisible = true)
{
__super::SetVisible(bVisible);
::ShowWindow(m_hWnd, bVisible);
}

virtual void SetInternVisible(bool bVisible = true)
{
__super::SetInternVisible(bVisible);
::ShowWindow(m_hWnd, bVisible);
}

virtual void SetPos(RECT rc,bool bNeedInvalidate = true)
{
__super::SetPos(rc);
::SetWindowPos(m_hWnd, NULL, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_NOZORDER | SWP_NOACTIVATE);
}

BOOL Attach(HWND hWndNew)
{
if (! ::IsWindow(hWndNew))
{
return FALSE;
}

m_hWnd = hWndNew;
return TRUE;
}

HWND Detach()
{
HWND hWnd = m_hWnd;
m_hWnd = NULL;
return hWnd;
}

HWND GetHWND()
{
return m_hWnd;
}

protected:
HWND m_hWnd;
};

class CDuiPlayFrameWnd : public WindowImplBase
{
virtual LPCTSTR GetWindowClassName() const { return _T("DUIMainFrame"); }
virtual CDuiString GetSkinFile() { return _T("PlayWindow.xml"); }
virtual CDuiString GetSkinFolder() { return _T(""); }
virtual CControlUI* CreateControl(LPCTSTR pstrClassName)
{
if (_tcsicmp(pstrClassName, _T("WndPlayPanel")) == 0)//WndPlayPanel播放控件
{
pUI = new CWndUI;
//如果加上WS_POPUP能全屏,但是这个子窗口就会不跟随父窗口了
hWnd = CreateWindow(_T("#32770"), NULL, WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, m_PaintManager.GetPaintWindow(), (HMENU)0, NULL, NULL);
pUI->Attach(hWnd);
return pUI;
}
return NULL;
}
virtual void Notify(TNotifyUI& msg)
{
if (msg.sType == _T("click"))
{
if (msg.pSender->GetName() == _T("BtnFS"))//点击全屏按钮,下面的代码都是不行的
{
///////////////////////////////////////////////////////////////////////////////////////////////////
//LONG Style = GetWindowLong(hWnd, GWL_STYLE);
//Style = WS_CHILD | WS_POPUP;
//SetWindowLong(hWnd, GWL_STYLE, Style);
////////////////////////////////////////////////////////////////////////////////////////////////////
//SetWindowLong(hWnd, GWL_STYLE, WS_VISIBLE | WS_MAXIMIZE);//不成功
//SetWindowLong(hWnd, GWL_STYLE, WS_VISIBLE | WS_POPUP);
//RECT r;
//GetWindowRect(m_hWnd, &r);
//RECT rr;
//GetWindowRect(hWnd, &rr);
////////////////////////////////////////////////////////////////////////////////////////////////////
//SetWindowPos(hWnd, NULL, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), SWP_SHOWWINDOW);
//ShowWindow(hWnd, SW_MAXIMIZE);
//UpdateWindow(hWnd);
//////////////////////////////////////////
}
}
}
public:
CWndUI *pUI;
}

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
CPaintManagerUI::SetInstance(hInstance);
HRESULT Hr = ::CoInitialize(NULL);
if (FAILED(Hr)) return 0;

CDuiPlayFrameWnd PlayWindowFrame;
PlayWindowFrame.Create(NULL, _T("DUISWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
PlayWindowFrame.CenterWindow();
PlayWindowFrame.ShowModal();

::CoUninitialize();
return 0;
}

还有是XML:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<Window size="720,480" sizebox="4,4,4,4" caption="0,0,0,30" mininfo="720,480">
<VerticalLayout enabled="true" width="720" height="480">
<HorizontalLayout enabled="true" height="30" bkimage="file='PlayWindow.png' corner='160,32,0,0'">
<VerticalLayout enabled="true" height="30" />
<VerticalLayout enabled="true" width="568" height="30">
<Button name="BtnFS" float="true" tooltip="全屏" pos="460,5,0,0" width="24" height="22" align="center" fivestatusimage="file='FS.png'" />
</VerticalLayout>
</HorizontalLayout>
</VerticalLayout>
</Window>

...全文
330 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
maya8maya85 2016-06-25
  • 打赏
  • 举报
回复
自己解决了,CSDN的人也是一般般,以为这里会有很多人才
内容概要:本文围绕水陆两栖无人机的任务规划与执行问题,提出了一种基于Matlab实现的智能路径规划解决方案,重点融合粒子群优化算法(PSO)与遗传算法(GA)进行三维环境下的避障路径规划。研究系统性地构建了从复杂地形建模、任务需求析到算法设计与仿真实验的完整流程,实现了在多约束、动态障碍物等复杂环境下无人机的高效任务调度。通过对GA与PSO两种智能优化算法在路径长度、收敛速度、路径平滑度及稳定性等方面的对比析,深入探讨了各自在无人机路径规划中的适用场景与性能差异,验证了所提方法在提升任务执行效率与安全性方面的有效性。该方案不仅适用于水陆交互通用场景,也为多模态无人系统自主导航提供了可扩展的技术框架。; 适合人群:具备一定Matlab编程能力和算法基础,从事无人机路径规划、智能优化算法研究、自动化控制或相关领域科研工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于水陆两栖无人机在复杂自然环境(如江河湖海与陆地交错区域)中的自主巡航与任务执行;②比较遗传算法与粒子群算法在三维动态路径规划中的优化性能,指导实际工程中算法选型;③为多约束条件下无人系统的自主决策与实时避障提供算法支持与仿真验证平台。; 阅读建议:建议读者结合提供的Matlab代码进行动手实践,重点关注两种算法的数学建模过程、适应度函数设计、参数调优策略及路径生成逻辑,通过仿真实验直观对比算法性能差异,深入理解智能优化算法在复杂路径规划问题中的应用机制与优化潜力。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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