#include "stdafx.h" #include "LaiPuLaser.h" #include "afxdialogex.h" #include "DlgRecipeCompare.h" #include "GlobalFunction.h" IMPLEMENT_DYNAMIC(CDlgRecipeCompare, CDialogEx) BEGIN_MESSAGE_MAP(CDlgRecipeCompare, CDialogEx) ON_CBN_SELCHANGE(NEW_RECIPE_GROUP_COMBO, &CDlgRecipeCompare::OnCbnSelchangeSelGroupCombo) ON_CBN_SELCHANGE(NEW_RECIPE_NAME_COMBO, &CDlgRecipeCompare::OnCbnSelchangeSelRecipeCombo) ON_NOTIFY(NM_CLICK, NEW_SUB_RECIPE_LIST, &CDlgRecipeCompare::OnNMClickEditSubRecipeList) ON_CBN_SELCHANGE(NEW_RECIPE_GROUP_COMBO2, &CDlgRecipeCompare::OnCbnSelchangeSelGroupCombo2) ON_CBN_SELCHANGE(NEW_RECIPE_NAME_COMBO2, &CDlgRecipeCompare::OnCbnSelchangeSelRecipeCombo2) ON_NOTIFY(NM_CLICK, NEW_SUB_RECIPE_LIST2, &CDlgRecipeCompare::OnNMClickEditSubRecipeList2) ON_NOTIFY(NM_CUSTOMDRAW, NEW_EDIT_RECIPE_LIST, &CDlgRecipeCompare::OnDrawRecipeList) ON_NOTIFY(NM_CUSTOMDRAW, NEW_EDIT_RECIPE_INFO_LIST, &CDlgRecipeCompare::OnDrawRecipeInfoList) ON_NOTIFY(NM_CUSTOMDRAW, NEW_EDIT_RECIPE_LIST2, &CDlgRecipeCompare::OnDrawRecipeList2) ON_NOTIFY(NM_CUSTOMDRAW, NEW_EDIT_RECIPE_INFO_LIST2, &CDlgRecipeCompare::OnDrawRecipeInfoList2) END_MESSAGE_MAP() CDlgRecipeCompare::CDlgRecipeCompare(CWnd* pParent /*=NULL*/) : CDialogEx(CDlgRecipeCompare::IDD, pParent) { } CDlgRecipeCompare::~CDlgRecipeCompare() { } void CDlgRecipeCompare::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, NEW_RECIPE_GROUP_COMBO, m_SelRecipeGroupComb); DDX_Control(pDX, NEW_RECIPE_NAME_COMBO, m_SelRecipeComb); DDX_Control(pDX, NEW_EDIT_RECIPE_LIST, m_EditRecipeList); DDX_Control(pDX, NEW_SUB_RECIPE_LIST, m_EditSubRecipeList); DDX_Control(pDX, NEW_EDIT_RECIPE_INFO_LIST, m_EditRecipeInfoList); DDX_Control(pDX, NEW_RECIPE_GROUP_COMBO2, m_SelRecipeGroupComb2); DDX_Control(pDX, NEW_RECIPE_NAME_COMBO2, m_SelRecipeComb2); DDX_Control(pDX, NEW_EDIT_RECIPE_LIST2, m_EditRecipeList2); DDX_Control(pDX, NEW_SUB_RECIPE_LIST2, m_EditSubRecipeList2); DDX_Control(pDX, NEW_EDIT_RECIPE_INFO_LIST2, m_EditRecipeInfoList2); } BOOL CDlgRecipeCompare::OnInitDialog() { CDialogEx::OnInitDialog(); //更新recipe 组信息 gRecipeMgr->UpdateRecipeGroupVec(); //Recipe1 gRecipeMgr->UpdateRecipeGroupComb(&m_SelRecipeGroupComb); m_SelRecipeGroupComb.SetCurSel(-1); gRecipeMgr->InitEditRecipeList(m_EditRecipeList,false); gRecipeMgr->InitEditRecipeList(m_EditRecipeInfoList,false); gRecipeMgr->InitEditSubRecipeList(m_EditSubRecipeList); //Recipe2 gRecipeMgr->UpdateRecipeGroupComb(&m_SelRecipeGroupComb2); m_SelRecipeGroupComb2.SetCurSel(-1); gRecipeMgr->InitEditRecipeList(m_EditRecipeList2,false); gRecipeMgr->InitEditRecipeList(m_EditRecipeInfoList2,false); gRecipeMgr->InitEditSubRecipeList(m_EditSubRecipeList2); UpdateData(FALSE); return TRUE; } #if 1 void CDlgRecipeCompare::OnDrawRecipeList( NMHDR* pNMHDR, LRESULT* pResult ) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); *pResult = CDRF_DODEFAULT; if( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYSUBITEMDRAW; } else if((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage ) { COLORREF crText, crBkgnd; crText = RGB_BLACK; crBkgnd = RGB_WHITE; int iRow = pLVCD->nmcd.dwItemSpec;//行号 int iCol = 4; if(iCol == pLVCD->iSubItem)//列号 { CString Text1 = m_EditRecipeList.GetItemText(iRow,iCol); CString Text2 = m_EditRecipeList2.GetItemText(iRow,iCol); if(m_CurRecipe.IsValid()&&m_CurRecipe2.IsValid()&&Text1!=Text2) crBkgnd = RGB_BLUE2; } pLVCD->clrText = crText; pLVCD->clrTextBk = crBkgnd; *pResult = CDRF_DODEFAULT; } } void CDlgRecipeCompare::OnDrawRecipeInfoList( NMHDR* pNMHDR, LRESULT* pResult) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); *pResult = CDRF_DODEFAULT; if( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYSUBITEMDRAW; } else if((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage ) { COLORREF crText, crBkgnd; crText = RGB_BLACK; crBkgnd = RGB_WHITE; int iRow = pLVCD->nmcd.dwItemSpec;//行号 int iCol = 4; if(iCol == pLVCD->iSubItem)//列号 { CString Text1 = m_EditRecipeInfoList.GetItemText(iRow,iCol); CString Text2 = m_EditRecipeInfoList2.GetItemText(iRow,iCol); if(m_CurRecipe.IsValid()&&m_CurRecipe2.IsValid()&&Text1!=Text2) crBkgnd = RGB_BLUE2; } pLVCD->clrText = crText; pLVCD->clrTextBk = crBkgnd; *pResult = CDRF_DODEFAULT; } } void CDlgRecipeCompare::OnDrawRecipeList2( NMHDR* pNMHDR, LRESULT* pResult ) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); *pResult = CDRF_DODEFAULT; if( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYSUBITEMDRAW; } else if((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage ) { COLORREF crText, crBkgnd; crText = RGB_BLACK; crBkgnd = RGB_WHITE; int iRow = pLVCD->nmcd.dwItemSpec;//行号 int iCol = 4; if(iCol == pLVCD->iSubItem)//列号 { CString Text1 = m_EditRecipeList.GetItemText(iRow,iCol); CString Text2 = m_EditRecipeList2.GetItemText(iRow,iCol); if(m_CurRecipe.IsValid()&&m_CurRecipe2.IsValid()&&Text1!=Text2) crBkgnd = RGB_YELLOW; } pLVCD->clrText = crText; pLVCD->clrTextBk = crBkgnd; *pResult = CDRF_DODEFAULT; } } void CDlgRecipeCompare::OnDrawRecipeInfoList2( NMHDR* pNMHDR, LRESULT* pResult) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast( pNMHDR ); *pResult = CDRF_DODEFAULT; if( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYITEMDRAW; } else if( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ) { *pResult = CDRF_NOTIFYSUBITEMDRAW; } else if((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage ) { COLORREF crText, crBkgnd; crText = RGB_BLACK; crBkgnd = RGB_WHITE; int iRow = pLVCD->nmcd.dwItemSpec;//行号 int iCol = 4; if(iCol == pLVCD->iSubItem)//列号 { CString Text1 = m_EditRecipeInfoList.GetItemText(iRow,iCol); CString Text2 = m_EditRecipeInfoList2.GetItemText(iRow,iCol); if(m_CurRecipe.IsValid()&&m_CurRecipe2.IsValid()&&Text1!=Text2) crBkgnd = RGB_YELLOW; } pLVCD->clrText = crText; pLVCD->clrTextBk = crBkgnd; *pResult = CDRF_DODEFAULT; } } #endif #if 1 void CDlgRecipeCompare::OnCbnSelchangeSelGroupCombo() { int SelGroupIdx = m_SelRecipeGroupComb.GetCurSel(); gRecipeMgr->SetCurSelGourpIdx(SelGroupIdx); gRecipeMgr->UpdateSelRecipeComb(m_SelRecipeComb,m_SelGroupRecipeNameVec); m_CurSelRecipeName = ""; } void CDlgRecipeCompare::OnCbnSelchangeSelRecipeCombo() { int SelGroupIdx = m_SelRecipeGroupComb.GetCurSel(); CString GroupName; GetDlgItem(NEW_RECIPE_GROUP_COMBO)->GetWindowText(GroupName); int SelRecipeIdx = m_SelRecipeComb.GetCurSel(); int size = m_SelGroupRecipeNameVec.size(); if(SelRecipeIdx>=0 && SelRecipeIdxReadEditRecipeFromFile(Recipe,SelGroupIdx,m_CurSelRecipeName)) { Recipe.SetCurSubRecipeIdx(0);//默认第一个sub recipe m_CurRecipe = Recipe; gRecipeMgr->UpdateEditSubRecipeListExt(Recipe,m_EditSubRecipeList); gRecipeMgr->UpdateEditRecipeListExt(Recipe,m_EditRecipeList,m_EditRecipeInfoList); //刷新一下 gRecipeMgr->UpdateEditRecipeListExt(m_CurRecipe2,m_EditRecipeList2,m_EditRecipeInfoList2); } } //默认选择自己 { int SelGroupIdx = m_SelRecipeGroupComb2.GetCurSel(); if(SelGroupIdx<0) { SelGroupIdx = m_SelRecipeGroupComb.GetCurSel(); m_SelRecipeGroupComb2.SetCurSel(SelGroupIdx); OnCbnSelchangeSelGroupCombo2(); int SelRecipeIdx = m_SelRecipeComb.GetCurSel(); m_SelRecipeComb2.SetCurSel(SelRecipeIdx); OnCbnSelchangeSelRecipeCombo2(); } } } void CDlgRecipeCompare::OnNMClickEditSubRecipeList(NMHDR *pNMHDR, LRESULT *pResult) { *pResult = 0; int Idx = GetCurListIdx(m_EditSubRecipeList); if(Idx>=0 && m_CurRecipe.IsValid()) { m_CurRecipe.SetCurSubRecipeIdx(Idx); gRecipeMgr->UpdateEditRecipeListExt(m_CurRecipe,m_EditRecipeList,m_EditRecipeInfoList); //刷新一下 gRecipeMgr->UpdateEditRecipeListExt(m_CurRecipe2,m_EditRecipeList2,m_EditRecipeInfoList2); } } #endif #if 1 void CDlgRecipeCompare::OnCbnSelchangeSelGroupCombo2() { int SelGroupIdx = m_SelRecipeGroupComb2.GetCurSel(); gRecipeMgr->SetCurSelGourpIdx(SelGroupIdx); gRecipeMgr->UpdateSelRecipeComb(m_SelRecipeComb2,m_SelGroupRecipeNameVec2); m_CurSelRecipeName2 = ""; } void CDlgRecipeCompare::OnCbnSelchangeSelRecipeCombo2() { int SelGroupIdx = m_SelRecipeGroupComb2.GetCurSel(); CString GroupName; GetDlgItem(NEW_RECIPE_GROUP_COMBO2)->GetWindowText(GroupName); int SelRecipeIdx = m_SelRecipeComb2.GetCurSel(); int size = m_SelGroupRecipeNameVec2.size(); if(SelRecipeIdx>=0 && SelRecipeIdxReadEditRecipeFromFile(Recipe,SelGroupIdx,m_CurSelRecipeName2)) { Recipe.SetCurSubRecipeIdx(0);//默认第一个sub recipe m_CurRecipe2 = Recipe; gRecipeMgr->UpdateEditSubRecipeListExt(Recipe,m_EditSubRecipeList2); gRecipeMgr->UpdateEditRecipeListExt(Recipe,m_EditRecipeList2,m_EditRecipeInfoList2); gRecipeMgr->UpdateEditRecipeListExt(m_CurRecipe,m_EditRecipeList,m_EditRecipeInfoList); } } } void CDlgRecipeCompare::OnNMClickEditSubRecipeList2(NMHDR *pNMHDR, LRESULT *pResult) { *pResult = 0; int Idx = GetCurListIdx(m_EditSubRecipeList2); if(Idx>=0 && m_CurRecipe2.IsValid()) { m_CurRecipe2.SetCurSubRecipeIdx(Idx); gRecipeMgr->UpdateEditRecipeListExt(m_CurRecipe2,m_EditRecipeList2,m_EditRecipeInfoList2); gRecipeMgr->UpdateEditRecipeListExt(m_CurRecipe,m_EditRecipeList,m_EditRecipeInfoList); } } #endif