// DispWnd.cpp : implementation file // #include "stdafx.h" #include "DispWnd.h" #include "OverlaySurface.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #define OSD_SIZE_THRESHHOLD 320 ///////////////////////////////////////////////////////////////////////////// // CDispWnd CDispWnd* g_pDispWnd = NULL; CDispWnd::CDispWnd() { ZeroMemory(m_strChannelInfo, MAX_PATH); } CDispWnd::~CDispWnd() { } BEGIN_MESSAGE_MAP(CDispWnd, CWnd) //{{AFX_MSG_MAP(CDispWnd) ON_WM_LBUTTONDOWN() ON_WM_PAINT() ON_WM_MOVE() ON_WM_SIZE() ON_WM_CREATE() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDispWnd message handlers int CDispWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here return 0; } void CDispWnd::AdjustWindowSize(RECT* pRect) { const DWORD windows_style = WS_POPUP | WS_CAPTION | WS_THICKFRAME; const DWORD windows_style_ex = WS_EX_TOOLWINDOW; AdjustWindowRectEx(pRect, windows_style,FALSE,windows_style_ex); } void CDispWnd::UpdateVSuface() { RECT rc; GetClientRect(&rc); ClientToScreen(&rc); int cx = GetSystemMetrics(SM_CXSCREEN); int cy = GetSystemMetrics(SM_CYSCREEN); if(rc.top < 0) rc.top = 0; if(rc.bottom > cy ) rc.bottom = cy; if(rc.left < 0) rc.left = 0; if(rc.right > cx) rc.right = cx; //ClientToScreen(&rc); if(g_poverlaySurface) { g_poverlaySurface->SetDstRect(rc); g_poverlaySurface->UpdateOverlay(); } } void CDispWnd::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default SendMessage(WM_SYSCOMMAND, SC_MOVE | 0x0002); RECT rc; GetClientRect(&rc); GetWindowRect(&rc); CWnd::OnLButtonDown(nFlags, point); } void CDispWnd::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here RECT rc; GetClientRect(&rc); CBrush brush(RGB(16,0,16)); dc.FillRect(&rc,&brush); /*CBrush Brush; Brush.CreateSolidBrush(RGB(16,0,16)); CBrush* pOldBrush = dc.SelectObject(&Brush); dc.Rectangle(&rc); if(g_poverlaySurface) { CBrush BackBrush; BackBrush.CreateSolidBrush(RGB(16, 0, 16)); pOldBrush = dc.SelectObject(&BackBrush); rc.bottom = rc.top + 2; //rc.bottom = rc.top + 3; dc.Rectangle(&rc); ClientToScreen(&rc); g_poverlaySurface->UpdateOverlay(); }*/ if( ((rc.right - rc.left) > OSD_SIZE_THRESHHOLD) && ((rc.bottom - rc.top) > OSD_SIZE_THRESHHOLD) ) { ShowChannelInfo(dc.GetSafeHdc()); } // Do not call CWnd::OnPaint() for painting messages } void CDispWnd::OnMove(int x, int y) { CWnd::OnMove(x, y); //{{ by dugom RECT rc; GetClientRect(&rc); CDC *pDC; pDC = GetDC(); CBrush Brush; Brush.CreateSolidBrush(RGB(16,0,16)); CBrush* pOldBrush = pDC->SelectObject(&Brush); pDC->Rectangle(&rc); if( ((rc.right - rc.left) > OSD_SIZE_THRESHHOLD) && ((rc.bottom - rc.top) > OSD_SIZE_THRESHHOLD) ) { ShowChannelInfo(pDC->GetSafeHdc()); } //ShowChannelInfo(pDC->GetSafeHdc()); //}} // TODO: Add your message handler code here UpdateVSuface(); } void CDispWnd::OnSize(UINT nType, int cx, int cy) { //if(cx < 320) cx = 320; //if(cy < 320) cy = 320; //CWnd::OnSize(nType, cx, cy); // óÀ½¿¡ Overlay È­¸é ³ª¿À´Â ¼Óµµ Çâ»ó //{{ by dugom RECT rc; GetClientRect(&rc); CDC *pDC; pDC = GetDC(); CBrush Brush; Brush.CreateSolidBrush(RGB(16,0,16)); CBrush* pOldBrush = pDC->SelectObject(&Brush); pDC->Rectangle(&rc); if( ((rc.right - rc.left) > OSD_SIZE_THRESHHOLD) && ((rc.bottom - rc.top) > OSD_SIZE_THRESHHOLD) ) { ShowChannelInfo(pDC->GetSafeHdc()); } //}} /*RECT rc; GetClientRect(&rc); CBrush brush(RGB(16,0,16)); dc.FillRect(&rc,&brush);*/ // TODO: Add your message handler code here UpdateVSuface(); } #define WF_COLOR RGB(0, 255, 0) #define GRID_COLOR RGB(0, 120, 0) #define TEXT_COLOR RGB(255,255,0) void CDispWnd::ShowChannelInfo(HDC hdc) { //return; HFONT hFont = NULL; HFONT OldFont = NULL; SetBkMode(hdc, TRANSPARENT); ULONG uIdx = 0; ::DeleteObject(hFont); //::DeleteObject(OldPen); } /*void CDispWnd::GetCurrentOverlayChannelInfo() { if(gMP4Settings.OvrSplitInfo.scSplitConf.uNumRects == 1) { } if(gMP4Settings.OvrSplitInfo.scSplitConf.uNumRects == 4) { } if(gMP4Settings.OvrSplitInfo.scSplitConf.uNumRects == 16) { } }*/