void CTranVideoTitleBar::ZeroSize()
{
	CRect _Rect(0,0,0,0);
	m_StaticDevName.MoveWindow(_Rect);
	m_StaticDevName.ShowWindow(SW_HIDE);
    m_btnOFF.MoveWindow(0, 0, 0, 0);
    m_btnOFF.ShowWindow(SW_HIDE);
    m_btnInf.MoveWindow(0, 0, 0, 0);
    m_btnInf.ShowWindow(SW_HIDE);
	m_btnTVWallHandling.MoveWindow(0,0,0,0);
	m_btnTVWallHandling.ShowWindow(SW_HIDE);
	m_btnTVWallOK.MoveWindow(0,0,0,0);
	m_btnTVWallOK.ShowWindow(SW_HIDE);
	m_btnTVWallVideoBroken.MoveWindow(0,0,0,0);
	m_btnTVWallVideoBroken.ShowWindow(SW_HIDE);
	m_btnTurnCruiseStatus.MoveWindow(0,0,0,0);
	m_btnTurnCruiseStatus.ShowWindow(SW_HIDE);
	m_btnSingleFrameStatus.MoveWindow(0,0,0,0);
	m_btnSingleFrameStatus.ShowWindow(SW_HIDE);
	m_btnAlarmStatus.MoveWindow(0,0,0,0);
	m_btnAlarmStatus.ShowWindow(SW_HIDE);
	m_btnRecordStatus.MoveWindow(0,0,0,0);
	m_btnRecordStatus.ShowWindow(SW_HIDE);
	m_btnCruiseTrackStatus.MoveWindow(0,0,0,0);
	m_btnCruiseTrackStatus.ShowWindow(SW_HIDE);
	m_btnWaterMakr.MoveWindow(0,0,0,0);
	m_btnWaterMakr.ShowWindow(SW_HIDE);
    m_btnTvWallReconnect.MoveWindow(0,0,0,0);
    m_btnTvWallReconnect.ShowWindow(SW_HIDE);
}
Ejemplo n.º 2
0
HRESULT STDMETHODCALLTYPE CTextView::CreateWnd(HWND hWndParent)
{
	CWnd *pWnd = (CWnd*)this;
	CWnd *wndParent = CWnd::FromHandle(hWndParent);
	CRect _Rect(0,0, 100, 100);

	if (pWnd->Create(NULL,
					("MFC CEditView "),
					WS_HSCROLL|WS_VSCROLL|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_VISIBLE|ES_MULTILINE|ES_AUTOHSCROLL,
					_Rect, wndParent, 0))
	{
		m_pEdit = &GetEditCtrl();
		return S_OK;
	}

	return S_FALSE;
}
Ejemplo n.º 3
0
bool
ESChildAvatar::SetAvatarImage(Image* pImage, bool bRedraw){
	if( !pImage || pImage->IsNull() )
		return false;

	if( !m_pImageAvatarBg || m_pImageAvatarBg->IsNull() )
		return false;

	_Size	szAvatar(m_pImageAvatarBg->GetWidth(), m_pImageAvatarBg->GetHeight());
	Image bmAvatar;
	if( !bmAvatar.CreateDIBBitmap(32, RGB(0, 0, 0), szAvatar.cx, szAvatar.cy) )
		return false;

	ImageDef hDest = bmAvatar;
	if( !pImage->ScaleBitmap_Bilinier(szAvatar.cx, szAvatar.cy, _Rect(0, 0, szAvatar.cx, szAvatar.cy), hDest, (pImage->GetBPP() == 32), 255) ){
		bmAvatar.Destroy();
		return false;
		}

	Image imgBg;
	imgBg.Attach(bmAvatar.Detach());
	Image* pImgAvatar = Image::CombineImages(&imgBg, m_pImageAvatarBg, true);
	if( !pImgAvatar ){
		imgBg.Destroy();
		return false;
		}

	m_imageAvatar.Destroy();
	m_imageAvatar.Attach(pImgAvatar->Detach());
	m_pImageAvatar = &m_imageAvatar;
	imgBg.Destroy();
	delete pImgAvatar;

	if( bRedraw )
		Redraw();
	return true;

	}
Ejemplo n.º 4
0
bool
ESEnumerableModifyWnd::CreateChildControls(){
	_Rect rcClient;
	GetClientRectMy(rcClient);

	m_info.m_bgFillMode.SetCurrentValue(_FillMode::FillMode_Color);
	m_info.m_crFill	= RGB(255, 255, 255);

	_Rect rcList;
	rcList.left		= rcClient.left;
	rcList.top		= rcClient.top;
	rcList.right	= rcClient.right;
	rcList.bottom	= rcClient.bottom - 50;

	ESChildControlList *pList = new ESChildControlList();
	if( !AddChildControl(pList, 1000, rcList, NULL) ){
		delete pList;
		}
	else{
		m_pList = pList;
		pList->AddEventListener	(this, ChildControlEventCode::EventCode_ListRowChange, (ControlEventListener)&ESEnumerableModifyWnd::OnListRowChange);
		pList->SetBorder		(FALSE);
		pList->AllowColumnSort	(false);
		pList->SetFixedPosition	(_Rect(0, 0, 0, 50));
		}
	// }}

	_Size szButton(100, 34);

	_Rect rcAddImageButton;
	rcAddImageButton.left	= 5;
	rcAddImageButton.top	= rcList.bottom + 5;
	rcAddImageButton.right	= rcAddImageButton.left + szButton.cx;
	rcAddImageButton.bottom = rcAddImageButton.top + szButton.cy;

	ESChildControlImageButton *pAddButton = new ESChildControlImageButton();
	if( !AddChildControl(pAddButton, 1001, rcAddImageButton, NULL) ){
		delete pAddButton;
		}
	else{
		m_pAddButton = pAddButton;
		pAddButton->AddEventListener	(this, ChildControlEventCode::EventCode_ImageButtonClick, (ControlEventListener)&ESEnumerableModifyWnd::OnAdd);
		pAddButton->SetFixedPosition	(_Rect(rcAddImageButton.left, -1, -1, (rcClient.bottom - rcAddImageButton.bottom)));
		pAddButton->SetText				(_T("Add"));
		}

	_Rect rcDeleteImageButton;
	rcDeleteImageButton.left	= rcAddImageButton.right + 5;
	rcDeleteImageButton.top		= rcList.bottom + 5;
	rcDeleteImageButton.right	= rcDeleteImageButton.left + szButton.cx;
	rcDeleteImageButton.bottom	= rcDeleteImageButton.top + szButton.cy;

	ESChildControlImageButton *pDelButton = new ESChildControlImageButton();
	if( !AddChildControl(pDelButton, 1002, rcDeleteImageButton, NULL) ){
		delete pDelButton;
		}
	else{
		m_pDeleteButton = pDelButton;
		pDelButton->AddEventListener	(this, ChildControlEventCode::EventCode_ImageButtonClick, (ControlEventListener)&ESEnumerableModifyWnd::OnDelete);
		pDelButton->SetFixedPosition	(_Rect(rcDeleteImageButton.left, -1, -1, (rcClient.bottom - rcDeleteImageButton.bottom)));
		pDelButton->DisableButton		(false);
		pDelButton->SetText				(_T("Delete"));
		}

	_Rect rcMoveUpImageButton;
	rcMoveUpImageButton.left	= rcDeleteImageButton.right + 5;
	rcMoveUpImageButton.top		= rcList.bottom + 5;
	rcMoveUpImageButton.right	= rcMoveUpImageButton.left + szButton.cx;
	rcMoveUpImageButton.bottom	= rcMoveUpImageButton.top + szButton.cy;

	ESChildControlImageButton *pMoveUpButton = new ESChildControlImageButton();
	if( !AddChildControl(pMoveUpButton, 1003, rcMoveUpImageButton, NULL) ){
		delete pMoveUpButton;
		}
	else{
		m_pMoveUpButton	= pMoveUpButton;
		pMoveUpButton->AddEventListener	(this, ChildControlEventCode::EventCode_ImageButtonClick, (ControlEventListener)&ESEnumerableModifyWnd::OnMoveUp);
		pMoveUpButton->SetFixedPosition	(_Rect(rcMoveUpImageButton.left, -1, -1, (rcClient.bottom - rcMoveUpImageButton.bottom)));
		pMoveUpButton->DisableButton	(false);
		pMoveUpButton->SetText			(_T("Move Up"));
		}

	_Rect rcMoveDownImageButton;
	rcMoveDownImageButton.left		= rcMoveUpImageButton.right + 5;
	rcMoveDownImageButton.top		= rcList.bottom + 5;
	rcMoveDownImageButton.right		= rcMoveDownImageButton.left + szButton.cx;
	rcMoveDownImageButton.bottom	= rcMoveDownImageButton.top + szButton.cy;

	ESChildControlImageButton *pMoveDownButton = new ESChildControlImageButton();
	if( !AddChildControl(pMoveDownButton, 1004, rcMoveDownImageButton, NULL) ){
		delete pMoveDownButton;
		}
	else{
		m_pMoveDownButton			= pMoveDownButton;
		pMoveDownButton->AddEventListener	(this, ChildControlEventCode::EventCode_ImageButtonClick, (ControlEventListener)&ESEnumerableModifyWnd::OnMoveDown);
		pMoveDownButton->SetFixedPosition	(_Rect(rcMoveDownImageButton.left, -1, -1, (rcClient.bottom - rcMoveDownImageButton.bottom)));
		pMoveDownButton->SetText			(_T("Move Down"));
		pMoveDownButton->DisableButton		(false);
		}
	return true;
	}
Ejemplo n.º 5
0
void
ESChildAvatar::OnPaintClient(_DC *pDC, _Rect* pRectDC, _Rect* pRectClient){
	_Rect rcClient				= GetClientRect();
	_Rect rcControlDC;
	rcControlDC.left			= (rcClient.left - pRectClient->left) + pRectDC->left;
	rcControlDC.top				= (rcClient.top - pRectClient->top) + pRectDC->top;
	rcControlDC.right			= rcControlDC.left + rcClient.Width();
	rcControlDC.bottom			= rcControlDC.top + rcClient.Height();

	// Draw avatar image.
	if( m_pImageAvatar && !m_pImageAvatar->IsNull() )
		m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_StretchImage, RGB(0, 0, 0), m_pImageAvatar, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier);

	// Draw border.
	if( m_pImageAvatarBorder && !m_pImageAvatarBorder->IsNull() )
		m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_StretchImage, RGB(0, 0, 0), m_pImageAvatarBorder, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier);

	ESChildControl::OnPaintClient(pDC, pRectDC, pRectClient);
	}
Ejemplo n.º 6
0
void
ESChildSeatStatus::OnPaintClient(_DC *pDC, _Rect* pRectDC, _Rect* pRectClient){
	_Rect rcClient		= GetClientRect();
	_Rect rcControlDC	= ClientRectToDCRect(pRectDC, pRectClient, &rcClient);
	
	_Rect rcInvalid							= *pRectDC&rcControlDC;
	_Size szClient(rcClient.Width(), rcClient.Height());

	Image* pImageStatus						= m_pBgImage;
	Image* pImageStatusActive				= m_pBgActiveImage;
	Image* pImageStatusCurrent				= m_bActive ? pImageStatusActive : pImageStatus;

	ESChildControlTable*	pTable			= (ESChildControlTable*)GetParent();
	bool					bAllowCaching	= m_pOwner->IsDesignerMode() ? false : true;

	if( bAllowCaching ){
		HBITMAP hImageCached = pTable->GetCachedSeatStatusImage(m_bActive);
		BITMAP	bmInfo;
		memset(&bmInfo, 0, sizeof(BITMAP));
		if( hImageCached )
			GetObject(hImageCached, sizeof(BITMAP), &bmInfo);

		if( bmInfo.bmWidth != szClient.cx || bmInfo.bmHeight != szClient.cy ){
			// Update cached image.
			pTable->FreeCachedSeatStatusImage(m_bActive);
			hImageCached = NULL;
			if( pImageStatusCurrent->ScaleBitmap(ScaleMode::ScaleMode_Bilinier, szClient.cx, szClient.cy, _Rect(0, 0, szClient.cx, szClient.cy), hImageCached, (pImageStatusCurrent->GetBPP() == 32)) )
				pTable->UpdateCachedSeatStatusImage(m_bActive, hImageCached);
			}

		if( hImageCached ){
			// Use cached image.
			Image imgTemp;
			imgTemp.Attach(hImageCached);
			m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_CentredImage, RGB(0, 0, 0), &imgTemp, _Rect(0, 0, 0, 0), false, (int)ScaleMode::ScaleMode_Bilinier);
			imgTemp.Detach();
			}
		else{
			if( pImageStatusCurrent && !pImageStatusCurrent->IsNull() )
				m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_StretchImage, RGB(0, 0, 0), pImageStatusCurrent, m_rcOmitBorder, false, ScaleMode::ScaleMode_Bilinier);
			}
		}
	else{
		if( pImageStatusCurrent && !pImageStatusCurrent->IsNull() )
			m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcClient, FillMode::FillMode_StretchImage, RGB(0, 0, 0), pImageStatusCurrent, m_rcOmitBorder, false, ScaleMode::ScaleMode_Bilinier);
		}

	ESChildControl::OnPaintClient(pDC, pRectDC, pRectClient);
	}
Ejemplo n.º 7
0
void
ESChildSlider::OnPaintClient(_DC *pDC, _Rect* pRectDC, _Rect* pRectClient){
	_Rect		rcControlDC, rcInvalid;
	rcControlDC.left	= (m_rRect.left - pRectClient->left) + pRectDC->left; 
	rcControlDC.top		= (m_rRect.top - pRectClient->top) + pRectDC->top; 
	rcControlDC.right	= rcControlDC.left + m_rRect.Width(); 
	rcControlDC.bottom	= rcControlDC.top + m_rRect.Height();

	float fZoomCX = 1.0f, fZoomCY = 1.0f;
	if( m_pOwner )
		m_pOwner->GetZoom(fZoomCX, fZoomCY);

	_Rect		rcControl = GetClientRect();
	CalRects();

	// Draw minus sign. {{
	if( m_bMouseCaptured && m_rcMinus.PtInRect(m_ptMouseDown) && !m_imageMinusButtonPushed.IsNull() )
		m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcMinus, FillMode::FillMode_StretchImage, RGB(0, 0, 0), &m_imageMinusButtonPushed, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier);
	else
		m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcMinus, FillMode::FillMode_StretchImage, RGB(0, 0, 0), &m_imageMinusButtonNormal, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier);
	// }}
	// Draw plus sign. {{
	if( m_bMouseCaptured && m_rcPlus.PtInRect(m_ptMouseDown) && !m_imagePlusButtonPushed.IsNull() )
		m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcPlus, FillMode::FillMode_StretchImage, RGB(0, 0, 0), &m_imagePlusButtonPushed, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier);
	else
		m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcPlus, FillMode::FillMode_StretchImage, RGB(0, 0, 0), &m_imagePlusButtonNormal, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier);
	// }}

	// Draw slider. {{
	if( m_imageSliderBarNotFilled.IsNull() ){
		_Size szBarFilled	(m_imageSliderBarFilled.GetWidth()*fZoomCX, m_imageSliderBarFilled.GetHeight()*fZoomCY);
		if( fZoomCX == 1.0f && fZoomCY == 1.0f )
			m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled, m_rcOmitBarFilled);
		else{
			if( !m_imageSliderBarFilled_Scale.IsNull() && m_imageSliderBarFilled_Scale.GetWidth() == szBarFilled.cx && m_imageSliderBarFilled_Scale.GetHeight() == szBarFilled.cy ){
				m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled_Scale, m_rcOmitBarFilled_Scale);
				}
			else{
				ImageDef hDestScaled = NULL;
				if( m_imageSliderBarFilled.ScaleBitmap(ScaleMode::ScaleMode_Bilinier, szBarFilled.cx, szBarFilled.cy, _Rect(0, 0, szBarFilled.cx, szBarFilled.cy), hDestScaled, true) ){
					m_imageSliderBarFilled_Scale.Destroy();
					m_imageSliderBarFilled_Scale.Attach(hDestScaled);
					m_rcOmitBarFilled_Scale = _Rect(m_rcOmitBarFilled.left*fZoomCX, m_rcOmitBarFilled.top*fZoomCY, m_rcOmitBarFilled.right*fZoomCX, m_rcOmitBarFilled.bottom*fZoomCY);

					m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled_Scale, m_rcOmitBarFilled_Scale);
					}
				}
			}
		}
	else{
		_Rect rcBarFilled, rcBarEmpty, rcBarFilledDC;
		if( m_bVerticalMode ){
			rcBarEmpty.left		= m_rcBar.left;
			rcBarEmpty.top		= m_rcBar.top;
			rcBarEmpty.right	= m_rcBar.right;
			rcBarEmpty.bottom	= m_rcCursor.bottom;

			rcBarFilled.left	= m_rcBar.left;
			rcBarFilled.top		= rcBarEmpty.bottom;
			rcBarFilled.right	= m_rcBar.right;
			rcBarFilled.bottom	= m_rcBar.bottom;
			}
		else{
			rcBarFilled.left	= m_rcBar.left;
			rcBarFilled.top		= m_rcBar.top;
			rcBarFilled.right	= m_rcCursor.left;
			rcBarFilled.bottom	= m_rcBar.bottom;

			rcBarEmpty.left		= rcBarFilled.right;
			rcBarEmpty.top		= m_rcBar.top;
			rcBarEmpty.right	= m_rcBar.right;
			rcBarEmpty.bottom	= m_rcBar.bottom;
			}
		
		// Draw filled bar cliped. {{
		_Size szBarFilled	(m_imageSliderBarFilled.GetWidth()*fZoomCX, m_imageSliderBarFilled.GetHeight()*fZoomCY);
		if( fZoomCX == 1.0f && fZoomCY == 1.0f )
			m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled, m_rcOmitBarFilled);
		else{
			if( !m_imageSliderBarFilled_Scale.IsNull() && m_imageSliderBarFilled_Scale.GetWidth() == szBarFilled.cx && m_imageSliderBarFilled_Scale.GetHeight() == szBarFilled.cy ){
				m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled_Scale, m_rcOmitBarFilled_Scale);
				}
			else{
				ImageDef hDestScaled = NULL;
				if( m_imageSliderBarFilled.ScaleBitmap(ScaleMode::ScaleMode_Bilinier, szBarFilled.cx, szBarFilled.cy, _Rect(0, 0, szBarFilled.cx, szBarFilled.cy), hDestScaled, true) ){
					m_imageSliderBarFilled_Scale.Destroy();
					m_imageSliderBarFilled_Scale.Attach	(hDestScaled);
					m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcBar, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarFilled_Scale, m_rcOmitBarFilled_Scale);
					}
				}
			}
		// }}

		_Size szBarNotFilled(m_imageSliderBarNotFilled.GetWidth()*fZoomCX, m_imageSliderBarNotFilled.GetHeight()*fZoomCY);
		if( fZoomCX == 1.0f && fZoomCY == 1.0f )
			m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcBarEmpty, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarNotFilled, m_rcOmitBarNotFilled);
		else{
			if( !m_imageSliderBarNotFilled_Scale.IsNull() && m_imageSliderBarNotFilled_Scale.GetWidth() == szBarNotFilled.cx && m_imageSliderBarNotFilled_Scale.GetHeight() == szBarNotFilled.cy ){
				m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcBarEmpty, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarNotFilled_Scale, m_rcOmitBarNotFilled_Scale);
				}
			else{
				ImageDef hDestScaled = NULL;
				if( m_imageSliderBarNotFilled.ScaleBitmap(ScaleMode::ScaleMode_Bilinier, szBarNotFilled.cx, szBarNotFilled.cy, _Rect(0, 0, szBarNotFilled.cx, szBarNotFilled.cy), hDestScaled, true) ){
					m_imageSliderBarNotFilled_Scale.Destroy	();
					m_imageSliderBarNotFilled_Scale.Attach	(hDestScaled);
					m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, rcBarEmpty, FillMode::FillMode_OmitBorderedImage, RGB(0, 0, 0), &m_imageSliderBarNotFilled_Scale, m_rcOmitBarNotFilled_Scale);
					}
				}
			}
		}
	// }}

	// Draw cursor.
	m_pOwner->DrawBackground(pDC, pRectDC, pRectClient, m_rcCursor, FillMode::FillMode_StretchImage, RGB(0, 0, 0), 
		(m_bCursorCaptured && !m_imageCursorPushed.IsNull()) ?  &m_imageCursorPushed : &m_imageCursor, _Rect(0, 0, 0, 0), false, ScaleMode::ScaleMode_Bilinier);

	ESChildControl::OnPaintClient(pDC, pRectDC, pRectClient);
	}
Ejemplo n.º 8
0
void
ESChildSlider::CalRects(){
	float fZoomCX = 1.0f, fZoomCY = 1.0f;
	if( m_pOwner )
		m_pOwner->GetZoom(fZoomCX, fZoomCY);

	_Rect		rcControl = GetClientRect();
	_Rect		rcMinus, rcPlus, rcBar, rcCursor;

	_Size		szMinusImg(0, 0), szPlusImg(0, 0), szBarImg(0, 0), szCursorImg(0, 0);
	if( !m_imageSliderBarFilled.IsNull() )
		szBarImg.SetSize(m_imageSliderBarFilled.GetWidth(), m_imageSliderBarFilled.GetHeight());
	if( !m_imagePlusButtonNormal.IsNull() )
		szPlusImg.SetSize(m_imagePlusButtonNormal.GetWidth(), m_imagePlusButtonNormal.GetHeight());
	if( !m_imageMinusButtonNormal.IsNull() )
		szMinusImg.SetSize(m_imageMinusButtonNormal.GetWidth(), m_imageMinusButtonNormal.GetHeight());
	if( !m_imageCursor.IsNull() )
		szCursorImg.SetSize(m_imageCursor.GetWidth(), m_imageCursor.GetHeight());

	m_rcOmitBarFilled_Scale		= _Rect(m_rcOmitBarFilled.left*fZoomCX, m_rcOmitBarFilled.top*fZoomCY, m_rcOmitBarFilled.right*fZoomCX, m_rcOmitBarFilled.bottom*fZoomCY);
	m_rcOmitBarNotFilled_Scale	= _Rect(m_rcOmitBarNotFilled.left*fZoomCX, m_rcOmitBarNotFilled.top*fZoomCY, m_rcOmitBarNotFilled.right*fZoomCX, m_rcOmitBarNotFilled.bottom*fZoomCY);

	// Calculate rects. {{
	if( m_bVerticalMode ){
		rcPlus.left		= rcControl.left;
		rcPlus.top		= rcControl.top;
		rcPlus.right	= rcPlus.left + (szPlusImg.cx*fZoomCX);
		rcPlus.bottom	= rcPlus.top + (szPlusImg.cy*fZoomCY);

		rcMinus.left	= rcControl.left;
		rcMinus.top		= rcControl.bottom - (szMinusImg.cy*fZoomCY);
		rcMinus.right	= rcMinus.left + (szMinusImg.cx*fZoomCX);
		rcMinus.bottom	= rcMinus.top + (szMinusImg.cy*fZoomCY);

		rcBar.top		= rcPlus.bottom + (m_nDistBetweenBarAndButton*fZoomCY);
		rcBar.left		= rcControl.left + ((std::max(szMinusImg.cx, szCursorImg.cx) - szBarImg.cx) / 2)*fZoomCX;
		rcBar.bottom	= rcMinus.top - (m_nDistBetweenBarAndButton*fZoomCY);
		rcBar.right		= rcBar.left + (szBarImg.cx*fZoomCX);
		}
	else{
		rcMinus.left	= rcControl.left;
		rcMinus.top		= rcControl.top;
		rcMinus.right	= rcMinus.left + (szMinusImg.cx*fZoomCX);
		rcMinus.bottom	= rcMinus.top + (szMinusImg.cy*fZoomCY);

		rcPlus.right	= rcControl.right;
		rcPlus.top		= rcControl.top;
		rcPlus.left		= rcPlus.right - (szPlusImg.cx*fZoomCX);
		rcPlus.bottom	= rcMinus.top + (szPlusImg.cy*fZoomCY);

		rcBar.left		= rcMinus.right + (m_nDistBetweenBarAndButton*fZoomCX);
		rcBar.top		= rcControl.top + ((std::max(szMinusImg.cy,szCursorImg.cy) - szBarImg.cy) / 2)*fZoomCY;
		rcBar.right		= rcPlus.left - (m_nDistBetweenBarAndButton*fZoomCX);
		rcBar.bottom	= rcBar.top + (szBarImg.cy*fZoomCY);
		}
	
	CalcCursorRect(rcBar, rcCursor);

	m_rcBar			= rcBar;
	m_rcMinus		= rcMinus;
	m_rcPlus		= rcPlus;
	m_rcCursor		= rcCursor;
	// }}
	}
Ejemplo n.º 9
0
bool
ESChildScrollView::Create(int nId, _Rect rRect, MercuryBaseView* pOwner, ESChildControl* pParent){
	bool bRet = ESChildControl::Create(nId, rRect, pOwner, pParent);
	if( bRet ){
		m_pVScroll	= new ESChildScrollBar(true);
		m_pHScroll	= new ESChildScrollBar(false);

		if( !m_imageVScrollThumb.IsNull() )
			m_pVScroll->m_pImageVScrollThumb = &m_imageVScrollThumb;
		if( !m_imageVScrollArrowBottomSel.IsNull() )
			m_pVScroll->m_pImageVScrollArrowBottomSel = &m_imageVScrollArrowBottomSel;
		if( !m_imageVScrollArrowBottomNormal.IsNull() )
			m_pVScroll->m_pImageVScrollArrowBottomNormal = &m_imageVScrollArrowBottomNormal;
		if( !m_imageVScrollMiddle.IsNull() )
			m_pVScroll->m_pImageVScrollMiddle = &m_imageVScrollMiddle;
		if( !m_imageVScrollArrowTopSel.IsNull() )
			m_pVScroll->m_pImageVScrollArrowTopSel = &m_imageVScrollArrowTopSel;
		if( !m_imageVScrollArrowTopNormal.IsNull() )
			m_pVScroll->m_pImageVScrollArrowTopNormal = &m_imageVScrollArrowTopNormal;
		if(	!m_rcVThumbOmitBorder.IsRectNull() )
			m_pVScroll->m_rcVThumbOmitBorder = m_rcVThumbOmitBorder;

		if( pOwner->AddChildControl(m_pVScroll, MercuryBaseView::GetChildControlIdUnused(m_pOwner), _Rect(0, 0, m_nArrowBtnCY, 0), this) ){
			_Rect rcFixedPos;
			rcFixedPos.left		= -1;
			rcFixedPos.top		= m_nBorderWidth + m_nVScrollBarTopOffset;
			rcFixedPos.right	= m_nBorderWidth;
			rcFixedPos.bottom	= m_nBorderWidth;
			m_pVScroll->SetSerializeFlag(false);
			m_pVScroll->SetFixedPosition(rcFixedPos);
			m_pVScroll->SetVisible		(false, false);
			}

		if( !m_imageHScrollThumb.IsNull() )
			m_pHScroll->m_pImageHScrollThumb = &m_imageHScrollThumb;
		if( !m_imageHScrollArrowRightSel.IsNull() )
			m_pHScroll->m_pImageHScrollArrowRightSel = &m_imageHScrollArrowRightSel;
		if( !m_imageHScrollArrowRightNormal.IsNull() )
			m_pHScroll->m_pImageHScrollArrowRightNormal = &m_imageHScrollArrowRightNormal;
		if( !m_imageHScrollMiddle.IsNull() )
			m_pHScroll->m_pImageHScrollMiddle = &m_imageHScrollMiddle;
		if( !m_imageHScrollArrowLeftSel.IsNull() )
			m_pHScroll->m_pImageHScrollArrowLeftSel = &m_imageHScrollArrowLeftSel;
		if( !m_imageHScrollArrowLeftNormal.IsNull() )
			m_pHScroll->m_pImageHScrollArrowLeftNormal = &m_imageHScrollArrowLeftNormal;
		if( !m_rcHThumbOmitBorder.IsRectNull() )
			m_pHScroll->m_rcHThumbOmitBorder = &m_rcHThumbOmitBorder;
			
		if( pOwner->AddChildControl(m_pHScroll, MercuryBaseView::GetChildControlIdUnused(m_pOwner), _Rect(0, 0, 0, m_nArrowBtnCX), this) ){
			_Rect rcFixedPos;
			rcFixedPos.left		= m_nBorderWidth;
			rcFixedPos.top		= -1;
			rcFixedPos.right	= m_nBorderWidth;
			rcFixedPos.bottom	= m_nBorderWidth;
			m_pHScroll->SetSerializeFlag(false);
			m_pHScroll->SetFixedPosition(rcFixedPos);
			m_pHScroll->SetVisible		(false, false);
			}
		AdjustScrollBarPos(false);
		}
	return bRet;
	}
//	回転・スケーリング・アルファオプション付き絵画(スプライトを使用)
void CMglImage::DrawEx(
	float fScaleX, float fScaleY, float fRotationCenterX, float fRotationCenterY, float fAngle,
	float x, float y, RECT *srcRect, D3DCOLOR color )
//	float x, float y, RECT *srcRect, D3DCOLOR color, DWORD dwAlphaOption )
{
	CreateCheck();	//	Createチェック

	//	srcRectにNULLを指定された場合はフルで絵画
	RECT _srcRect;
	if ( srcRect == NULL )
	{
		srcRect = &_srcRect;
		_Rect( 0, 0, m_nBmpSizeX, m_nBmpSizeY, srcRect );
	}

	//	中心基点絵画機能
	if ( m_bCenterDraw == TRUE )
	{
		int nSizeX = srcRect->right - srcRect->left;
		int nSizeY = srcRect->bottom - srcRect->top;
		x -= (nSizeX/2) * fScaleX;
		y -= (nSizeY/2) * fScaleY;
	}

	//	x, yをD3DXVECTOR2構造体に格納
	D3DXVECTOR2 vctPos;
	vctPos.x = x;
	vctPos.y = y;

	//	スケール
	D3DXVECTOR2 vctScale;
	vctScale.x = fScaleX;
	vctScale.y = fScaleY;

	//	回転の中心
	D3DXVECTOR2 vctRtCenter;
	vctRtCenter.x = (srcRect->right - srcRect->left) * fRotationCenterX * fScaleX;
	vctRtCenter.y = (srcRect->bottom - srcRect->top) * fRotationCenterY * fScaleY;

	/*	スプライトはアルファオプション効かないっぽい
	//	アルファオプション
	DWORD dwAlphaOptionBkup=0;
	if ( dwAlphaOption != MGL_ALPHA_OPT_NOCHANGE )
	{
		//	戻す時のためにバックアップを取っておく
		dwAlphaOptionBkup = m_myudg->GetAlphaMode();
		m_myudg->SetAlphaMode( dwAlphaOption );
	}*/

	//	角度からRadianに。更に左回転になっているので右回転に
	float fRad = AngleToRad(-fAngle);

	//	絵画
	MyuAssert( m_pSprite->Draw( m_pTexture, srcRect, &vctScale, &vctRtCenter, fRad, &vctPos, color ), D3D_OK,
		"CMglImage::Draw()  m_pSprite->Draw()に失敗" );

	/*	スプライトはアルファオプション効かないっぽい
	//	アルファオプションを元に戻す
	if ( dwAlphaOption != MGL_ALPHA_OPT_NOCHANGE )
	{
		m_myudg->SetAlphaMode( dwAlphaOptionBkup );
	}*/
}