void CSeriesPropertyGridCtrl::Init() { CMFCPropertyGridCtrl::Init(); RemoveAll(); //static COleVariant Bool((short)VARIANT_FALSE, VT_BOOL); //static COleVariant Int(0l, VT_I4); //static CString String; //static COLORREF Color; CRect rect; GetClientRect(rect); //add all attribute CAppOption options; StringVector propertyHeader(GetString(IDS_STR_PROPERTY_HEADER), ";|"); m_nLeftColumnWidth = options.GetProfileInt(_T("WeatherChartsPropertiesSplitterPos"), rect.Width() / 2); EnableHeaderCtrl(true, CString(propertyHeader[0].c_str()), CString(propertyHeader[1].c_str())); EnableDescriptionArea(true); SetVSDotNetLook(true); MarkModifiedProperties(true); SetAlphabeticMode(false); SetShowDragContext(true); EnableWindow(true); AlwaysShowUserToolTip(); //General // // StringVector section(IDS_DBEDIT_GRAPH_WEATHER, ";|"); StringVector name(IDS_DBEDIT_GRAPH_WEATHER_PROPERTIES, ";|"); StringVector description(IDS_DBEDIT_GRAPH_WEATHER_DESCRIPTION, ";|"); CMFCPropertyGridProperty* pGroup = new CStdGridProperty(section[0]); ASSERT(name.size() == NB_GRAPH_WEATHER_PROPERTIES); ASSERT(description.size() == NB_GRAPH_WEATHER_PROPERTIES); CMFCPropertyGridProperty* pGraph = new CStdGridProperty(section[1]); pGraph->AddSubItem(new CStdGridProperty(name[TITLE], "", description[TITLE], TITLE)); pGraph->AddSubItem(new CStdGridProperty(name[X_AXIS_TITLE], "", description[X_AXIS_TITLE], X_AXIS_TITLE)); pGraph->AddSubItem(new CStdGridProperty(name[Y_LEFT_AXIS_TITLE], "", description[Y_LEFT_AXIS_TITLE], Y_LEFT_AXIS_TITLE)); pGraph->AddSubItem(new CStdGridProperty(name[Y_RIGHT_AXIS_TITLE], "", description[Y_RIGHT_AXIS_TITLE], Y_RIGHT_AXIS_TITLE)); pGraph->AddSubItem(new CStdBoolGridProperty(name[SHOW_LEGEND], true, description[SHOW_LEGEND], SHOW_LEGEND)); pGroup->AddSubItem(pGraph); CMFCPropertyGridProperty* pSeries = new CStdGridProperty(section[2]); CMFCPropertyGridProperty* pGeneral = new CStdGridProperty(section[3]); pGeneral->AddSubItem(new CWeatherVariableProperty(name[VARIABLE], size_t(H_TAIR2), description[VARIABLE], VARIABLE)); pGeneral->AddSubItem(new CStatisticProperty(name[STATISTIC], WBSF::MEAN, description[STATISTIC], STATISTIC)); pGeneral->AddSubItem(new CSerieTypeProperty(name[SERIE_TYPE], WBSF::MEAN, description[SERIE_TYPE], SERIE_TYPE)); pGeneral->AddSubItem(new CYAxisTypeProperty(name[Y_AXIS], CGraphSerie::LEFT_AXIS, description[Y_AXIS], Y_AXIS)); pGeneral->AddSubItem(new CStdBoolGridProperty(name[ENABLE_SHADOW], false, description[ENABLE_SHADOW], ENABLE_SHADOW)); pGeneral->AddSubItem(new CStdGridProperty(name[SHADOW_DEPTH], 3, description[SHADOW_DEPTH], SHADOW_DEPTH)); pGeneral->AddSubItem(new CStdColorProperty(name[SHADOW_COLOR], RGB(220,220,220), description[SHADOW_COLOR], SHADOW_COLOR)); pSeries->AddSubItem(pGeneral); CMFCPropertyGridProperty* pSymbol = new CStdGridProperty(section[4]); pSymbol->AddSubItem(new CSymbolProperty(name[SYMBOL_TYPE], 0, description[SYMBOL_TYPE], SYMBOL_TYPE)); pSymbol->AddSubItem(new CStdColorProperty(name[SYMBOL_COLOR], RGB(0,0,0), description[SYMBOL_COLOR], SYMBOL_COLOR)); pSymbol->AddSubItem(new CStdGridProperty(name[SYMBOL_SIZE_X], 6, description[SYMBOL_SIZE_X], SYMBOL_SIZE_X)); pSymbol->AddSubItem(new CStdGridProperty(name[SYMBOL_SIZE_Y], 6, description[SYMBOL_SIZE_Y], SYMBOL_SIZE_Y)); pSymbol->AddSubItem(new CStdBoolGridProperty(name[SYMBOL_FILLED], false, description[SYMBOL_FILLED], SYMBOL_FILLED)); pSymbol->AddSubItem(new CStdColorProperty(name[SYMBOL_FILL_COLOR], RGB(255,255,255), description[SYMBOL_FILL_COLOR], SYMBOL_FILL_COLOR)); pSeries->AddSubItem(pSymbol); CMFCPropertyGridProperty* pLine = new CStdGridProperty(section[5]); pLine->AddSubItem(new CLineStyleProperty(name[LINE_STYLE], CGraphSerie::lsNone, description[LINE_STYLE], LINE_STYLE)); pLine->AddSubItem(new CStdColorProperty(name[LINE_COLOR], RGB(0,0,0), description[LINE_COLOR], LINE_COLOR)); pLine->AddSubItem(new CStdGridProperty(name[LINE_WIDTH], 1, description[LINE_WIDTH], LINE_WIDTH)); pLine->AddSubItem(new CStdBoolGridProperty(name[LINE_SMOOTHED], false, description[LINE_SMOOTHED], LINE_SMOOTHED)); pSeries->AddSubItem(pLine); CMFCPropertyGridProperty* pFill = new CStdGridProperty(section[6]); pFill->AddSubItem(new CFillStyleProperty(name[FILL_STYLE], 0, description[FILL_STYLE], FILL_STYLE)); pFill->AddSubItem(new CFillDirectionProperty(name[FILL_DIRECTION], CGraphSerie::FILL_BOTTOM, description[FILL_DIRECTION], FILL_DIRECTION)); pFill->AddSubItem(new CStdColorProperty(name[FILL_COLOR], RGB(220,220,220), description[FILL_COLOR], FILL_COLOR)); pSeries->AddSubItem(pFill); CMFCPropertyGridProperty* pHist = new CStdGridProperty(section[7]); pHist->AddSubItem(new CHistDirectionProperty(name[HIST_DIRECTION], 0, description[HIST_DIRECTION], HIST_DIRECTION)); pHist->AddSubItem(new CStdGridProperty(name[HIST_BAR_WIDTH], 12, description[HIST_BAR_WIDTH], HIST_BAR_WIDTH)); pHist->AddSubItem(new CStdColorProperty(name[HIST_BAR_COLOR], RGB(0,100,255), description[HIST_BAR_COLOR], HIST_BAR_COLOR)); pHist->AddSubItem(new CStdGridProperty(name[HIST_BORDER_WIDTH], 1, description[HIST_BORDER_WIDTH], HIST_BORDER_WIDTH)); pHist->AddSubItem(new CStdColorProperty(name[HIST_BORDER_COLOR], RGB(0,0,0), description[HIST_BORDER_COLOR], HIST_BORDER_COLOR)); pSeries->AddSubItem(pHist); pGroup->AddSubItem(pSeries); AddProperty(pGroup); }
int CWorkspaceBar::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDockablePane::OnCreate(lpCreateStruct) == -1) return -1; CRect rectDummy; rectDummy.SetRectEmpty (); if (!m_wndPropList.Create (WS_VISIBLE | WS_CHILD, rectDummy, this, 1)) { TRACE0("Failed to create Properies Grid \n"); return -1; // fail to create } m_wndPropList.EnableHeaderCtrl (FALSE); m_wndPropList.EnableDescriptionArea (); m_wndPropList.SetVSDotNetLook (); CMFCPropertyGridProperty* pMDITabsProp = new CMFCPropertyGridProperty (_T("Enable MDI Tabs"), lpszMDITabsStyles [1], _T("Enable or disable either the standard MDI Tabs feature, or MDI Tabbed Groups feature"), idShowMDITabs); pMDITabsProp->AddOption (_T ("None")); pMDITabsProp->AddOption (_T ("MDI Tabs (Standard)")); pMDITabsProp->AddOption (_T ("MDI Tabbed Groups")); int i = 0; for (i = 0; lpszMDITabsStyles [i] != NULL; i++) { pMDITabsProp->AddOption (lpszMDITabsStyles [i]); } switch (theApp.m_Options.m_nMDITabsType) { case CMDITabOptions::None: pMDITabsProp->SetValue (lpszMDITabsStyles [0]); break; case CMDITabOptions::MDITabsStandard: pMDITabsProp->SetValue (lpszMDITabsStyles [1]); break; case CMDITabOptions::MDITabbedGroups: pMDITabsProp->SetValue (lpszMDITabsStyles [2]); theApp.m_Options.m_bMaximizeMDIChild = TRUE; break; } pMDITabsProp->AllowEdit (FALSE); m_wndPropList.AddProperty (pMDITabsProp); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Maximize child"), (_variant_t) (theApp.m_Options.m_bMaximizeMDIChild == TRUE), _T("Always maximize MDI child windows"), idMaximizeMDIChild)); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Tabs on top"), (_variant_t) (theApp.m_Options.m_bTabsOnTop == TRUE), _T("Show MDI tabs on top"), idTabsOnTop)); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Active tab \"Close\" button"), (_variant_t) (theApp.m_Options.m_bActiveTabCloseButton == TRUE), _T("Show \"Close\" button on the active tab right side"), idActiveTabCloseButton)); CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty (_T("MDI Tabs style"), _T(""), _T("One of: VS.NET, OneNote or Visual Studio 2005"), idTabsStyle); for (i = 0; lpszStyles [i] != NULL; i++) { pProp->AddOption (lpszStyles [i]); } switch (theApp.m_Options.m_nTabsStyle) { case CMFCTabCtrl::STYLE_3D_SCROLLED: pProp->SetValue (lpszStyles [0]); break; case CMFCTabCtrl::STYLE_3D_ONENOTE: pProp->SetValue (lpszStyles [1]); break; case CMFCTabCtrl::STYLE_3D_VS2005: pProp->SetValue (lpszStyles [2]); break; } pProp->AllowEdit (FALSE); m_wndPropList.AddProperty (pProp); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Tabs auto-color"), (_variant_t) (theApp.m_Options.m_bTabsAutoColor == TRUE), _T("Set MDI tabs automatic color"), idTabsAutoColor)); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Tab icons"), (_variant_t) (theApp.m_Options.m_bMDITabsIcons == TRUE), _T("Show document icons on MDI tabs"), idMDITabsIcons)); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Tabs document menu"), (_variant_t) (theApp.m_Options.m_bMDITabsDocMenu == TRUE), _T("Show menu with a list of opened documents"), idMDITabsDocMenu)); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Drag tabs"), (_variant_t) (theApp.m_Options.m_bDragMDITabs == TRUE), _T("Enable MDI tabs order changing"), idDragMDITabs)); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Context Menu"), (_variant_t) (theApp.m_Options.m_bMDITabsContextMenu == TRUE), _T("Enable MDI tabs context menu"), idMDITabsContextMenu)); CMFCPropertyGridProperty* pBorderProp = new CMFCPropertyGridProperty (_T("Border Size"), (_variant_t) ((short) theApp.m_Options.m_nMDITabsBorderSize), _T("Set MDI border"), idMDITabsBorderSize); pBorderProp->EnableSpinControl (TRUE, 0, 10); m_wndPropList.AddProperty (pBorderProp); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("No optimize MDI child redraw"), (_variant_t) (theApp.m_Options.m_bDisableMDIChildRedraw == TRUE), _T("Disable MDI Child redraw optimization"), idDisableMDIChildRedraw)); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Flat Frame"), (_variant_t) (theApp.m_Options.m_bFlatFrame == TRUE), _T("Enable or disable 3D frame around MDI client area"), idFlatFrame)); m_wndPropList.AddProperty (new CMFCPropertyGridProperty (_T("Custom Tooltips"), (_variant_t) (theApp.m_Options.m_bCustomTooltips == TRUE), _T("Enable MDI tabs custom tooltips"), idCustomTooltips)); SetPropState (); return 0; }
void CPropertiesWnd::InitPropList() { SetPropListFont(); m_wndPropList.EnableHeaderCtrl(FALSE); m_wndPropList.EnableDescriptionArea(); m_wndPropList.SetVSDotNetLook(); m_wndPropList.MarkModifiedProperties(); CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("Appearance")); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("3D Look"), (_variant_t) false, _T("Specifies the window's font will be non-bold and controls will have a 3D border"))); CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("Border"), _T("Dialog Frame"), _T("One of: None, Thin, Resizable, or Dialog Frame")); pProp->AddOption(_T("None")); pProp->AddOption(_T("Thin")); pProp->AddOption(_T("Resizable")); pProp->AddOption(_T("Dialog Frame")); pProp->AllowEdit(FALSE); pGroup1->AddSubItem(pProp); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Caption"), (_variant_t) _T("About"), _T("Specifies the text that will be displayed in the window's title bar"))); m_wndPropList.AddProperty(pGroup1); CMFCPropertyGridProperty* pSize = new CMFCPropertyGridProperty(_T("Window Size"), 0, TRUE); pProp = new CMFCPropertyGridProperty(_T("Height"), (_variant_t) 250l, _T("Specifies the window's height")); pProp->EnableSpinControl(TRUE, 50, 300); pSize->AddSubItem(pProp); pProp = new CMFCPropertyGridProperty( _T("Width"), (_variant_t) 150l, _T("Specifies the window's width")); pProp->EnableSpinControl(TRUE, 50, 200); pSize->AddSubItem(pProp); m_wndPropList.AddProperty(pSize); CMFCPropertyGridProperty* pGroup2 = new CMFCPropertyGridProperty(_T("Font")); LOGFONT lf; CFont* font = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT)); font->GetLogFont(&lf); _tcscpy_s(lf.lfFaceName, _T("Arial")); pGroup2->AddSubItem(new CMFCPropertyGridFontProperty(_T("Font"), lf, CF_EFFECTS | CF_SCREENFONTS, _T("Specifies the default font for the window"))); pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("Use System Font"), (_variant_t) true, _T("Specifies that the window uses MS Shell Dlg font"))); m_wndPropList.AddProperty(pGroup2); CMFCPropertyGridProperty* pGroup3 = new CMFCPropertyGridProperty(_T("Misc")); pProp = new CMFCPropertyGridProperty(_T("(Name)"), _T("Application")); pProp->Enable(FALSE); pGroup3->AddSubItem(pProp); CMFCPropertyGridColorProperty* pColorProp = new CMFCPropertyGridColorProperty(_T("Window Color"), RGB(210, 192, 254), NULL, _T("Specifies the default window color")); pColorProp->EnableOtherButton(_T("Other...")); pColorProp->EnableAutomaticButton(_T("Default"), ::GetSysColor(COLOR_3DFACE)); pGroup3->AddSubItem(pColorProp); static const TCHAR szFilter[] = _T("Icon Files(*.ico)|*.ico|All Files(*.*)|*.*||"); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("Icon"), TRUE, _T(""), _T("ico"), 0, szFilter, _T("Specifies the window icon"))); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("Folder"), _T("c:\\"))); m_wndPropList.AddProperty(pGroup3); CMFCPropertyGridProperty* pGroup4 = new CMFCPropertyGridProperty(_T("Hierarchy")); CMFCPropertyGridProperty* pGroup41 = new CMFCPropertyGridProperty(_T("First sub-level")); pGroup4->AddSubItem(pGroup41); CMFCPropertyGridProperty* pGroup411 = new CMFCPropertyGridProperty(_T("Second sub-level")); pGroup41->AddSubItem(pGroup411); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Item 1"), (_variant_t) _T("Value 1"), _T("This is a description"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Item 2"), (_variant_t) _T("Value 2"), _T("This is a description"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Item 3"), (_variant_t) _T("Value 3"), _T("This is a description"))); pGroup4->Expand(FALSE); m_wndPropList.AddProperty(pGroup4); }
LRESULT CLegoBrickPropertiesWnd::OnPropertyChanged (WPARAM,LPARAM lParam) { CMFCPropertyGridProperty* pProp = (CMFCPropertyGridProperty*) lParam; //do something CMainFrame* pFrame = (CMainFrame*) AfxGetMainWnd(); HTREEITEM hSelected = pFrame->GetClassView()->GetTreeView()->GetSelectedItem(); LBInfoNode* pBrickNode = (LBInfoNode*)pFrame->GetClassView()->GetTreeView()->GetItemData(hSelected); CString str; if (pProp == pPropType) { CString strType = (LPCTSTR)(_bstr_t)pProp->GetValue(); for (int i=0; i<NUMOFBRICKTYPE; i++) { if (strType == strmap[i].str) pBrickNode->bi.brick.type = strmap[i].bt; } int idxImage, idxSelImage; CViewTree* pTreeCtrl = pFrame->GetClassView()->GetTreeView(); pTreeCtrl->GetItemImage(hSelected, idxImage, idxSelImage); DWORD_PTR data = pTreeCtrl->GetItemData(hSelected); str = pFrame->GetClassView()->MakeLegoBrickString(&(pBrickNode->bi)); HTREEITEM hNewItem; // notype if (pBrickNode->bi.brick.type == NOTYPE) { hNewItem = pTreeCtrl->InsertItem(str, idxImage, idxSelImage, TVI_ROOT, TVI_LAST); pTreeCtrl->SetItemData(hNewItem, data); } // one row brick else if (pBrickNode->bi.brick.type >= ONE_BY_ONE && pBrickNode->bi.brick.type <= ONE_BY_TWELVE) { hNewItem = pTreeCtrl->InsertItem(str, idxImage, idxSelImage, pFrame->GetClassView()->hRoot1, TVI_SORT); pTreeCtrl->SetItemData(hNewItem, data); pTreeCtrl->Expand(pFrame->GetClassView()->hRoot1, TVE_EXPAND); } // two row brick else { hNewItem = pTreeCtrl->InsertItem(str, idxImage, idxSelImage, pFrame->GetClassView()->hRoot2, TVI_SORT); pTreeCtrl->SetItemData(hNewItem, data); pTreeCtrl->Expand(pFrame->GetClassView()->hRoot2, TVE_EXPAND); } pTreeCtrl->DeleteItem(hSelected); pTreeCtrl->SelectItem(hNewItem); // pFrame->GetClassView()->GetTreeView()->SetItemText(hSelected, str); } if (pProp == pPropColor) { // pBrickNode->bi.brick.color = ((CMFCPropertyGridColorProperty*)pProp)->GetColor(); pBrickNode->bi.brick.color = ((CPHPropertyGridColorProperty*)pProp)->GetColor(); // Get LEGO Color, if NULL -> Not a LEGO color pBrickNode->bi.brick.pLegoColor = ((CPHPropertyGridColorProperty*)pProp)->GetLegoColor(); CBitmap bmp; BYTE bits[960]; // typedef unsigned char BTTE; 4*16*15 = 960 BYTE bits2[960]; // for selected pFrame->GetClassView()->BuildTwoBitsBlocks(pBrickNode->bi.brick.color, bits, bits2); bmp.CreateBitmap(16, 15, 1, 32, bits /*Points to a short-integer array */); int idxImage, idxSelImage; pFrame->GetClassView()->GetTreeView()->GetItemImage(hSelected, idxImage, idxSelImage); pFrame->GetClassView()->GetImageList()->Replace(idxImage, &bmp, NULL); bmp.SetBitmapBits(960, bits2); pFrame->GetClassView()->GetImageList()->Replace(idxSelImage, &bmp, NULL); pFrame->GetClassView()->GetTreeView()->SetImageList( pFrame->GetClassView()->GetImageList(), TVSIL_NORMAL); str = pFrame->GetClassView()->MakeLegoBrickString(&(pBrickNode->bi)); pFrame->GetClassView()->GetTreeView()->SetItemText(hSelected, str); } if (pProp == pPropNum) { pBrickNode->bi.numBricks = (int) pProp->GetValue().intVal; str = pFrame->GetClassView()->MakeLegoBrickString(&(pBrickNode->bi)); pFrame->GetClassView()->GetTreeView()->SetItemText(hSelected, str); } if (&(pBrickNode->bi) != NULL) pBrickNode->bi.brick.SetID(); return 0; }
void CLegoBrickPropertiesWnd::Update() { m_wndPropList.RemoveAll(); CMainFrame* pFrame = (CMainFrame*) AfxGetMainWnd(); HTREEITEM hSelected = pFrame->GetClassView()->GetTreeView()->GetSelectedItem(); if (hSelected == NULL) { m_wndPropList.RedrawWindow(); return; } CString str = pFrame->GetClassView()->GetTreeView()->GetItemText(hSelected); CString str1 = pFrame->GetClassView()->GetTreeView()->GetItemText(pFrame->GetClassView()->hRoot1); CString str2 = pFrame->GetClassView()->GetTreeView()->GetItemText(pFrame->GetClassView()->hRoot2); if (str == str1 || str == str2) { m_wndPropList.RedrawWindow(); return; } LBInfoNode* pBrickNode = (LBInfoNode*)pFrame->GetClassView()->GetTreeView()->GetItemData(hSelected); BricksInfo* pBrick = &(pBrickNode->bi); CMFCPropertyGridProperty* pG = new CMFCPropertyGridProperty(_T("Lego")); pGroup = pG; int i; for (i=0; i<NUMOFBRICKTYPE; i++) { if (strmap[i].bt == pBrick->brick.type) break; } CMFCPropertyGridProperty* pT = new CMFCPropertyGridProperty(_T("brick type"), strmap[i].str, _T("brick type")); pPropType = pT; for (i=0; i<NUMOFBRICKTYPE; i++) pT->AddOption(strmap[i].str, TRUE); //TRUE to add the list item only if it does not already exist; // CClientDC dc(&m_wndPropList); // pT->OnDrawValue(&dc, NULL); pT->AllowEdit(FALSE); pG->AddSubItem(pT); /* // CMFCPropertyGridColorProperty *pC = new CMFCPropertyGridColorProperty(_T("Color"), RGB(255, 0, 0), NULL, _T("set LEGO brick color")); CMFCPropertyGridColorProperty *pC = new CMFCPropertyGridColorProperty(_T("Color"), pBrick->brick.color, NULL, _T("set LEGO brick color")); pPropColor = pC; // pC->AddOption(_T("Lego Color"), TRUE); // no use pC->EnableOtherButton(_T("Other color")); // pC->EnableAutomaticButton(_T("Default"), ::GetSysColor(COLOR_3DFACE)); pC->SetColor(RGB(255,0,0)); pC->SetColumnsNumber(6); // pPropColor->EnableAutomaticButton(_T("預設"), ::GetSysColor(COLOR_3DFACE)); pG->AddSubItem(pC); */ CPHPropertyGridColorProperty *pPH; if (pBrick->brick.pLegoColor != NULL) pPH = new CPHPropertyGridColorProperty(_T("Color"), pBrick->brick.pLegoColor->rgb); else pPH = new CPHPropertyGridColorProperty(_T("Color"), pBrick->brick.color); pPropColor = pPH; pG->AddSubItem(pPH); CMFCPropertyGridProperty *pN = new CMFCPropertyGridProperty(_T("num bricks"), (_variant_t) pBrick->numBricks, _T("number of bricks: -1 for unlimited")); pPropNum = pN; pG->AddSubItem(pN); m_wndPropList.AddProperty(pG); // m_wndPropList.RedrawWindow(); return; }
void CPropertiesWnd::InitPropList() { SetPropListFont(); m_wndPropList.EnableHeaderCtrl(FALSE); m_wndPropList.EnableDescriptionArea(); m_wndPropList.SetVSDotNetLook(); m_wndPropList.MarkModifiedProperties(); CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("图像属性"));//图像属性 m_filename = new CMFCPropertyGridProperty(_T("文件名"), (_variant_t) _T(""), _T("文件名")); m_filename->AllowEdit(FALSE); pGroup1->AddSubItem(m_filename); CMFCPropertyGridProperty* pGroupSize = new CMFCPropertyGridProperty(_T("图像大小"), 0, TRUE); pProp_w = new CMFCPropertyGridProperty(_T("高度"), _T("")); pProp_w ->AllowEdit(FALSE); pGroupSize->AddSubItem(pProp_w); pProp_h = new CMFCPropertyGridProperty( _T("宽度"), _T("")); pProp_h ->AllowEdit(FALSE); pGroupSize->AddSubItem(pProp_h); pGroupSize->AllowEdit(FALSE); pGroup1->AddSubItem(pGroupSize); m_XXS = new CMFCPropertyGridProperty( _T("信息熵"), _T("")); m_XXS ->AllowEdit(FALSE); m_XXS->Show(FALSE,TRUE); m_SNR = new CMFCPropertyGridProperty( _T("信噪比"), _T("")); m_SNR ->AllowEdit(FALSE); m_SNR->Show(FALSE,TRUE); m_MAG = new CMFCPropertyGridProperty( _T("平均梯度"), _T("")); m_MAG ->AllowEdit(FALSE); m_MAG->Show(FALSE,TRUE); m_GRAY = new CMFCPropertyGridProperty( _T("平均灰度"), _T("")); m_GRAY ->AllowEdit(FALSE); m_GRAY->Show(FALSE,TRUE); m_IAC = new CMFCPropertyGridProperty( _T("平均对比度"), _T("")); m_IAC ->AllowEdit(FALSE); m_IAC->Show(FALSE,TRUE); m_SAR = new CMFCPropertyGridProperty( _T("灰度方差"), _T("")); m_SAR ->AllowEdit(FALSE); m_SAR->Show(FALSE,TRUE); m_EME = new CMFCPropertyGridProperty( _T("图像增强测量"), _T("")); m_EME ->AllowEdit(FALSE); m_EME->Show(FALSE,TRUE); m_TMQI = new CMFCPropertyGridProperty( _T("色阶保真度"), _T("")); m_TMQI ->AllowEdit(FALSE); m_TMQI->Show(FALSE,TRUE); pGroup1->AddSubItem(m_XXS); pGroup1->AddSubItem(m_SNR); pGroup1->AddSubItem(m_MAG); pGroup1->AddSubItem(m_GRAY); pGroup1->AddSubItem(m_IAC); pGroup1->AddSubItem(m_SAR); pGroup1->AddSubItem(m_EME); pGroup1->AddSubItem(m_TMQI); m_wndPropList.AddProperty(pGroup1); }
void CPropertiesWnd::InitPropList() { SetPropListFont(); m_wndPropList.EnableHeaderCtrl(FALSE); m_wndPropList.EnableDescriptionArea(); m_wndPropList.SetVSDotNetLook(); m_wndPropList.MarkModifiedProperties(); CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("外观")); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("三维外观"), (_variant_t) false, _T("指定窗口的字体不使用粗体,并且控件将使用三维边框"))); CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("边框"), _T("对话框外框"), _T("其中之一: “无”、“细”、“可调整大小”或“对话框外框”")); pProp->AddOption(_T("无")); pProp->AddOption(_T("细")); pProp->AddOption(_T("可调整大小")); pProp->AddOption(_T("对话框外框")); pProp->AllowEdit(FALSE); pGroup1->AddSubItem(pProp); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("标题"), (_variant_t) _T("关于"), _T("指定窗口标题栏中显示的文本"))); m_wndPropList.AddProperty(pGroup1); CMFCPropertyGridProperty* pSize = new CMFCPropertyGridProperty(_T("窗口大小"), 0, TRUE); pProp = new CMFCPropertyGridProperty(_T("高度"), (_variant_t) 250l, _T("指定窗口的高度")); pProp->EnableSpinControl(TRUE, 50, 300); pSize->AddSubItem(pProp); pProp = new CMFCPropertyGridProperty( _T("宽度"), (_variant_t) 150l, _T("指定窗口的宽度")); pProp->EnableSpinControl(TRUE, 50, 200); pSize->AddSubItem(pProp); m_wndPropList.AddProperty(pSize); CMFCPropertyGridProperty* pGroup2 = new CMFCPropertyGridProperty(_T("字体")); LOGFONT lf; CFont* font = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT)); font->GetLogFont(&lf); lstrcpy(lf.lfFaceName, _T("宋体, Arial")); pGroup2->AddSubItem(new CMFCPropertyGridFontProperty(_T("字体"), lf, CF_EFFECTS | CF_SCREENFONTS, _T("指定窗口的默认字体"))); pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("使用系统字体"), (_variant_t) true, _T("指定窗口使用“MS Shell Dlg”字体"))); m_wndPropList.AddProperty(pGroup2); CMFCPropertyGridProperty* pGroup3 = new CMFCPropertyGridProperty(_T("杂项")); pProp = new CMFCPropertyGridProperty(_T("(名称)"), _T("应用程序")); pProp->Enable(FALSE); pGroup3->AddSubItem(pProp); CMFCPropertyGridColorProperty* pColorProp = new CMFCPropertyGridColorProperty(_T("窗口颜色"), RGB(210, 192, 254), NULL, _T("指定默认的窗口颜色")); pColorProp->EnableOtherButton(_T("其他...")); pColorProp->EnableAutomaticButton(_T("默认"), ::GetSysColor(COLOR_3DFACE)); pGroup3->AddSubItem(pColorProp); static const TCHAR szFilter[] = _T("图标文件(*.ico)|*.ico|所有文件(*.*)|*.*||"); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("图标"), TRUE, _T(""), _T("ico"), 0, szFilter, _T("指定窗口图标"))); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("文件夹"), _T("c:\\"))); m_wndPropList.AddProperty(pGroup3); CMFCPropertyGridProperty* pGroup4 = new CMFCPropertyGridProperty(_T("层次结构")); CMFCPropertyGridProperty* pGroup41 = new CMFCPropertyGridProperty(_T("第一个子级")); pGroup4->AddSubItem(pGroup41); CMFCPropertyGridProperty* pGroup411 = new CMFCPropertyGridProperty(_T("第二个子级")); pGroup41->AddSubItem(pGroup411); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("项 1"), (_variant_t) _T("值 1"), _T("此为说明"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("项 2"), (_variant_t) _T("值 2"), _T("此为说明"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("项 3"), (_variant_t) _T("值 3"), _T("此为说明"))); pGroup4->Expand(FALSE); m_wndPropList.AddProperty(pGroup4); }
BOOL CDlgOMLEditOption::OnInitDialog() { CResizablePage::OnInitDialog(); // TODO: 在此添加额外的初始化 if(m_wndPropertyGrid.GetSafeHwnd() == 0) { if (!m_wndPropertyGrid.Create(WS_VISIBLE | WS_CHILD, CRect(0, 0, 0, 0), this, 2)) { TRACE0("未能创建属性网格\n"); return FALSE; // 未能创建 } m_wndPropertyGrid.SetOwner(this); m_wndPropertyGrid.EnableHeaderCtrl(FALSE); m_wndPropertyGrid.EnableDescriptionArea(); m_wndPropertyGrid.SetVSDotNetLook(); m_wndPropertyGrid.MarkModifiedProperties(); //设置输入提示路径 CMFCPropertyGridProperty* pPropertyHintFile = new CMFCPropertyGridProperty(_T("编辑配置文件")); static TCHAR BASED_CODE szFilter[] = _T("提示文件(*.ohc)|*.ohc|所有文件(*.*)|*.*||"); CMFCPropertyGridFileProperty* pPropertySyntaxWordFileName= new CMFCPropertyGridFileProperty(_T("语法字文件"), TRUE, _T(""), _T("ohc"), 0, szFilter, _T("语法字配置文件")); pPropertySyntaxWordFileName->SetValue(COleVariant(m_strOMLSyntaxWordFileName)); pPropertyHintFile->AddSubItem(pPropertySyntaxWordFileName); CMFCPropertyGridFileProperty* pPropertySelectionListFile = new CMFCPropertyGridFileProperty(_T("选择列表文件"), TRUE, _T(""), _T("ohc"), 0, szFilter, _T("选择列表配置文件")); pPropertySelectionListFile->SetValue(COleVariant(m_strOMLSelectionListFileName)); pPropertyHintFile->AddSubItem(pPropertySelectionListFile); pPropertyHintFile->AddSubItem(new CMFCPropertyGridFileProperty(_T("模板文件目录"), m_strOMLTempletDir,0,_T("代码模板文件所在的目录"))); CMFCPropertyGridFileProperty* pPropertyAutoCompleteFile = new CMFCPropertyGridFileProperty(_T("输入提示文件"), TRUE, _T(""), _T("ohc"), 0, szFilter, _T("输入自动完成提示配置文件")); pPropertyAutoCompleteFile->SetValue(COleVariant(m_strOMLAutoCompleteFileName)); pPropertyHintFile->AddSubItem(pPropertyAutoCompleteFile); CMFCPropertyGridFileProperty* pPropertyTipFile = new CMFCPropertyGridFileProperty(_T("提示信息文件"), TRUE, _T(""), _T("ohc"), 0, szFilter, _T("提示信息配置文件")); pPropertyTipFile->SetValue(COleVariant(m_strOMLTipFileName)); pPropertyHintFile->AddSubItem(pPropertyTipFile); m_wndPropertyGrid.AddProperty(pPropertyHintFile); COLORREF colorDefaultBackGround = ::GetSysColor(COLOR_WINDOW); COLORREF colorDefaultText = ::GetSysColor(COLOR_WINDOWTEXT); //设置语法颜色 CMFCPropertyGridProperty* pPropertySyntaxHighLight = new CMFCPropertyGridProperty(_T("语法着色")); CMFCPropertyGridColorProperty* pPropColor = NULL; #define SyntaxHighLightAddSubItem(name,color,default_color,description) \ pPropColor = new CMFCPropertyGridColorProperty(name, color, NULL, description); \ pPropColor->EnableOtherButton(_T("其他...")); \ pPropColor->EnableAutomaticButton(_T("默认"), default_color); \ pPropertySyntaxHighLight->AddSubItem(pPropColor); SyntaxHighLightAddSubItem((_T("背景颜色")), m_colorBackGround, (colorDefaultBackGround),(_T("默认的背景颜色"))); SyntaxHighLightAddSubItem((_T("文本颜色")), m_colorText, (colorDefaultText), (_T("默认的文本颜色"))); SyntaxHighLightAddSubItem((_T("注释行颜色")), m_colorCommentLine, (RGB(0x00, 0x80, 0x00)), (_T("注释行的文本颜色"))); SyntaxHighLightAddSubItem((_T("注释块颜色")), m_colorCommentBlock, (RGB(0x00, 0x80, 0x00)), (_T("注释块的文本颜色"))); SyntaxHighLightAddSubItem((_T("数字颜色")), m_colorDigital, (RGB(0x00, 0x80, 0x80)), (_T("数字字符的颜色"))); SyntaxHighLightAddSubItem((_T("单字符颜色")), m_colorChar, (RGB(0xC0, 0x20, 0x00)), (_T("单字符的颜色"))); SyntaxHighLightAddSubItem((_T("字符串颜色")), m_colorString, (RGB(0xC0, 0x20, 0x00)), (_T("字符串的颜色"))); SyntaxHighLightAddSubItem((_T("关键字")), m_colorKeyWord, (RGB(0x25, 0x09, 0xF3)), (_T("定义字的颜色"))); SyntaxHighLightAddSubItem((_T("宏标识符颜色")), m_colorMacro, (RGB(0x80, 0x00, 0x39)), (_T("宏标识符的颜色"))); SyntaxHighLightAddSubItem((_T("操作符颜色")), m_colorOperator, (RGB(0x80, 0x80, 0x00)), (_T("操作符的颜色"))); #undef SyntaxHighLightAddSubItem m_wndPropertyGrid.AddProperty(pPropertySyntaxHighLight); //字体 CMFCPropertyGridProperty* pPropertyFont = new CMFCPropertyGridProperty(_T("字体")); pPropertyFont->AddSubItem(new CMFCPropertyGridFontProperty(_T("文本字体"), m_lfTextFont, CF_EFFECTS | CF_SCREENFONTS, _T("指定文本字体"))); m_wndPropertyGrid.AddProperty(pPropertyFont); //左边附加栏 CMFCPropertyGridProperty* pPropertyExtraColumn = new CMFCPropertyGridProperty(_T("附加栏")); pPropertyExtraColumn->AddSubItem(new CMFCPropertyGridProperty(_T("显示行号"), (_variant_t)(m_bShowLineNumber?true:false), _T("显示行号"))); pPropertyExtraColumn->AddSubItem(new CMFCPropertyGridProperty(_T("显示书签"), (_variant_t)(m_bShowBookMarker?true:false), _T("显示书签栏"))); pPropertyExtraColumn->AddSubItem(new CMFCPropertyGridProperty(_T("显示折叠"), (_variant_t)(m_bShowFold?true:false), _T("显示折叠栏"))); m_wndPropertyGrid.AddProperty(pPropertyExtraColumn); //保存 CMFCPropertyGridProperty* pPropertySave = new CMFCPropertyGridProperty(_T("保存")); pPropertySave->AddSubItem(new CMFCPropertyGridProperty(_T("自动保存"), (_variant_t)(m_bAutoSave?true:false), _T("文档被修改后10秒自动保存"))); m_wndPropertyGrid.AddProperty(pPropertySave); } return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE }
void CPropertiesWnd::InitPropList() { SetPropListFont(); m_wndPropList.EnableHeaderCtrl(FALSE); m_wndPropList.EnableDescriptionArea(); m_wndPropList.SetVSDotNetLook(); m_wndPropList.MarkModifiedProperties(); CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("表示")); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("3D 表示"), (_variant_t) false, _T("ウィンドウのフォントが太字以外になり、また、コントロールが 3D ボーダーで描画されます"))); CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("罫線"), _T("ダイアログ枠"), _T("次のうちのどれかです : なし、細枠、サイズ変更可能枠、ダイアログ枠")); pProp->AddOption(_T("なし")); pProp->AddOption(_T("細枠")); pProp->AddOption(_T("サイズ変更可能枠")); pProp->AddOption(_T("ダイアログ枠")); pProp->AllowEdit(FALSE); pGroup1->AddSubItem(pProp); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("キャプション"), (_variant_t) _T("バージョン情報"), _T("ウィンドウのタイトル バーに表示されるテキストを指定します"))); m_wndPropList.AddProperty(pGroup1); CMFCPropertyGridProperty* pSize = new CMFCPropertyGridProperty(_T("ウィンドウ サイズ"), 0, TRUE); pProp = new CMFCPropertyGridProperty(_T("高さ"), (_variant_t) 250l, _T("ウィンドウの高さを指定します")); pProp->EnableSpinControl(TRUE, 50, 300); pSize->AddSubItem(pProp); pProp = new CMFCPropertyGridProperty( _T("幅"), (_variant_t) 150l, _T("ウィンドウの幅を指定します")); pProp->EnableSpinControl(TRUE, 50, 200); pSize->AddSubItem(pProp); m_wndPropList.AddProperty(pSize); CMFCPropertyGridProperty* pGroup2 = new CMFCPropertyGridProperty(_T("フォント")); LOGFONT lf; CFont* font = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT)); font->GetLogFont(&lf); lstrcpy(lf.lfFaceName, _T("MS Pゴシック")); pGroup2->AddSubItem(new CMFCPropertyGridFontProperty(_T("フォント"), lf, CF_EFFECTS | CF_SCREENFONTS, _T("ウィンドウの既定フォントを指定します"))); pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("システム フォントを使用する"), (_variant_t) true, _T("ウィンドウで MS Shell Dlg フォントを使用するように指定します"))); m_wndPropList.AddProperty(pGroup2); CMFCPropertyGridProperty* pGroup3 = new CMFCPropertyGridProperty(_T("その他")); pProp = new CMFCPropertyGridProperty(_T("(名前)"), _T("アプリケーション")); pProp->Enable(FALSE); pGroup3->AddSubItem(pProp); CMFCPropertyGridColorProperty* pColorProp = new CMFCPropertyGridColorProperty(_T("ウィンドウの色"), RGB(210, 192, 254), NULL, _T("ウィンドウの既定の色を指定します")); pColorProp->EnableOtherButton(_T("その他...")); pColorProp->EnableAutomaticButton(_T("既定値"), ::GetSysColor(COLOR_3DFACE)); pGroup3->AddSubItem(pColorProp); static const TCHAR szFilter[] = _T("アイコン ファイル (*.ico)|*.ico|すべてのファイル (*.*)|*.*||"); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("アイコン"), TRUE, _T(""), _T("ico"), 0, szFilter, _T("ウィンドウ アイコンを指定します"))); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("フォルダー"), _T("c:\\"))); m_wndPropList.AddProperty(pGroup3); CMFCPropertyGridProperty* pGroup4 = new CMFCPropertyGridProperty(_T("階層")); CMFCPropertyGridProperty* pGroup41 = new CMFCPropertyGridProperty(_T("1 番目のサブレベル")); pGroup4->AddSubItem(pGroup41); CMFCPropertyGridProperty* pGroup411 = new CMFCPropertyGridProperty(_T("2 番目のサブレベル")); pGroup41->AddSubItem(pGroup411); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("項目 1"), (_variant_t) _T("値 1"), _T("これは説明です"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("項目 2"), (_variant_t) _T("値 2"), _T("これは説明です"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("項目 3"), (_variant_t) _T("値 3"), _T("これは説明です"))); pGroup4->Expand(FALSE); m_wndPropList.AddProperty(pGroup4); }
void CDlgOMLEditOption::GetOption() { if(m_wndPropertyGrid.GetSafeHwnd()) { CMFCPropertyGridProperty* pPropertyHintFile = m_wndPropertyGrid.GetProperty(0); m_strOMLSyntaxWordFileName = (CString)pPropertyHintFile->GetSubItem(0)->GetValue(); m_strOMLSelectionListFileName = (CString)pPropertyHintFile->GetSubItem(1)->GetValue(); m_strOMLTempletDir = (CString)pPropertyHintFile->GetSubItem(2)->GetValue(); m_strOMLAutoCompleteFileName = (CString)pPropertyHintFile->GetSubItem(3)->GetValue(); m_strOMLTipFileName = (CString)pPropertyHintFile->GetSubItem(4)->GetValue(); CMFCPropertyGridProperty* pPropertySyntaxHighLight = m_wndPropertyGrid.GetProperty(1); CMFCPropertyGridColorProperty* pPropColor = 0; pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(0); m_colorBackGround = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(1); m_colorText = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(2); m_colorCommentLine = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(3); m_colorCommentBlock = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(4); m_colorDigital = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(5); m_colorChar = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(6); m_colorString = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(7); m_colorKeyWord = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(8); m_colorMacro = pPropColor->GetColor(); pPropColor = (CMFCPropertyGridColorProperty*)pPropertySyntaxHighLight->GetSubItem(9); m_colorOperator = pPropColor->GetColor(); //字体 CMFCPropertyGridProperty* pPropertyFont = m_wndPropertyGrid.GetProperty(2); CMFCPropertyGridFontProperty* pPropertyFontTtem = (CMFCPropertyGridFontProperty*)pPropertyFont->GetSubItem(0); m_lfTextFont = *pPropertyFontTtem->GetLogFont(); //左边附加栏 CMFCPropertyGridProperty* pPropertyExtraColumn = m_wndPropertyGrid.GetProperty(3); m_bShowLineNumber = (_variant_t)pPropertyExtraColumn->GetSubItem(0)->GetValue(); m_bShowBookMarker = (_variant_t)pPropertyExtraColumn->GetSubItem(1)->GetValue(); m_bShowFold = (_variant_t)pPropertyExtraColumn->GetSubItem(2)->GetValue(); //左边附加栏 CMFCPropertyGridProperty* pPropertySave = m_wndPropertyGrid.GetProperty(4); m_bAutoSave = (_variant_t)pPropertySave->GetSubItem(0)->GetValue(); } }
void CPropertiesWnd::InitPropList() { SetPropListFont(); m_wndPropList.EnableHeaderCtrl(FALSE); m_wndPropList.EnableDescriptionArea(); m_wndPropList.SetVSDotNetLook(); m_wndPropList.MarkModifiedProperties(); CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("Basic Info")); m_CommitHash = new CMFCPropertyGridProperty( _T("Commit Hash"), _T(""), _T("Commit Hash") ); pGroup1->AddSubItem(m_CommitHash); m_AuthorName = new CMFCPropertyGridProperty( _T("Author"), _T(""), _T("Author") ); pGroup1->AddSubItem(m_AuthorName); m_AuthorDate = new CMFCPropertyGridProperty( _T("Author Date"), _T(""), _T("Author Date") ); pGroup1->AddSubItem(m_AuthorDate); m_AuthorEmail= new CMFCPropertyGridProperty( _T("Author Email"), _T(""), _T("Author Email") ); pGroup1->AddSubItem(m_AuthorEmail); m_CommitterName = new CMFCPropertyGridProperty( _T("Committer Name"), _T(""), _T("Committer Name") ); pGroup1->AddSubItem(m_CommitterName); m_CommitterEmail =new CMFCPropertyGridProperty( _T("Committer Email"), _T(""), _T("Committer Email") ); pGroup1->AddSubItem(m_CommitterEmail); m_CommitterDate = new CMFCPropertyGridProperty( _T("Committer Date"), _T(""), _T("Committer Date") );; pGroup1->AddSubItem(m_CommitterDate); m_Subject = new CMFCPropertyGridProperty( _T("Subject"), _T(""), _T("Subject") );;; pGroup1->AddSubItem(m_Subject); m_Body = new CMFCPropertyGridProperty( _T("Body"), _T(""), _T("Body") );;;; pGroup1->AddSubItem(m_Body); for(int i=0;i<pGroup1->GetSubItemsCount();i++) { pGroup1->GetSubItem(i)->AllowEdit(FALSE); } //std::vector<CMFCPropertyGridProperty*> m_ParentHash; //std::vector<CMFCPropertyGridProperty*> m_ParentSubject; m_wndPropList.AddProperty(pGroup1); m_BaseInfoGroup=pGroup1; m_ParentGroup=new CMFCPropertyGridProperty(_T("Parent")); m_wndPropList.AddProperty(m_ParentGroup); #if 0 pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Caption"), (_variant_t) _T("About"), _T("Specifies the text that will be displayed in the window's title bar"))); CMFCPropertyGridProperty* pSize = new CMFCPropertyGridProperty(_T("Window Size"), 0, TRUE); pProp = new CMFCPropertyGridProperty(_T("Height"), (_variant_t) 250l, _T("Specifies the window's height")); pProp->EnableSpinControl(TRUE, 0, 1000); pSize->AddSubItem(pProp); pProp = new CMFCPropertyGridProperty( _T("Width"), (_variant_t) 150l, _T("Specifies the window's width")); pProp->EnableSpinControl(); pSize->AddSubItem(pProp); m_wndPropList.AddProperty(pSize); CMFCPropertyGridProperty* pGroup2 = new CMFCPropertyGridProperty(_T("Font")); LOGFONT lf; CFont* font = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT)); font->GetLogFont(&lf); lstrcpy(lf.lfFaceName, _T("Arial")); pGroup2->AddSubItem(new CMFCPropertyGridFontProperty(_T("Font"), lf, CF_EFFECTS | CF_SCREENFONTS, _T("Specifies the default font for the window"))); pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("Use System Font"), (_variant_t) true, _T("Specifies that the window uses MS Shell Dlg font"))); m_wndPropList.AddProperty(pGroup2); CMFCPropertyGridProperty* pGroup3 = new CMFCPropertyGridProperty(_T("Misc")); pProp = new CMFCPropertyGridProperty(_T("(Name)"), _T("Application")); pProp->Enable(FALSE); pGroup3->AddSubItem(pProp); CMFCPropertyGridColorProperty* pColorProp = new CMFCPropertyGridColorProperty(_T("Window Color"), RGB(210, 192, 254), NULL, _T("Specifies the default window color")); pColorProp->EnableOtherButton(_T("Other...")); pColorProp->EnableAutomaticButton(_T("Default"), ::GetSysColor(COLOR_3DFACE)); pGroup3->AddSubItem(pColorProp); static TCHAR BASED_CODE szFilter[] = _T("Icon Files(*.ico)|*.ico|All Files(*.*)|*.*||"); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("Icon"), TRUE, _T(""), _T("ico"), 0, szFilter, _T("Specifies the window icon"))); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("Folder"), _T("c:\\"))); m_wndPropList.AddProperty(pGroup3); CMFCPropertyGridProperty* pGroup4 = new CMFCPropertyGridProperty(_T("Hierarchy")); CMFCPropertyGridProperty* pGroup41 = new CMFCPropertyGridProperty(_T("First sub-level")); pGroup4->AddSubItem(pGroup41); CMFCPropertyGridProperty* pGroup411 = new CMFCPropertyGridProperty(_T("Second sub-level")); pGroup41->AddSubItem(pGroup411); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Item 1"), (_variant_t) _T("Value 1"), _T("This is a description"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Item 2"), (_variant_t) _T("Value 2"), _T("This is a description"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Item 3"), (_variant_t) _T("Value 3"), _T("This is a description"))); pGroup4->Expand(FALSE); m_wndPropList.AddProperty(pGroup4); #endif }
void CShaderSrcDoc::ParseVars(VariableElementRef & variable, CMFCPropertyGridProperty * parentProperty) { variable->m_propGroup = parentProperty; switch (variable->m_typeDesc.Class) { case D3D_SVC_SCALAR: { CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("Value"), (_variant_t)0l, _T("")); pProp->EnableSpinControl(TRUE, 0, 0); parentProperty->AddSubItem(pProp); variable->m_lProps.push_back(pProp); } break; case D3D_SVC_VECTOR: { variable->m_propType = new CMFCPropertyGridProperty(_T("Type"), _T("Vector"), _T("")); variable->m_propType->AddOption(_T("Vector")); variable->m_propType->AddOption(_T("Color")); variable->m_propType->AllowEdit(FALSE); parentProperty->AddSubItem(variable->m_propType); const char *fields_names = "XYZW"; for (size_t i= 0; i<variable->m_typeDesc.Columns; ++i) { CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(CString(fields_names[i]), (_variant_t)0l, _T("")); pProp->EnableSpinControl(TRUE, 0, 0); parentProperty->AddSubItem(pProp); variable->m_lProps.push_back(pProp); } } break; case D3D_SVC_MATRIX_ROWS: case D3D_SVC_MATRIX_COLUMNS: break; case D3D_SVC_OBJECT: case D3D_SVC_STRUCT: break; } switch (variable->m_typeDesc.Class) { case D3D_SVT_INT: case D3D_SVT_FLOAT: case D3D_SVT_UINT: case D3D_SVT_UINT8: case D3D_SVT_DOUBLE: break; case D3D_SVT_TEXTURE2D: case D3D_SVT_SAMPLER2D: break; } variable->m_propSource = new CMFCPropertyGridProperty(_T("Source"), _T("Manual"), _T("")); variable->m_propSource->AddOption(_T("Manual")); variable->m_propSource->AddOption(_T("Scenegraph")); variable->m_propSource->AllowEdit(FALSE); parentProperty->AddSubItem(variable->m_propSource); }
void CPropertiesWnd::InitPropList() { SetPropListFont(); m_wndPropList.EnableHeaderCtrl(FALSE); m_wndPropList.EnableDescriptionArea(); m_wndPropList.SetVSDotNetLook(); m_wndPropList.MarkModifiedProperties(); CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("Вид")); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Трехмерный вид"), (_variant_t) false, _T("В окне используется обычный (не жирный) шрифт, а у элементов управления есть визуально трехмерная граница."))); CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("Граница"), _T("Диалоговое окно"), _T("Одно из значений: \"Нет\", \"Тонкая\", \"Изменяемая\" или \"Диалоговое окно\"")); pProp->AddOption(_T("Нет")); pProp->AddOption(_T("Тонкая")); pProp->AddOption(_T("Изменяемая")); pProp->AddOption(_T("Диалоговое окно")); pProp->AllowEdit(FALSE); pGroup1->AddSubItem(pProp); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Заголовок"), (_variant_t) _T("О программе"), _T("Указывает текст, который будет отображаться в строке заголовка окна"))); m_wndPropList.AddProperty(pGroup1); CMFCPropertyGridProperty* pSize = new CMFCPropertyGridProperty(_T("Размер окна"), 0, TRUE); pProp = new CMFCPropertyGridProperty(_T("Высота"), (_variant_t) 250l, _T("Указывает высоту окна")); pProp->EnableSpinControl(TRUE, 50, 300); pSize->AddSubItem(pProp); pProp = new CMFCPropertyGridProperty( _T("Ширина"), (_variant_t) 150l, _T("Указывает ширину окна")); pProp->EnableSpinControl(TRUE, 50, 200); pSize->AddSubItem(pProp); m_wndPropList.AddProperty(pSize); CMFCPropertyGridProperty* pGroup2 = new CMFCPropertyGridProperty(_T("Шрифт")); LOGFONT lf; CFont* font = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT)); font->GetLogFont(&lf); lstrcpy(lf.lfFaceName, _T("Arial")); pGroup2->AddSubItem(new CMFCPropertyGridFontProperty(_T("Шрифт"), lf, CF_EFFECTS | CF_SCREENFONTS, _T("Указывает шрифт окна по умолчанию"))); pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("Использование системного шрифта"), (_variant_t) true, _T("Указывает, что в окне используется шрифт MS Shell Dlg"))); m_wndPropList.AddProperty(pGroup2); CMFCPropertyGridProperty* pGroup3 = new CMFCPropertyGridProperty(_T("Разное")); pProp = new CMFCPropertyGridProperty(_T("(Имя)"), _T("Приложение")); pProp->Enable(FALSE); pGroup3->AddSubItem(pProp); CMFCPropertyGridColorProperty* pColorProp = new CMFCPropertyGridColorProperty(_T("Цвет окна"), RGB(210, 192, 254), NULL, _T("Указывает цвет окна по умолчанию")); pColorProp->EnableOtherButton(_T("Другое...")); pColorProp->EnableAutomaticButton(_T("По умолчанию"), ::GetSysColor(COLOR_3DFACE)); pGroup3->AddSubItem(pColorProp); static const TCHAR szFilter[] = _T("Файлы значков(*.ico)|*.ico|Все файлы(*.*)|*.*||"); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("Значок"), TRUE, _T(""), _T("ico"), 0, szFilter, _T("Указывает значок окна"))); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("Папка"), _T("c:\\"))); m_wndPropList.AddProperty(pGroup3); CMFCPropertyGridProperty* pGroup4 = new CMFCPropertyGridProperty(_T("Иерархия")); CMFCPropertyGridProperty* pGroup41 = new CMFCPropertyGridProperty(_T("Первый подуровень")); pGroup4->AddSubItem(pGroup41); CMFCPropertyGridProperty* pGroup411 = new CMFCPropertyGridProperty(_T("Второй подуровень")); pGroup41->AddSubItem(pGroup411); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Элемент 1"), (_variant_t) _T("Значение 1"), _T("Это описание"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Элемент 2"), (_variant_t) _T("Значение 2"), _T("Это описание"))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("Элемент 3"), (_variant_t) _T("Значение 3"), _T("Это описание"))); pGroup4->Expand(FALSE); m_wndPropList.AddProperty(pGroup4); }
void CPropertiesWnd::InitPropList() { SetPropListFont(); m_wndPropList.EnableHeaderCtrl(FALSE); m_wndPropList.EnableDescriptionArea(); m_wndPropList.SetVSDotNetLook(); m_wndPropList.MarkModifiedProperties(); CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("모양")); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("3D 모양"), (_variant_t) false, _T("창에 굵은 글꼴이 아닌 글꼴을 지정하고, 컨트롤에 3D 테두리를 지정합니다."))); CMFCPropertyGridProperty* pProp = new CMFCPropertyGridProperty(_T("테두리"), _T("Dialog Frame"), _T("None, Thin, Resizable 또는 Dialog Frame 중 하나를 지정합니다.")); pProp->AddOption(_T("None")); pProp->AddOption(_T("Thin")); pProp->AddOption(_T("Resizable")); pProp->AddOption(_T("Dialog Frame")); pProp->AllowEdit(FALSE); pGroup1->AddSubItem(pProp); pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("캡션"), (_variant_t) _T("정보"), _T("창의 제목 표시줄에 표시되는 텍스트를 지정합니다."))); m_wndPropList.AddProperty(pGroup1); CMFCPropertyGridProperty* pSize = new CMFCPropertyGridProperty(_T("창 크기"), 0, TRUE); pProp = new CMFCPropertyGridProperty(_T("높이"), (_variant_t) 250l, _T("창의 높이를 지정합니다.")); pProp->EnableSpinControl(TRUE, 50, 300); pSize->AddSubItem(pProp); pProp = new CMFCPropertyGridProperty( _T("너비"), (_variant_t) 150l, _T("창의 너비를 지정합니다.")); pProp->EnableSpinControl(TRUE, 50, 200); pSize->AddSubItem(pProp); m_wndPropList.AddProperty(pSize); CMFCPropertyGridProperty* pGroup2 = new CMFCPropertyGridProperty(_T("글꼴")); LOGFONT lf; CFont* font = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT)); font->GetLogFont(&lf); lstrcpy(lf.lfFaceName, _T("맑은 고딕")); pGroup2->AddSubItem(new CMFCPropertyGridFontProperty(_T("글꼴"), lf, CF_EFFECTS | CF_SCREENFONTS, _T("창의 기본 글꼴을 지정합니다."))); pGroup2->AddSubItem(new CMFCPropertyGridProperty(_T("시스템 글꼴을 사용합니다."), (_variant_t) true, _T("창에서 MS Shell Dlg 글꼴을 사용하도록 지정합니다."))); m_wndPropList.AddProperty(pGroup2); CMFCPropertyGridProperty* pGroup3 = new CMFCPropertyGridProperty(_T("기타")); pProp = new CMFCPropertyGridProperty(_T("(이름)"), _T("응용 프로그램")); pProp->Enable(FALSE); pGroup3->AddSubItem(pProp); CMFCPropertyGridColorProperty* pColorProp = new CMFCPropertyGridColorProperty(_T("창 색상"), RGB(210, 192, 254), NULL, _T("창의 기본 색상을 지정합니다.")); pColorProp->EnableOtherButton(_T("기타...")); pColorProp->EnableAutomaticButton(_T("기본값"), ::GetSysColor(COLOR_3DFACE)); pGroup3->AddSubItem(pColorProp); static TCHAR BASED_CODE szFilter[] = _T("아이콘 파일(*.ico)|*.ico|모든 파일(*.*)|*.*||"); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("아이콘"), TRUE, _T(""), _T("ico"), 0, szFilter, _T("창 아이콘을 지정합니다."))); pGroup3->AddSubItem(new CMFCPropertyGridFileProperty(_T("폴더"), _T("c:\\"))); m_wndPropList.AddProperty(pGroup3); CMFCPropertyGridProperty* pGroup4 = new CMFCPropertyGridProperty(_T("계층")); CMFCPropertyGridProperty* pGroup41 = new CMFCPropertyGridProperty(_T("첫번째 하위 수준")); pGroup4->AddSubItem(pGroup41); CMFCPropertyGridProperty* pGroup411 = new CMFCPropertyGridProperty(_T("두 번째 하위 수준")); pGroup41->AddSubItem(pGroup411); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("항목 1"), (_variant_t) _T("값 1"), _T("설명입니다."))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("항목 2"), (_variant_t) _T("값 2"), _T("설명입니다."))); pGroup411->AddSubItem(new CMFCPropertyGridProperty(_T("항목 3"), (_variant_t) _T("값 3"), _T("설명입니다."))); pGroup4->Expand(FALSE); m_wndPropList.AddProperty(pGroup4); }
LRESULT CWorkspaceBar::OnPropertyChanged (WPARAM,LPARAM lParam) { CMFCPropertyGridProperty* pProp = (CMFCPropertyGridProperty*) lParam; BOOL bResetMDIChild = FALSE; switch ((int) pProp->GetData ()) { case idShowMDITabs: { CString strShowMdiTabOption = (LPCTSTR) (_bstr_t)pProp->GetValue (); bResetMDIChild = TRUE; for (int i = 0; lpszMDITabsStyles [i] != NULL; i++) { if (strShowMdiTabOption == lpszMDITabsStyles [i]) { switch (i) { case 0: theApp.m_Options.m_nMDITabsType = CMDITabOptions::None; break; case 1: theApp.m_Options.m_nMDITabsType = CMDITabOptions::MDITabsStandard; break; case 2: theApp.m_Options.m_nMDITabsType = CMDITabOptions::MDITabbedGroups; theApp.m_Options.m_bMaximizeMDIChild = FALSE; CMFCPropertyGridProperty* pMaximizeChildProp = m_wndPropList.GetProperty (1); if (pMaximizeChildProp != NULL) { _variant_t var ((short)theApp.m_Options.m_bMaximizeMDIChild, VT_BOOL); pMaximizeChildProp->SetValue (var); pMaximizeChildProp->Enable (FALSE); } bResetMDIChild = FALSE; break; } break; } } SetPropState (); } break; case idMaximizeMDIChild: theApp.m_Options.m_bMaximizeMDIChild = (bool) pProp->GetValue (); bResetMDIChild = TRUE; break; case idTabsOnTop: theApp.m_Options.m_bTabsOnTop = (bool) pProp->GetValue (); break; case idActiveTabCloseButton: theApp.m_Options.m_bActiveTabCloseButton = (bool) pProp->GetValue (); break; case idTabsStyle: { CString strStyle = (LPCTSTR) (_bstr_t)pProp->GetValue (); for (int i = 0; lpszStyles [i] != NULL; i++) { if (strStyle == lpszStyles [i]) { switch (i) { case 0: theApp.m_Options.m_nTabsStyle = CMFCTabCtrl::STYLE_3D_SCROLLED; break; case 1: theApp.m_Options.m_nTabsStyle = CMFCTabCtrl::STYLE_3D_ONENOTE; break; case 2: theApp.m_Options.m_nTabsStyle = CMFCTabCtrl::STYLE_3D_VS2005; break; } break; } } } break; case idTabsAutoColor: theApp.m_Options.m_bTabsAutoColor = (bool) pProp->GetValue (); break; case idMDITabsIcons: theApp.m_Options.m_bMDITabsIcons = (bool) pProp->GetValue (); break; case idMDITabsDocMenu: theApp.m_Options.m_bMDITabsDocMenu = (bool) pProp->GetValue (); break; case idDragMDITabs: theApp.m_Options.m_bDragMDITabs = (bool) pProp->GetValue (); break; case idMDITabsContextMenu: theApp.m_Options.m_bMDITabsContextMenu = (bool) pProp->GetValue (); break; case idMDITabsBorderSize: { int nBorderSize = pProp->GetValue ().iVal; theApp.m_Options.m_nMDITabsBorderSize = min (10, max (0, nBorderSize)); } break; case idDisableMDIChildRedraw: theApp.m_Options.m_bDisableMDIChildRedraw = (bool) pProp->GetValue (); break; case idFlatFrame: theApp.m_Options.m_bFlatFrame = (bool) pProp->GetValue (); break; case idCustomTooltips: theApp.m_Options.m_bCustomTooltips = (bool) pProp->GetValue (); break; } theApp.UpdateMDITabs (bResetMDIChild); return 0; }