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); }
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 ); }
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; }