我正在为 Windows Mobile 设备上的视频捕获创建应用程序。在 MainFrame 中,有一个菜单和状态窗口(自定义窗口)。视频大小宽高比为4:3,因此在这种情况下,屏幕上还有一些其他元素,视频不会填满整个区域。
这是排列屏幕元素的函数:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
ToggleFullScreen(TRUE);
CScreenOrientation::SetScreenOrientation(270);
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
RECT r;
GetWindowRect(&r);
if (!m_wndStatus.Create(NULL, NULL, WS_CHILD | WS_VISIBLE,
CRect(0, 0, r.right, TOOLBAR_HEIGHT), this, AFX_IDW_PANE_FIRST + 1, NULL))
{
TRACE0("Failed to create status view\n");
return -1;
}
// Create a camera view
if (!m_wndCameraView.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL))
{
TRACE0("Failed to create camera view\n");
return -1;
}
m_wndCameraView.SetLogDirectory(m_Settings.m_LogDirectory);
if (!m_wndCommandBar.Create(this) ||
!m_wndCommandBar.AddAdornments(dwAdornmentFlags) ||
!m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME))
{
TRACE0("Failed to create CommandBar\n");
return -1; // fail to create
}
m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() | CBRS_SIZE_FIXED);
m_QueueProgressData.SetHandle(this);
// Update GUI state
UpdateGUIState();
//VideoPreviewShow();
// TODO: check error
m_SleepModeTimerID = SetTimer(1, (UINT)1000, (TIMERPROC)CMainFrame::SleepModeTimer);
PostMessage(WM_CHECK_UPGRADE, 0, 0);
return 0;
}
有谁知道是否有办法用视频预览填充空白区域(状态窗口和菜单栏未填充的区域)而不改变宽度:高度比(用状态栏和菜单覆盖视频预览的一部分)也许用更改窗口样式标志或任何其他方法?