Exemple #1
0
int CRcGen::_BuildLabel(cControles* pCtrl, CTelaAtual* pTa, int& y, int& ratioXPos)
{
	if(pCtrl->sTipo.CompareNoCase(L"Radio") == 0 ||
		pCtrl->sTipo.CompareNoCase(L"Botão") == 0 ||
		pCtrl->sTipo.CompareNoCase(L"Check") == 0 ||
		pCtrl->sTipo.CompareNoCase(L"Label") == 0)
		return 0;

	CRect rect;
	//Se tiver label
	if(!pCtrl->sNome.IsEmpty())
	{
		rect = GetCtrlRect(LABEL_CTRL, y, ratioXPos);

		rect.bottom -= 4;

		/*if(pCtrl->sNome.GetLength() > 12)
		{
			rect.top = rect.top - 5;
			rect.bottom += ((pCtrl->sNome.GetLength()/12)+1) * DEFAULT_HEIGHT;
		}*/

		m_label = new CStatic();
		m_label->Create(pCtrl->sNome, 0, rect, m_pThis, 100);
		if(m_bShow)
			m_label->ShowWindow(SW_SHOW);
		pTa->pLabel = m_label;

		return rect.bottom - rect.top;
		//y = rect.bottom - rect.top + DEFAULT_SPACE;
	}

	return 0;
}
void CXTPCalendarEventRecurrenceDlg::MoveWindow_Y(int nID, int nYOffset)
{
	if (GetDlgItem(nID))
	{
		CRect rcRect = GetCtrlRect(nID);
		ScreenToClient(&rcRect);

		rcRect.top += nYOffset;
		rcRect.bottom += nYOffset;

		GetDlgItem(nID)->MoveWindow(rcRect);
	}
	else
	{
		ASSERT(FALSE);
	}
}
Exemple #3
0
void CRcGen::_GenerateControls(cControles &cCtrl, CRect &rect, const int ratioXPos, CTelaAtual* at, DWORD &id, int &y_atu)
{
	int iTopo = m_y;
	if(cCtrl.iTopo >= 0)
		iTopo += cCtrl.iTopo;


	if(cCtrl.sTipo.Compare(_T("Label"))==0)
	{
		rect = GetCtrlRect(LABEL, iTopo, ratioXPos, cCtrl.iEsquerda);

		if(cCtrl.sNome.GetLength() > 35)
			rect.bottom += ((cCtrl.sNome.GetLength()/35)+1) * DEFAULT_HEIGHT;

		//pDc->Rectangle(rect);
		//pDc->DrawText(cCtrl.sNome, rect, 0);
		m_label = new CStatic();
		m_label->Create(cCtrl.sNome, 0, rect, m_pThis, id);
		//m_label->ShowWindow(SW_SHOW);
		y_atu = max(rect.bottom + DEFAULT_SPACE, y_atu);

		at->r = rect;
		at->tipoCtrl = LABEL;
		at->wndControl = m_label;
	}
	else if(cCtrl.sTipo.Compare(_T("Botão"))==0)
	{
		if(cCtrl.iExCtrl > 0)
		{
			m_button_ex = new CButtonEx();
		}
		else
		{
			m_button = new CButton();
		}

		rect = GetCtrlRect(BOTAO, iTopo, ratioXPos, cCtrl.iEsquerda);
		y_atu = max(rect.bottom, y_atu);

		(cCtrl.iExCtrl > 0 ? m_button_ex : m_button)->Create(cCtrl.sNome, button_style, rect, m_pThis, id+cCtrl.nID); 
		at->r = rect;
		at->tipoCtrl = BOTAO;
		at->wndControl = (cCtrl.iExCtrl > 0 ? m_button_ex : m_button);
		if(cCtrl.iExCtrl > 0)
		{
			m_button_ex->SetIconEx(cCtrl.iExCtrl, CSize(16,16));
		}
		//pDc->Rectangle(rect);
		//(cCtrl.iExCtrl > 0 ? m_button_ex : m_button)->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("Check"))==0)
	{
		m_button = new CButton();

		rect = GetCtrlRect(CHECK, iTopo, ratioXPos, cCtrl.iEsquerda);
		y_atu = max(rect.bottom, y_atu);

		m_button->Create(cCtrl.sNome, check_style, rect, m_pThis, id+cCtrl.nID); 
		at->r = rect;
		at->tipoCtrl = CHECK;
		at->wndControl = m_button;
		//pDc->Rectangle(rect);
		//m_button->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("Radio"))==0)
	{
		m_button = new CButton();

		rect = GetCtrlRect(RADIO, iTopo, ratioXPos, cCtrl.iEsquerda);
		y_atu = max(rect.bottom, y_atu);

		m_button->Create(cCtrl.sNome, radio_style, rect, m_pThis, id+cCtrl.nID); 
		at->r = rect;
		at->tipoCtrl = RADIO;
		at->wndControl = m_button;
		//pDc->Rectangle(rect);
		//m_button->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("Drop-Down Combo"))==0)
	{
		m_combo = new CEGBComboBox();

		rect = GetCtrlRect(COMBO, iTopo, ratioXPos, cCtrl.iEsquerda);

		y_atu = max(rect.bottom, y_atu);
		//rect.bottom = rect.top + 120;

		m_combo->Create(combo_drop_style, CRect(rect.left, rect.top, rect.right, rect.top + 120), m_pThis, id+cCtrl.nID);
		m_combo->SetFixedContent();
		at->r = rect;
		at->tipoCtrl = COMBO;
		at->wndControl = m_combo;
//			cCtrl.iAltura = DEFAULT_HEIGHT;
		//pDc->Rectangle(rect);
		//m_combo->ShowWindow(SW_SHOW);

	}
	else if(cCtrl.sTipo.Compare(_T("Combo Editável"))==0)
	{
		m_combo = new CEGBComboBox();
		
		rect = GetCtrlRect(COMBO_EDITAVEL, iTopo, ratioXPos, cCtrl.iEsquerda);
		y_atu = max(rect.bottom, y_atu);
		//rect.bottom = rect.top + 120;

		m_combo->Create(combo_edit_style, CRect(rect.left, rect.top, rect.right, rect.top + 120), m_pThis, id+cCtrl.nID);
		at->r = rect;
		at->tipoCtrl = COMBO_EDITAVEL;
		at->wndControl = m_combo;
//			cCtrl.iAltura = DEFAULT_HEIGHT;
		//pDc->Rectangle(rect);
		//m_combo->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("Caixa de Texto"))==0)
	{
		m_edit = new CEGBEdit();
						
		rect = GetCtrlRect(TEXTO, iTopo, ratioXPos, cCtrl.iEsquerda);

		m_edit->Create(text_style, rect, m_pThis, id+cCtrl.nID);
		if(cCtrl.iReadOnly) m_edit->SetReadOnly(TRUE);

		at->r = rect;
		at->tipoCtrl = TEXTO;
		at->wndControl = m_edit;
//			cCtrl.iAltura = DEFAULT_HEIGHT;
		//m_edit->ShowWindow(SW_SHOW);
		y_atu = max(rect.bottom, y_atu);
		//pDc->Rectangle(rect);
	}
	else if(cCtrl.sTipo.Compare(_T("Texto MultiLinha"))==0)
	{
		m_edit = new CEGBEdit();

		rect = GetCtrlRect(TEXTO_MULTILINHA, iTopo, ratioXPos, cCtrl.iEsquerda);
		if(cCtrl.iLinhas == -1)
		{
			CRect r;
			m_pTrueThis->GetWindowRect(r);
#ifdef _WIN32_WCE
			rect.bottom = r.bottom-60;
			rect.right = r.right-30;
#else
			rect.bottom = r.bottom-100;
			rect.right = r.right-100;
#endif
		}
		else
		{
			rect.bottom += (cCtrl.iLinhas-1) * DEFAULT_HEIGHT;
		}

		y_atu = max(rect.bottom, y_atu);

		m_edit->Create(multiline_style, rect, m_pThis, id+cCtrl.nID);
		if(cCtrl.iReadOnly) m_edit->SetReadOnly(TRUE);

		at->r = rect;
		at->tipoCtrl = TEXTO_MULTILINHA;
		at->wndControl = m_edit;
//			cCtrl.iAltura = DEFAULT_HEIGHT;
		//pDc->Rectangle(rect);
		//m_edit->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("Seleção de Data"))==0)
	{
		m_datectrl = new CDateTimeCtrl();

		rect = GetCtrlRect(DATA, iTopo, ratioXPos, cCtrl.iEsquerda);
		y_atu = max(rect.bottom, y_atu);

		m_datectrl->Create(date_style, rect, m_pThis, id+cCtrl.nID);
		at->r = rect;
		at->tipoCtrl = DATA;
		at->wndControl = m_datectrl;
//			cCtrl.iAltura = DEFAULT_HEIGHT;
		//pDc->Rectangle(rect);
		//m_datectrl->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("Seleção de Hora"))==0)
	{
		m_datectrl = new CDateTimeCtrl();

		rect = GetCtrlRect(HORA, iTopo, ratioXPos, cCtrl.iEsquerda);

		m_datectrl->Create(time_style, rect, m_pThis, id+cCtrl.nID);
		at->r = rect;
		at->tipoCtrl = HORA;
		at->wndControl = m_datectrl;
//			cCtrl.iAltura = DEFAULT_HEIGHT;
		y_atu = max(rect.bottom, y_atu);
		//pDc->Rectangle(rect);
		//m_datectrl->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("List Control"))==0)
	{
		m_listctrl = new CListCtrl();

		rect = GetCtrlRect(LIST_CONTROL, iTopo, ratioXPos, cCtrl.iEsquerda);
		rect.bottom += (cCtrl.iLinhas-1) * DEFAULT_HEIGHT;
		y_atu = max(rect.bottom, y_atu);

		m_listctrl->Create(listctrl_style, rect, m_pThis, id+cCtrl.nID);
		_FormatList(cCtrl.nID);
		at->r = rect;
		at->tipoCtrl = LIST_CONTROL;
		at->wndControl = m_listctrl;
//			cCtrl.iAltura = DEFAULT_HEIGHT;
		//pDc->Rectangle(rect);
		//m_listctrl->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("Image"))==0)
	{
#ifdef _WIN32_WCE
		m_image = new CDibControl();
#else
		m_image = new CPictureEx();
#endif

		rect = GetCtrlRect(LABEL, iTopo, ratioXPos, cCtrl.iEsquerda);
		if(cCtrl.iLargura > 100)
			rect.right = rect.left + cCtrl.iLargura;
		if(cCtrl.iAltura > -1)
			rect.bottom = rect.top + cCtrl.iAltura;
		else
			rect.bottom += (cCtrl.iLinhas-1) * DEFAULT_HEIGHT;

		y_atu = max(rect.bottom, y_atu);

#ifdef _WIN32_WCE
		m_image->Create(rect, m_pThis, id);
#else
		m_image->Create(L"", 0, rect, m_pThis, id);
#endif
		CUtil::GetPathFromVariable(cCtrl.sBDValue);

#ifdef _WIN32_WCE
		m_image->SetStretch(TRUE);
		m_image->LoadJPG(cCtrl.sBDValue);
#else
		m_image->SetStretch(TRUE);
		m_image->Load(cCtrl.sBDValue);
		m_image->Draw();
#endif

		at->r = rect;
		at->tipoCtrl = LABEL;
		at->wndControl = m_image;

		//m_image->ShowWindow(SW_SHOW);
	}
	else if(cCtrl.sTipo.Compare(_T("Custom"))==0)
	{
		rect = GetCtrlRect(LABEL, iTopo, ratioXPos);
		if(cCtrl.iLinhas == -1)
		{
			CRect r;
			m_pTrueThis->GetWindowRect(r);
#ifdef _WIN32_WCE
			rect.bottom = r.bottom-60;
			rect.right = r.right-30;
#else
			rect.bottom = r.bottom-100;
			rect.right = r.right-100;
#endif
		}
		else
		{
			rect.bottom += (cCtrl.iLinhas-1) * DEFAULT_HEIGHT;
		}
		y_atu = max(rect.bottom, y_atu);

		at->r = rect;
		at->tipoCtrl = CUSTOM;
		at->wndControl = NULL;
	}

	if(m_bShow && at->wndControl)
		at->wndControl->ShowWindow(SW_SHOW);

	CString t;
	t.Format(L"%s(%d): Id: %d Rect: T:%d L:%d R:%d B:%d.\r\n", CString(__FUNCTION__), __LINE__, cCtrl.nID, rect.top, rect.left, rect.right, rect.bottom);
	OutputDebugString(t);
}
void CXTPCalendarEventRecurrenceDlg::_MoveControlsBy_Y()
{
	CRect rcBase = GetCtrlRect(XTP_IDC_RADIO_DAILY);
	rcBase.top += 10;

	CRect rcBase2 = GetCtrlRect(XTP_IDC_RADIO_EVERYDAY);
	int nYOffset = rcBase.top - rcBase2.top;

	MoveWindow_Y(XTP_IDC_RADIO_EVERYDAY,    nYOffset);
	MoveWindow_Y(XTP_IDC_RADIO_EVERYWORKDAY,nYOffset);
	MoveWindow_Y(XTP_IDC_EDIT_DAYINTERVAL,  nYOffset);
	MoveWindow_Y(XTP_IDC_STATIC_DAY,        nYOffset);

	rcBase2 = GetCtrlRect(XTP_IDC_STATIC_WEEKLY_RECEVERY);
	nYOffset = rcBase.top - rcBase2.top;

	MoveWindow_Y(XTP_IDC_STATIC_WEEKLY_RECEVERY,nYOffset);
	MoveWindow_Y(XTP_IDC_EDIT_WEEKLY_INTERVAL,  nYOffset);
	MoveWindow_Y(XTP_IDC_STATIC_WEEKLY_FOLLDAYS,nYOffset);
	MoveWindow_Y(XTP_IDC_CHECK_MONDAY,          nYOffset);
	MoveWindow_Y(XTP_IDC_CHECK_TUESDAY,         nYOffset);
	MoveWindow_Y(XTP_IDC_CHECK_WEDNESDAY,       nYOffset);
	MoveWindow_Y(XTP_IDC_CHECK_THURSDAY,        nYOffset);
	MoveWindow_Y(XTP_IDC_CHECK_FRIDAY,          nYOffset);
	MoveWindow_Y(XTP_IDC_CHECK_SATURDAY,        nYOffset);
	MoveWindow_Y(XTP_IDC_CHECK_SUNDAY,          nYOffset);

	rcBase2 = GetCtrlRect(XTP_IDC_RADIO_MONTH_RECUR);
	nYOffset = rcBase.top - rcBase2.top;

	MoveWindow_Y(XTP_IDC_RADIO_MONTH_RECUR,     nYOffset);
	MoveWindow_Y(XTP_IDC_RADIO_MONTH_IN,        nYOffset);
	MoveWindow_Y(XTP_IDC_EDIT_MONTH_DATE,       nYOffset);
	MoveWindow_Y(XTP_IDC_STATIC_MONTH_NUMEVERY, nYOffset);
	MoveWindow_Y(XTP_IDC_EDIT_MONTH_MONTH,      nYOffset);
	MoveWindow_Y(XTP_IDC_STATIC_MONTH_MONTH,    nYOffset);
	MoveWindow_Y(XTP_IDC_COMBO_MONTH_CRIT,      nYOffset);
	MoveWindow_Y(XTP_IDC_COMBO_MONTH_DAY,       nYOffset);
	MoveWindow_Y(XTP_IDC_STATIC_MONTH_EVERY,    nYOffset);
	MoveWindow_Y(XTP_IDC_EDIT_MONTH_MONTH2,     nYOffset);
	MoveWindow_Y(XTP_IDC_STATIC_MONTH_MONTH2,   nYOffset);

	rcBase2 = GetCtrlRect(XTP_IDC_RADIO_YEAR_RECUR);
	nYOffset = rcBase.top - rcBase2.top;

	MoveWindow_Y(XTP_IDC_RADIO_YEAR_RECUR,  nYOffset);
	MoveWindow_Y(XTP_IDC_RADIO_YEAR_IN,     nYOffset);
	MoveWindow_Y(XTP_IDC_EDIT_YEAR_DATE,    nYOffset);
	MoveWindow_Y(XTP_IDC_COMBO_YEAR_MONTH,  nYOffset);
	MoveWindow_Y(XTP_IDC_COMBO_YEAR_CRIT,   nYOffset);
	MoveWindow_Y(XTP_IDC_COMBO_YEAR_DAY,    nYOffset);
	MoveWindow_Y(XTP_IDC_COMBO_YEAR_MONTH2, nYOffset);
	MoveWindow_Y(XTP_IDC_STATIC_YEAR_OF,    nYOffset);

	//------------------------------------------------------------------------
	CRect rcDialog;
	GetWindowRect(&rcDialog);

	CRect rcOK = GetCtrlRect(IDOK);
	rcDialog.bottom = rcOK.bottom + 10;

	SetWindowPos(NULL, 0, 0, rcDialog.Width(), rcDialog.Height(), SWP_NOMOVE | SWP_NOZORDER);
}