예제 #1
0
BOOL CRowForm::PreCreateWindow(CREATESTRUCT& cs) 
{
	// override default window class styles CS_HREDRAW and CS_VREDRAW
	// otherwise resizing frame redraws entire view, causing flicker
	CWinApp	*pApp = AfxGetApp();
	cs.lpszClass = AfxRegisterWndClass(	// create our own window class
		CS_DBLCLKS,						// request double-clicks
		pApp->LoadStandardCursor(IDC_ARROW),	// standard cursor
		NULL,									// no background brush
		pApp->LoadIcon(IDR_MAINFRAME));		// app's icon
	return CFormView::PreCreateWindow(cs);
}
예제 #2
0
CDrawingView::CDrawingView()
{
    m_nDrawTool = DRAWTOOL_ARROW;
    m_crLine = RGB( 0, 0, 0 );
    m_crFill = RGB( 255, 255, 255 );
    m_pCurShape = NULL;

    // Load standard cursors used by the view.
    CWinApp *pApp = AfxGetApp();
    ASSERT( pApp != NULL );
    m_hcurArrow = pApp->LoadStandardCursor( IDC_ARROW );
    m_hcurCross = pApp->LoadStandardCursor( IDC_CROSS );
}
예제 #3
0
CTreeFileCtrl::CTreeFileCtrl() : CTreeCtrl()
{
  m_bShowFiles = TRUE;
  m_pilDrag = NULL;
  m_hSelItem = NULL;
  m_hItemDrag = NULL;
  m_hItemDrop = NULL;
  m_TimerTicks = 0;
  m_bAllowDragDrop = TRUE;
  m_bAllowRename = TRUE;
  m_bAllowOpen = TRUE;
  m_bAllowProperties = TRUE;
  m_bAllowDelete = TRUE;

  CWinApp* pApp = AfxGetApp();
  m_NoDropCopyCursor = pApp->LoadCursor(IDR_TREEFILECTRL_NO_DROPCOPY);
  ASSERT(m_NoDropCopyCursor);
  m_DropCopyCursor = pApp->LoadCursor(IDR_TREEFILECTRL_DROPCOPY);
  ASSERT(m_DropCopyCursor);
  m_NoDropMoveCursor = pApp->LoadCursor(IDR_TREEFILECTRL_NO_DROPMOVE);
  ASSERT(m_NoDropMoveCursor);
  m_DropMoveCursor = pApp->LoadStandardCursor(IDC_ARROW);
  ASSERT(m_DropMoveCursor);
}
	BOOL CModelInputDlg::Create(const CModelInputParameterDefVector& variables, const CRect& rectMI, const CString& modelName, CWnd* pParentWnd, bool bForTest)
	{
		BOOL rep = false;

		ResetCtrl();

		m_variables = variables;

		CRect rectDlg(rectMI);

		CAppOption option;
		option.SetCurrentProfile(_T("ModelsWindowsPosition"));
		CPoint defaultPos = option.GetProfilePoint(modelName, CPoint(430, 0));

		option.SetCurrentProfile(_T("WindowsPosition"));
		defaultPos += option.GetProfilePoint(_T("ModelInputEditor"), CPoint(30, 30));

		rectDlg += defaultPos;
		UtilWin::EnsureRectangleOnDisplay(rectDlg);


		CWinApp* pApp = AfxGetApp();

		CString strWndClass = AfxRegisterWndClass(
			0,
			pApp->LoadStandardCursor(IDC_ARROW),
			(HBRUSH)(COLOR_3DFACE + 1),
			pApp->LoadIcon(IDI_HEART));

		if (bForTest)
			rep = CWnd::CreateEx(WS_EX_CLIENTEDGE, strWndClass, modelName, WS_DLGFRAME | WS_OVERLAPPED | WS_BORDER | WS_CAPTION | WS_VISIBLE | WS_SYSMENU, rectDlg, pParentWnd, NULL, NULL);
		else
			rep = CWnd::CreateEx(WS_EX_CLIENTEDGE, strWndClass, modelName, WS_DLGFRAME | WS_OVERLAPPED | WS_BORDER | WS_CAPTION | WS_VISIBLE, rectDlg, pParentWnd, NULL, NULL);



		CFont* pFont = CFont::FromHandle((HFONT)GetStockObject(DEFAULT_GUI_FONT)); // SYSTEM_FONT ANSI_VAR_FONT

		for (size_t i = 0; i < m_variables.size(); i++)
		{
			//create title
			CStatic* pStatic = (CStatic*) new CStatic;
			CRect rect = m_variables[i].GetItemRect(0);
			//rect.top += 3;
			//rect.bottom += 3;

			pStatic->Create(CString(m_variables[i].m_caption.c_str()), WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE, rect, this, IDC_STATIC);
			pStatic->SetFont(pFont);
			m_titleCtrlArray.Add(pStatic);

			//create control
			switch (m_variables[i].GetType())
			{
			case CModelInputParameterDef::kMVBool:
			{
				CCFLComboBox* pCombo = (CCFLComboBox*) new CCFLComboBox;
				CRect rect = m_variables[i].GetItemRect(1);
				rect.bottom += 3 * rect.Height();

				pCombo->Create(WS_TABSTOP | WS_BORDER | WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST, rect, this, GetID(i));
				pCombo->SetFont(pFont);

				CString str;
				str.LoadString(IDS_STR_YES);
				pCombo->AddString(str);
				str.LoadString(IDS_STR_NO);
				pCombo->AddString(str);

				m_varCtrlArray.Add(pCombo);
				break;
			}

			case CModelInputParameterDef::kMVInt:
			{
				CIntEdit* pIntEdit = (CIntEdit*) new CIntEdit;
				CRect rect = m_variables[i].GetItemRect(1);


				pIntEdit->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, WS_TABSTOP | WS_CHILD | WS_VISIBLE | WS_BORDER, rect, this, GetID(i));
				pIntEdit->SetFont(pFont);
				m_varCtrlArray.Add(pIntEdit);
				break;
			}

			case CModelInputParameterDef::kMVReal:
			{
				CFloatEdit* pFloatEdit = (CFloatEdit*) new CFloatEdit;
				CRect rect = m_variables[i].GetItemRect(1);

				pFloatEdit->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, WS_TABSTOP | WS_CHILD | WS_VISIBLE | WS_BORDER, rect, this, GetID(i));
				pFloatEdit->SetFont(pFont);
				m_varCtrlArray.Add(pFloatEdit);
				break;
			}



			case CModelInputParameterDef::kMVString:
			{
				CCFLEdit* pEdit = (CCFLEdit*) new CCFLEdit;
				CRect rect = m_variables[i].GetItemRect(1);


				pEdit->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, WS_TABSTOP | WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL, rect, this, GetID(i));
				pEdit->SetFont(pFont);
				m_varCtrlArray.Add(pEdit);
				break;
			}

			case CModelInputParameterDef::kMVFile:
			{
				CModelInputBrowseCtrl* pEdit = new CModelInputBrowseCtrl;
				pEdit->m_appPath = m_appPath;
				pEdit->m_projectPath = m_projectPath;

				CRect rect = m_variables[i].GetItemRect(1);

				pEdit->Create(WS_TABSTOP | WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL, rect, this, GetID(i));
				pEdit->EnableFileBrowseButton();
				pEdit->SetFont(pFont);
				m_varCtrlArray.Add(pEdit);
				break;
			}

			case CModelInputParameterDef::kMVListByPos:
			case CModelInputParameterDef::kMVListByString:
			case CModelInputParameterDef::kMVListByCSV:
			{
				//int defPos = WBSF::ToInt(m_variables[i].m_default);
				//if (CModelInputParameterDef::kMVListByCSV)

				StringVector listOfValues = m_variables[i].GetList(GetFM().GetAppPath(), GetFM().GetProjectPath());
				bool bFromFile = m_variables[i].IsExtendedList();//listOfValues[0] == "FROM_CSV_FILE" && listOfValues.size() == 4;

				CCFLComboBox* pCombo = (CCFLComboBox*) new CCFLComboBox;
				CRect rect = m_variables[i].GetItemRect(1);
				rect.bottom += 10 * rect.Height();

				UINT style = bFromFile ? WS_TABSTOP | WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_SORT : WS_TABSTOP | WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWNLIST;
				pCombo->Create(style, rect, this, GetID(i));
				pCombo->SetFont(pFont);
				pCombo->SetExtendedUI(true);


				/*if (bFromFile)
				{
				string filePath = CModelInput::SpecialPath2FilePath(listOfValues[1], m_appPath, m_projectPath);
				int col = WBSF::ToInt(listOfValues[2]);

				listOfValues.clear();

				ifStream file;
				if (file.open(filePath))
				{
				for (CSVIterator loop(file, ",; \t"); loop != CSVIterator(); ++loop)
				{

				if (col < loop.Header().size() &&
				col < (*loop).size())
				{
				listOfValues.push_back((*loop)[col]);
				}
				}
				}
				}*/

				for (size_t pos = 0; pos < listOfValues.size(); pos++)
				{
					int index = pCombo->AddString(CString(listOfValues[pos].c_str()));
					pCombo->SetItemData(index, pos);
				}

				if (m_variables[i].GetType() == CModelInputParameterDef::kMVListByPos)
					pCombo->SetCurSel(WBSF::ToInt(m_variables[i].m_default));
				else
					pCombo->SelectStringExact(0, m_variables[i].m_default);


				m_varCtrlArray.Add(pCombo);
				break;
			}

			case CModelInputParameterDef::kMVTitle:
			case CModelInputParameterDef::kMVStaticText:
			{
				CTitleCtrl* pStatic = (CTitleCtrl*) new CTitleCtrl;
				CRect rect = m_variables[i].GetItemRect(1);

				pStatic->Create(CString(m_variables[i].m_caption.c_str()), WS_CHILD | WS_VISIBLE | SS_CENTERIMAGE, rect, this, IDC_STATIC);
				if (m_variables[i].GetType() == CModelInputParameterDef::kMVStaticText)
					pStatic->SetFont(pFont);

				m_varCtrlArray.Add(pStatic);
				break;
			}

			case CModelInputParameterDef::kMVLine:
			{

				CStaticLineCtrl* pStatic = (CStaticLineCtrl*) new CStaticLineCtrl;//hiden control
				CRect rect = m_variables[i].GetItemRect(1);
				//rect.bottom = rect.top + 5;

				pStatic->Create(_T(""), WS_CHILD | WS_VISIBLE, rect, this, IDC_STATIC);
				m_varCtrlArray.Add(pStatic);
				break;
			}

			default: ASSERT(false);
			}
		}

		Invalidate();

		return rep;
	}