//----------------------------- FUNCTION -------------------------------------*
void PropGSDModule::FillModuleExtUserPrm(CDP_Module * pModule)
{
	CListCtrl* pExt = (CListCtrl*)GetDlgItem(IDC_LIST_AVAIL_MOD_EXTPRM);
	CListCtrl* pUsedExt = (CListCtrl*)GetDlgItem(IDC_LIST_USED_MOD_EXTPRM);
	if (pExt == NULL || pUsedExt == NULL)	{
		ASSERT(FALSE);
		return;
	}

	pExt->DeleteAllItems( );
	pUsedExt->DeleteAllItems();
    if (pModule == NULL) {
        return;
    }

	CObList* pExtParams = pModule->GetExtParams();
	POSITION pos = pExtParams->GetHeadPosition();
	LV_ITEM lv;
	int index = 0;
	while (pos)	{
		ExtParam* pParam = (ExtParam*)pExtParams->GetNext(pos);
		if (!pParam->IsConstantParam())	{
			::memset(&lv, 0, sizeof(LV_ITEM));
			lv.mask = LVIF_TEXT | LVIF_PARAM;
			lv.iItem = index++;
			lv.pszText = (LPTSTR)(LPCTSTR)pParam->GetDescription();
			lv.lParam = (DWORD)pParam;

			if (pParam->IsUsed())
				pUsedExt->InsertItem(&lv);
			else
				pExt->InsertItem(&lv);
		}
	}
}
//----------------------------- FUNCTION -------------------------------------*
void PropGSDModule::FillDeviceExtUserPrm()
{
	CListCtrl* pExt = (CListCtrl*)GetDlgItem(IDC_LIST_AVAILABLE_EXT_USER_PARAM);
	CListCtrl* pUsedExt = (CListCtrl*)GetDlgItem(IDC_LIST_USED_EXT_USER_PARAMS);
	if (pExt == NULL || pUsedExt == NULL)
		return;

	pExt->DeleteAllItems();
	pUsedExt->DeleteAllItems();
	LV_ITEM lv;
	POSITION pos = ExtUserParams.GetHeadPosition();
	int index = 0;
	while (pos)	{
		ExtParam* pParam = (ExtParam*)ExtUserParams.GetNext(pos);
		if (!pParam->IsConstantParam())	{
			::memset(&lv, 0, sizeof(LV_ITEM));
			lv.mask = LVIF_TEXT | LVIF_PARAM;
			lv.iItem = index++;
			lv.pszText = (LPTSTR)(LPCTSTR)pParam->GetDescription();
			lv.lParam = (DWORD)pParam;

			if (pParam->IsUsed())
				pUsedExt->InsertItem(&lv);
			else
				pExt->InsertItem(&lv);
		}
	}

	if (pUsedExt->GetItemCount() > 0)
		m_bExtUserPrms = TRUE;
	else
		m_bExtUserPrms = FALSE;
}
Beispiel #3
0
void CMainFrame::FillFeatureInfo()
{
	CListCtrl * pGISFeatureList = (CListCtrl *)m_GISLayerBar.GetDlgItem(IDC_LIST_FEATURE_INFO);

	pGISFeatureList->DeleteAllItems ();
	
	if(!m_bFeatureInfoInitialized)
	{
	pGISFeatureList->InsertColumn(0,"Attribute",LVCFMT_LEFT,70);
	pGISFeatureList->InsertColumn(1,"Data",LVCFMT_LEFT,100);
	m_bFeatureInfoInitialized = true;
	}

	LV_ITEM lvi;
	for(int i = 0; i < m_FeatureInfoVector.size(); i++)
	{

		lvi.mask = LVIF_TEXT;
		lvi.iItem = i;
		lvi.iSubItem = 0;
		char text_str[100];
		sprintf(text_str,"%s",  m_FeatureInfoVector[i].Attribute.c_str());

		lvi.pszText =  text_str;
		int Index = pGISFeatureList->InsertItem(&lvi);
		pGISFeatureList->SetItemText(Index,1,m_FeatureInfoVector[i].Data);
	}

}
void CSequenceInstrumentEditPanel::SetupDialog(LPCTSTR *pListItems)
{
	// Instrument settings
	CListCtrl *pList = static_cast<CListCtrl*>(GetDlgItem(IDC_INSTSETTINGS));
	
	pList->DeleteAllItems();
	pList->InsertColumn(0, _T(""), LVCFMT_LEFT, 26);
	pList->InsertColumn(1, _T("#"), LVCFMT_LEFT, 30);
	pList->InsertColumn(2, _T("Effect name"), LVCFMT_LEFT, 84);
	pList->SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES);
	
	for (int i = SEQ_COUNT - 1; i > -1; i--) {
		pList->InsertItem(0, _T(""), 0);
		pList->SetCheck(0, 0);
		pList->SetItemText(0, 1, _T("0"));
		pList->SetItemText(0, 2, pListItems[i]);
	}
	
	pList->SetItemState(m_iSelectedSetting, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);

	SetDlgItemInt(IDC_SEQ_INDEX, m_iSelectedSetting);

	CSpinButtonCtrl *pSequenceSpin = static_cast<CSpinButtonCtrl*>(GetDlgItem(IDC_SEQUENCE_SPIN));
	pSequenceSpin->SetRange(0, MAX_SEQUENCES - 1);

	CRect rect(190 - 2, 30 - 2, CSequenceEditor::SEQUENCE_EDIT_WIDTH, CSequenceEditor::SEQUENCE_EDIT_HEIGHT);
	
	m_pSequenceEditor = new CSequenceEditor(GetDocument());	
	m_pSequenceEditor->CreateEditor(this, rect);
	m_pSequenceEditor->ShowWindow(SW_SHOW);
}
Beispiel #5
0
void COrderManagerDlg::InitOrderList()
{
	CListCtrl* OrderList = (CListCtrl*)this->GetDlgItem(IDC_LIST_ORDERMGR_ORDERS);

	CString strTableIndex;
	strTableIndex.Format(_T("TABLE%d"), m_nTableIndex);

	CString strOrder = theApp.GetProfileStringA(strTableIndex, _T("Order"), NULL);
	vector<stOrder> vecOrder = ParsingOrderString(strOrder);

	if (vecOrder.empty() == false)
	{
		OrderList->DeleteAllItems();
		for (vector<stOrder>::size_type i = 0; i < vecOrder.size(); i++)
		{
			int nIndex = OrderList->GetItemCount();
			OrderList->InsertItem(nIndex, vecOrder[i].strMenu);
			OrderList->SetItemText(nIndex, 1, vecOrder[i].strCount);
			OrderList->SetItemText(nIndex, 2, vecOrder[i].strPrice);
		}
		UpdateData(FALSE);
	}

	UpdateTotalPrice();	
}
void CFileFindDlg::OnOK() 
{
	UpdateData(TRUE);

	CUserCfg* pUsrCfg = ((CDbgRemoteApp*)AfxGetApp())->pGetUserCfg();
	pUsrCfg->AddFileFindPath(m_FindFolder); 
	pUsrCfg->AddFileFindTypes(m_FileType);
	pUsrCfg->AddFileFindWhat(m_FindText);

	LoadFindHistory();

	UpdateData(FALSE);

	CListCtrl* pLst = (CListCtrl*)GetDlgItem(IDC_RESULTS_LST);
	pLst->DeleteAllItems();

	if (m_hFindThread)
	{
		m_bCancelFind = TRUE;
		if (::WaitForSingleObject(m_hFindThread, 250) == WAIT_TIMEOUT)
		{
			TerminateThread(m_hFindThread, -1);
		}
		m_hFindThread = NULL;
	}

	m_bCancelFind = FALSE;
	m_hFindThread = (HANDLE)_beginthread(CFileFindDlg::FileFindThreadFn, 0, this);

	CStatic* pStc = (CStatic*)GetDlgItem(IDC_STATIC_NUMRESULTS);
	pStc->SetWindowText("Searching...");
	//CDialog::OnOK();
}
void CfsclientwDlg::dir(const char* folder)
{
	vector<file_info> vf;
	if (m_dwM->dir(vf, folder) < 0)
	{
		return;
	}

	CEdit * pe = (CEdit *)GetDlgItem(IDC_EDIT_FILE);
	pe->SetWindowText(folder);
	//enableButton("download", 0);

	CListCtrl * pl = (CListCtrl *)GetDlgItem(IDC_FLIST);
	pl->DeleteAllItems();
	char  buf[256];
	int64 total_size = 0;
	for (size_t i = 0; i < vf.size(); i++)
	{
		InsertFileItem(pl, (int)i, vf[i], buf);
		total_size += vf[i].filesize;
	}
	char  c;
	float f = size2float(total_size, c);
	sprintf(buf, " Files: %d,  size: %.2f %c", vf.size(), f, c);
	pe = (CEdit*)GetDlgItem(IDC_EDIT_STATUS);
	pe->SetWindowText(buf);
}
BOOL CConfigShortcuts::OnInitDialog()
{
	CPropertyPage::OnInitDialog();

	CAccelerator *pAccel = theApp.GetAccelerator();
	CListCtrl *pListView = static_cast<CListCtrl*>(GetDlgItem(IDC_SHORTCUTS));

	CRect r;		// // //
	pListView->GetClientRect(&r);
	int w = r.Width() - ::GetSystemMetrics(SM_CXHSCROLL);
	pListView->DeleteAllItems();
	pListView->InsertColumn(0, L"Action", LVCFMT_LEFT, static_cast<int>(.52 * w));
	pListView->InsertColumn(1, L"Modifier", LVCFMT_LEFT, static_cast<int>(.23 * w));
	pListView->InsertColumn(2, L"Key", LVCFMT_LEFT, static_cast<int>(.25 * w));

	// Build shortcut list
	for (int i = 0; i < CAccelerator::ACCEL_COUNT; ++i) {
		pListView->InsertItem(i, pAccel->GetItemName(i), 0);
		pListView->SetItemText(i, 1, pAccel->GetItemModName(i));
		pListView->SetItemText(i, 2, pAccel->GetItemKeyName(i));

		m_iKeys[i] = pAccel->GetItemKey(i);
		m_iMods[i] = pAccel->GetItemMod(i);
	}

	pListView->SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
	pListView->SetSelectionMark(0);

	m_iSelectedItem = 0;

	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}
Beispiel #9
0
BOOL CConfigShortcuts::OnInitDialog()
{
	CPropertyPage::OnInitDialog();

	CAccelerator *pAccel = theApp.GetAccelerator();
	CListCtrl *pListView = (CListCtrl*)GetDlgItem(IDC_SHORTCUTS);

	pListView->DeleteAllItems();
	pListView->InsertColumn(0, _T("Action"), LVCFMT_LEFT, 170);
	pListView->InsertColumn(1, _T("Modifier"), LVCFMT_LEFT, 90);
	pListView->InsertColumn(2, _T("Key"), LVCFMT_LEFT, 110);

	// Build shortcut list
	for (int i = 0; i < CAccelerator::ACCEL_COUNT; ++i) {
		pListView->InsertItem(i, pAccel->GetItemName(i), 0);
		pListView->SetItemText(i, 1, pAccel->GetItemModName(i));
		pListView->SetItemText(i, 2, pAccel->GetItemKeyName(i));

		m_iKeys[i] = pAccel->GetItemKey(i);
		m_iMods[i] = pAccel->GetItemMod(i);
	}
	
	pListView->SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
	pListView->SetSelectionMark(0);

	m_iSelectedItem = 0;

	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}
void
ArxDbgUiTdcRxObjectBase::drawPropsList(CListCtrl& dataList)
{
	this->LockWindowUpdate();		// suppress redraw events

    dataList.DeleteAllItems();		// remove any existing items from the control

        // build up the list view control
    LV_ITEM lvi;
    lvi.mask = 0;
    int row = 0;

    POSITION pos1 = m_fieldStrList.GetHeadPosition();
    POSITION pos2 = m_valueStrList.GetHeadPosition();

    while ((pos1 != NULL) && (pos2 != NULL)) {
        lvi.iItem = row;
        lvi.iSubItem = 0;
        dataList.InsertItem(&lvi);
        dataList.SetItemText(row, 0, m_fieldStrList.GetNext(pos1));
        dataList.SetItemText(row, 1, m_valueStrList.GetNext(pos2));
        row++;
    }

	this->UnlockWindowUpdate();		// flushes redraw events
}
void CBrowser::RemoveAllBitmaps ( void )
{
	CListCtrl*	pList = NULL;

	if ( ( pList = ( CListCtrl* ) GetDlgItem ( IDC_PREVIEW_LIST ) ) == NULL )
		return;

	m_iArrayCount = 0;

	pList->DeleteAllItems ( );
}
// @pymethod |PyCListCtrl|DeleteAllItems|Deletes all items from the list.
PyObject *PyCListCtrl_DeleteAllItems( PyObject *self, PyObject *args )
{
	CListCtrl *pList;
	if (!(pList=GetListCtrl(self)))
		return NULL;
	CHECK_NO_ARGS2(args, "DeleteAllItems");
	GUI_BGN_SAVE;
	BOOL ok = pList->DeleteAllItems();
	GUI_END_SAVE;
	if (!ok)
		RETURN_ERR("DeleteAllItems failed");
	RETURN_NONE;
}
Beispiel #13
0
void GeometryListView::Update() 
// Rebuild the list of geometry resources.
{
//	CPropertyPage::OnUpdate(pSender, lHint, pHint);

	// TODO: Add extra initialization here
	CTerrainDoc*	doc = GetDocument();
	Geometry*	g = doc->GetGeometryList();
	int	GeometryCount = doc->GetGeometryCount();
	CListCtrl*	list = &m_ListControl /* (CListCtrl*) GetDlgItem(IDC_GEOMETRYLIST) */;
	if (list->m_hWnd == NULL) return;

	// Setup the column headings.
	while (list->DeleteColumn(0)) ;

	LV_COLUMN	col;
	col.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
	col.fmt = LVCFMT_LEFT;

	// Name.
	col.pszText = "Name";
	col.iSubItem = 0;
	col.cx = 75;
	list->InsertColumn(0, &col);

	// Filename.
	col.iSubItem = 1;
	col.pszText = "Filename";
	col.cx = 100;
	list->InsertColumn(1, &col);

	// Comment.
	col.iSubItem = 2;
	col.pszText = "Comment";
	col.cx = 170;
	list->InsertColumn(2, &col);

	// Set the list items.
	list->DeleteAllItems();
	list->SetItemCount(GeometryCount);
	for (int i = 0; i < GeometryCount; i++, g = g->Next) {
		if (g == NULL) break;

		int index = list->InsertItem(i, g->GetName());
		list->SetItemText(index, 1, g->GetFilename());
		list->SetItemText(index, 2, g->GetComment());
		list->SetItemData(index, i);
	}
}
Beispiel #14
0
void CHistoryDlg::OnButtonHistCompact() 
{
	// Compact History File
	CWaitCursor wc;

	CFile theHistoryFile;
	CFileException cfe;

	if(theHistoryFile.Open("HISTORY.DAT", CFile::modeReadWrite, &cfe) == FALSE)
	{
		TRACE("CHistoryDlg::BuildHistoryFileStats() - File Not Opened\n");
		return;
	}

	CTaskObject oneTask;

	DWORD dwReadPos = 0;
	DWORD dwWritePos = 0;

	while(oneTask.ReadFromFile(theHistoryFile) == TRUE)
	{
		if(oneTask.m_bHistoryDeleted == TRUE)
			continue;

		dwReadPos = theHistoryFile.GetPosition();

		theHistoryFile.Seek(dwWritePos, CFile::begin);

		oneTask.WriteToFile(theHistoryFile, FALSE);

		dwWritePos = theHistoryFile.GetPosition();

		theHistoryFile.Seek(dwReadPos, CFile::begin);
	}

	theHistoryFile.SetLength(dwWritePos);

	theHistoryFile.Close();

	CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem(IDC_LIST_HISTORY);

	pListCtrl->DeleteAllItems();

	BuildHistoryFileStats(pListCtrl);

	UpdateButtons();

}
void CModulePropertiesDlg::FillSongList()
{
	CListCtrl *pSongList = static_cast<CListCtrl*>(GetDlgItem(IDC_SONGLIST));
	CString Text;

	pSongList->DeleteAllItems();

	// Song editor
	int Songs = m_pDocument->GetTrackCount();

	for (int i = 0; i < Songs; ++i) {
		Text.Format(TRACK_FORMAT, i + 1, m_pDocument->GetTrackTitle(i).GetString());	// start counting songs from 1
		pSongList->InsertItem(i, Text);
	}

	// Select first song when dialog is displayed
	SelectSong(0);
}
Beispiel #16
0
void TestRunnerDlg::reset ()
{
    _testsRun      = 0;
    _errors        = 0;
    _failures      = 0;
    _testEndTime   = _testStartTime;

    updateCountsDisplay ();

    _activeTest    = 0;
    _result        = 0;

    CListCtrl *listCtrl = (CListCtrl *)GetDlgItem (IDC_LIST);

    listCtrl->DeleteAllItems ();
    _testsProgress->reset ();

}
Beispiel #17
0
void COrderManagerDlg::UpdateMenuList()
{
	CListCtrl* MenuList = (CListCtrl*)this->GetDlgItem(IDC_LIST_ORDERMGR_MENUS);
	char szQuery[1024] = { 0 };
	int index = 0;

	MenuList->DeleteAllItems();
	sprintf_s(szQuery, "select menu_name,menu_price from tblMenu order by menu_name");
	CppSQLite3Query data = g_SqlMgr.execQuery(szQuery);

	while (!data.eof())
	{
		index = MenuList->GetItemCount();
		MenuList->InsertItem(index, data.fieldValue(0));
		MenuList->SetItemText(index, 1, data.fieldValue(1));
		data.nextRow();
	}

	UpdateData(FALSE);
}
void CDataProcess::ShowInfo(HWND hwnd)
{
	CListCtrl* pList = (CListCtrl*)CWnd::FromHandle(hwnd);
	if(!pList) return;
	pList->DeleteAllItems();
	ConferenceSourceList::iterator it;
	for (it = m_ConferenceSourceList.begin(); it != m_ConferenceSourceList.end(); it++)
	{
		int nCount = pList->GetItemCount();
		pList->InsertItem(nCount, "");
		pList->SetItemText(nCount, 0, it->ConfId);
		pList->SetItemText(nCount, 1, CFunction::ConvertUtf8ToGBKEx(it->ConfName));
		pList->SetItemText(nCount, 2, it->StartTime);
		pList->SetItemText(nCount, 3, it->EndTime);
		pList->SetItemText(nCount, 4, CFunction::ConvertUtf8ToGBKEx(it->Department));
		pList->SetItemText(nCount, 5, CFunction::ConvertUtf8ToGBKEx(it->Room.RoomName));
		pList->SetItemText(nCount, 6, it->ParticipantNumber);
		pList->SetItemText(nCount, 7, CFunction::ConvertUtf8ToGBKEx(it->ConfState));
		pList->SetItemText(nCount, 8, CFunction::ConvertUtf8ToGBKEx(it->ConfType));
	}

}
void CBrowser::OnShowWindow ( BOOL bShow, UINT nStatus )
{
	if ( bGo )
	{
		// create the image list using images at a size of 64 * 64,
		// we also specify that we use an independent colour depth
		m_imageList.Create     ( 64, 64, ILC_COLORDDB, 1, 16 );

		m_imageList.SetBkColor ( RGB ( 255, 255, 255 ) );

		CListCtrl*	pList = NULL;

		if ( ( pList = ( CListCtrl* ) GetDlgItem ( IDC_PREVIEW_LIST ) ) == NULL )
			return;

		pList->DeleteAllItems ( );

		pList->SetImageList ( &m_imageList, LVSIL_NORMAL );
		pList->SetItemCount ( 1000 );

		bGo = false;
	}
}
BOOL CInstrumentEditorN163::OnInitDialog()
{
	CSequenceInstrumentEditPanel::OnInitDialog();

	// Instrument settings
	CListCtrl *pList = (CListCtrl*) GetDlgItem(IDC_INSTSETTINGS);
	pList->DeleteAllItems();
	pList->InsertColumn(0, _T(""), LVCFMT_LEFT, 26);
	pList->InsertColumn(1, _T("#"), LVCFMT_LEFT, 30);
	pList->InsertColumn(2, _T("Effect name"), LVCFMT_LEFT, 84);
	pList->SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES);
	
	for (int i = 0; i < CInstrumentN163::SEQUENCE_COUNT; ++i) {
		pList->InsertItem(i, _T(""), 0);
		pList->SetCheck(i, 0);
		pList->SetItemText(i, 1, _T("0"));
		pList->SetItemText(i, 2, INST_SETTINGS_N163[i]);
	}

	pList->SetItemState(m_iSelectedSetting, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);

	SetDlgItemInt(IDC_SEQ_INDEX, m_iSelectedSetting);

	CSpinButtonCtrl *pSequenceSpin = (CSpinButtonCtrl*)GetDlgItem(IDC_SEQUENCE_SPIN);
	pSequenceSpin->SetRange(0, MAX_SEQUENCES - 1);

	CRect rect(190 - 2, 30 - 2, CSequenceEditor::SEQUENCE_EDIT_WIDTH, CSequenceEditor::SEQUENCE_EDIT_HEIGHT);
	
	m_pSequenceEditor = new CSequenceEditor(GetDocument());	
	m_pSequenceEditor->CreateEditor(this, rect);
	m_pSequenceEditor->ShowWindow(SW_SHOW);
	m_pSequenceEditor->SetMaxValues(MAX_VOLUME, CInstrumentN163::MAX_WAVE_COUNT - 1);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}
Beispiel #21
0
void CfoodTrackView::FilterClass()
{
	CDlgFilterClass dlg;
	if(dlg.DoModal()==IDCANCEL)
		return;
	CListCtrl *pListCtrl;
	pListCtrl = &this->GetListCtrl(); 
	pListCtrl->DeleteAllItems();
	while(pListCtrl->DeleteColumn(0)){}
	
	//LV_ITEM lvitem;
	CStudent *pStu;
	CItem *pItem;
	CString sTmp;
	CClass *pClass;
	int i=0,iPos=0,j=0;
	CfoodTrackDoc *pDoc=this->GetDocument();
	
	pListCtrl->InsertColumn(0,"*",LVCFMT_LEFT,30,-1);
	pListCtrl->InsertColumn(1,"日期",LVCFMT_LEFT,80,-1);
	pListCtrl->InsertColumn(2,"时间",LVCFMT_LEFT,40,-1);
	pListCtrl->InsertColumn(3,"车号",LVCFMT_LEFT,80,-1);
	pListCtrl->InsertColumn(4,"教练",LVCFMT_LEFT,50,-1);
	pListCtrl->InsertColumn(5,"姓名",LVCFMT_LEFT,50,-1);
	pListCtrl->InsertColumn(6,"性别",LVCFMT_LEFT,40,-1);
	pListCtrl->InsertColumn(7,"身份证",LVCFMT_LEFT,100,-1);
	pListCtrl->InsertColumn(8,"联系地址",LVCFMT_LEFT,110,-1);
	pListCtrl->InsertColumn(9,"电话",LVCFMT_LEFT,80,-1);		
	pListCtrl->InsertColumn(10,"上车时间",LVCFMT_LEFT,70,-1);
	pListCtrl->InsertColumn(11,"场考时间",LVCFMT_LEFT,70,-1);
	pListCtrl->InsertColumn(12,"路考时间",LVCFMT_LEFT,70,-1);
	pListCtrl->InsertColumn(13,"考试类型",LVCFMT_LEFT,70,-1);
	pListCtrl->InsertColumn(14,"发证日期",LVCFMT_LEFT,70,-1);
	if(pDoc->ReadClasss(dlg.m_tmStart,dlg.m_tmEnd,dlg.m_sAutoNo,dlg.m_sTeacher)<=0)
		return;
	for(i=0;i<pDoc->m_arrClass.GetSize();i++)
	{   pClass = pDoc->m_arrClass[i]; 
	for(j=0;j<pClass->m_arrStudent.GetSize();j++)
	{
		pStu = pClass->m_arrStudent[j];
		sTmp.Format("%d",pListCtrl->GetItemCount()+1);
		iPos = pListCtrl->InsertItem(pListCtrl->GetItemCount(),sTmp,0);
		sTmp.Format("%d-%d-%d",pClass->m_F_Date.GetYear(),pClass->m_F_Date.GetMonth(),pClass->m_F_Date.GetDay());
		pListCtrl->SetItemText(iPos,1,sTmp);
		if(pClass->m_F_NoonID==0)
			sTmp = "上午";
		else
			sTmp = "下午";
		pListCtrl->SetItemText(iPos,2,sTmp);
		pListCtrl->SetItemText(iPos,3,pClass->m_F_AutoNo);
		pListCtrl->SetItemText(iPos,4,pClass->m_F_Teacher);
		pListCtrl->SetItemText(iPos,5,pStu->m_F_ItemName);
		pListCtrl->SetItemText(iPos,6,pStu->m_F_Sex);
		pListCtrl->SetItemText(iPos,7,pStu->m_F_SN);
		pListCtrl->SetItemText(iPos,8,pStu->m_F_Address);
		pListCtrl->SetItemText(iPos,9,pStu->m_F_Tel);
		//*/日期/时间/车号/教练/姓名/性别/身份证/联系地址/电话/上车时间
		//场考时间/路考时间/考试类型/发证日期
		if(pStu->m_tmUpAuto>0)
		{	
			sTmp.Format("%d-%d-%d",pStu->m_tmUpAuto.GetYear(),pStu->m_tmUpAuto.GetMonth(),pStu->m_tmUpAuto.GetDay());
			pListCtrl->SetItemText(iPos,10,sTmp);
		}
		if(pStu->m_tmExamField>0)
		{
			sTmp.Format("%d-%d-%d",pStu->m_tmExamField.GetYear(),pStu->m_tmExamField.GetMonth(),pStu->m_tmExamField.GetDay());
			pListCtrl->SetItemText(iPos,11,sTmp);
		}
		if(pStu->m_tmExamRoad>0)
		{
			sTmp.Format("%d-%d-%d",pStu->m_tmExamRoad.GetYear(),pStu->m_tmExamRoad.GetMonth(),pStu->m_tmExamRoad.GetDay());
			pListCtrl->SetItemText(iPos,12,sTmp);
		}
		pItem = pDoc->GetItemByID(&pDoc->m_arrExamType,pStu->m_nExamTypeID); 
		if(pItem)
			pListCtrl->SetItemText(iPos,13,pItem->m_F_ItemName); 
		if(pStu->m_tmEnd>0)
		{
			sTmp.Format("%d-%d-%d",pStu->m_tmEnd.GetYear(),pStu->m_tmEnd.GetMonth(),pStu->m_tmEnd.GetDay());
			pListCtrl->SetItemText(iPos,14,sTmp);
		}
		pListCtrl->SetItemData(iPos,pClass->m_F_ID);
	}
	}
	
}
Beispiel #22
0
// **************************************************************************
// UpdateStatus ()
//
// Description:
//	Update the status of controls attached to this dialog based on current
//	properties of selected item.
//	
// Parameters:
//  none
//
// Returns:
//  void
// **************************************************************************
void CKItemPropertiesDlg::UpdateStatus ()
	{
	// Create a wait cursor object.  This will cause the wait cursor, 
	// usually an hourglass, to be displayed.  When this object goes
	// out of scope, its destructor will restore the previous cursor
	// type.
	CWaitCursor wc;

	// Save handle of item with focus.  We will have to change the focus
	// if this item is disabled:
	HWND hWnd = ::GetFocus ();

	// Enable next button if we are not at the end of the list:
	m_cNext.EnableWindow (m_nSelIndex < m_cnItems - 1);

	// Enable the previous button if we are not at the beginning of the list:
	m_cPrev.EnableWindow (m_nSelIndex > 0);

	// Allow the user to modify item ID and access path only if item is invalid:
	CKItem *pItem = GetSelectedItem ();
	ASSERT (pItem != NULL);

	GetDlgItem (IDC_ITEMID)->EnableWindow (!pItem->IsValid ());
	GetDlgItem (IDC_ACCESSPATH)->EnableWindow (!pItem->IsValid ());

	// Load appropriate datatypes (based on current data type and
	// item valid state):

	// First get pointer to data type combo box:
	CComboBox *pCombo = (CComboBox *)GetDlgItem (IDC_DATATYPE);

	// then reset it:
	pCombo->ResetContent ();

	// then load new entries:
	if (pItem->IsValid ())
		{
		// If current data type is an array type:
		if (pItem->GetDataType () & VT_ARRAY)
			{
			pCombo->AddString (_T("Byte Array"));
			pCombo->AddString (_T("Char Array"));
			pCombo->AddString (_T("Word Array"));
			pCombo->AddString (_T("Short Array"));
			pCombo->AddString (_T("DWord Array"));
			pCombo->AddString (_T("Long Array"));
			pCombo->AddString (_T("Float Array"));
			pCombo->AddString (_T("Double Array"));
			}

		// else if it is not an array type"
		else
			{
			pCombo->AddString (_T("Boolean"));
			pCombo->AddString (_T("Byte"));
			pCombo->AddString (_T("Char"));
			pCombo->AddString (_T("Word"));
			pCombo->AddString (_T("Short"));
			pCombo->AddString (_T("DWord"));
			pCombo->AddString (_T("Long"));
			pCombo->AddString (_T("Float"));
			pCombo->AddString (_T("Double"));
			pCombo->AddString (_T("String"));
			}
		}

	// If item is not valid (item has not be re-added), allow all data types:
	else
		{
		pCombo->AddString (_T("Native"));
		pCombo->AddString (_T("Boolean"));
		pCombo->AddString (_T("Byte"));
		pCombo->AddString (_T("Byte Array"));
		pCombo->AddString (_T("Char"));
		pCombo->AddString (_T("Char Array"));
		pCombo->AddString (_T("Word"));
		pCombo->AddString (_T("Word Array"));
		pCombo->AddString (_T("Short"));
		pCombo->AddString (_T("Short Array"));
		pCombo->AddString (_T("DWord"));
		pCombo->AddString (_T("DWord Array"));
		pCombo->AddString (_T("Long"));
		pCombo->AddString (_T("Long Array"));
		pCombo->AddString (_T("Float"));
		pCombo->AddString (_T("Float Array"));
		pCombo->AddString (_T("Double"));
		pCombo->AddString (_T("Double Array"));
		pCombo->AddString (_T("String"));
		}

	// Fill available 2.0 item properties (We won't be able to do this
	// unless we have a pointer to the item properties interface.)
	if (m_pIItemProps != NULL)
		{
		TCHAR szBuffer [DEFBUFFSIZE];
		WCHAR *pszItemID		= NULL;
		DWORD dwCount			= 0;
		DWORD dwIndex			= 0;		
		DWORD *pdwIDs			= NULL;
		LPWSTR *pszDescriptions	= NULL;
		LPWSTR *pszLookupIDs	= NULL;
		VARTYPE *pvtDataTypes	= NULL;
		VARIANT *pvtValues		= NULL;
		HRESULT *pValErrs		= NULL;
		HRESULT *pLookupErrs	= NULL;
		HRESULT hr				= E_FAIL;

		// Get pointer to list control:
		CListCtrl *pList = (CListCtrl *) GetDlgItem (IDC_LIST);
		ASSERT (pList != NULL);

		// Delete any list items that are present:
		pList->DeleteAllItems ();

		// Obtain the qualified ID:
		ASSERT (!m_strItemID.IsEmpty ());

		CString strQualifiedID;

		if (!m_strAccessPath.IsEmpty () && m_pServer->IsKepServerEx ())
			{
			strQualifiedID = m_strAccessPath;
			strQualifiedID += _T(".");
			strQualifiedID += m_strItemID;
			}
		else
			strQualifiedID = m_strItemID;

		// Allocate storage for item ID string:
		pszItemID = (WCHAR *) CoTaskMemAlloc ((strQualifiedID.GetLength () + 1) * sizeof (WCHAR));

		// Convert item ID to UNICODE if needed and copy to allocated memory:
#ifdef _UNICODE
		lstrcpyn (pszItemID, strQualifiedID, strQualifiedID.GetLength () + 1);
#else
		_mbstowcsz (pszItemID, strQualifiedID, strQualifiedID.GetLength () + 1);
#endif
		
		// Query available properties:
		hr = m_pIItemProps->QueryAvailableProperties (
			  pszItemID, &dwCount, &pdwIDs, &pszDescriptions, &pvtDataTypes);

		if (SUCCEEDED (hr))
			{
			// Get the current property values for the property ID's we 
			// just queried:
			hr = m_pIItemProps->GetItemProperties (pszItemID, dwCount, 
				pdwIDs, &pvtValues, &pValErrs);

			if (SUCCEEDED (hr))
				{
				// Get lookup item IDs for the property ID's we just queried:
				hr = m_pIItemProps->LookupItemIDs (pszItemID, dwCount, 
					pdwIDs, &pszLookupIDs, &pLookupErrs);

				if (SUCCEEDED (hr))
					{
					// Insert item IDs, descriptions, values and lookup IDs 
					// into the list control:
					for (dwIndex = 0; dwIndex < dwCount; dwIndex++)
						{
						// ID:
						_itot (pdwIDs [dwIndex], szBuffer, 10);
						pList->InsertItem (dwIndex, szBuffer);

						// Description (may have to convert from UNICODE):
#ifdef _UNICODE
						pList->SetItemText (dwIndex, 1, pszDescriptions [dwIndex]);
#else
						_wcstombsz (szBuffer, pszDescriptions [dwIndex], sizeof (szBuffer) / sizeof (TCHAR));
						pList->SetItemText (dwIndex, 1, szBuffer);
#endif						

						// {roperty value:
						if (pValErrs && SUCCEEDED (pValErrs [dwIndex]))
							GetValue (pvtValues [dwIndex], szBuffer, sizeof (szBuffer) / sizeof (TCHAR)); 
						else
							lstrcpyn (szBuffer, _T("???"), sizeof (szBuffer) / sizeof (TCHAR));
						
						pList->SetItemText (dwIndex, 2, szBuffer);

						// Lookup item ID (may have to convert from UNICODE):
						if (pLookupErrs && SUCCEEDED (pLookupErrs [dwIndex]))
							{
#ifdef _UNICODE
							lstrcpyn (szBuffer, pszLookupIDs [dwIndex], sizeof (szBuffer) / sizeof (TCHAR));
#else
							_wcstombsz (szBuffer, pszLookupIDs [dwIndex], sizeof (szBuffer) / sizeof (TCHAR));
#endif
							}
						else
							{
							// No lookup item ID, so place "N/A" in list control:
							lstrcpyn (szBuffer, _T("N/A"), sizeof (szBuffer) / sizeof (TCHAR));
							pszLookupIDs [dwIndex] = NULL;
							}
						
						pList->SetItemText (dwIndex, 3, szBuffer);
						}
					}
				}
			}

		// COM requires us to free memory for data passed back to us:
		for (dwIndex = 0; dwIndex < dwCount; dwIndex++)
			{
			if (pszDescriptions && pszDescriptions [dwIndex]) 
				CoTaskMemFree (pszDescriptions [dwIndex]);

			if (pszLookupIDs && pszLookupIDs [dwIndex])
				CoTaskMemFree (pszLookupIDs [dwIndex]);

			// Clear variants:
			if (pvtValues)
				VariantClear (&pvtValues [dwIndex]);
			}

		if (pdwIDs)
			CoTaskMemFree (pdwIDs);

		if (pszDescriptions)
			CoTaskMemFree (pszDescriptions);

		if (pszLookupIDs)
			CoTaskMemFree (pszLookupIDs);

		if (pvtDataTypes)
			CoTaskMemFree (pvtDataTypes);

		if (pvtValues)
			CoTaskMemFree (pvtValues);
			
		if (pValErrs)
			CoTaskMemFree (pValErrs);

		if (pLookupErrs)
			CoTaskMemFree (pLookupErrs);
		}

	// Set the focus to the first control (data type) if the control that
	// previously had it became disabled:
	if (hWnd && !::IsWindowEnabled (hWnd))
		GetDlgItem (IDC_DATATYPE)->SetFocus ();

	// Transfer data to controls:
	UpdateData (false);
	}
void CItemShopLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const
{
    switch( message->Protocol )
    {
    case MP_RM_ITEM_SHOP_LOG_ACK:
    {
        const MSG_RM_ITEM_SHOP_LOG* m = ( MSG_RM_ITEM_SHOP_LOG* )message;

        if( m->mRequestTick != mTickCount )
        {
            break;
        }

        // 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다
        std::set< DWORD > indexSet;
        {
            for( int row = 0; row < listCtrl.GetItemCount(); ++row )
            {
                indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) );
            }
        }

        for( DWORD i = 0; i < m->mSize; ++i )
        {
            const MSG_RM_ITEM_SHOP_LOG::Log&	data	= m->mLog[ i ];
            const DWORD							row		= listCtrl.GetItemCount();
            int									step	= 0;

            if( indexSet.end() != indexSet.find( data.mIndex ) )
            {
                continue;
            }

            CString text;
            text.Format( _T( "%d" ), data.mIndex );
            listCtrl.InsertItem( row, text, 0 );

            listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) );
            listCtrl.SetItemText( row, ++step, mApplication.GetText( data.mType ) );

            text.Format( _T( "%d" ), data.mUser.mIndex );
            listCtrl.SetItemText( row, ++step, text );

            listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mUser.mId ) >( data.mUser.mId ) );
            listCtrl.SetItemText( row, ++step, mApplication.GetItemName( data.mItem.mIndex ) );

            text.Format( _T( "%d" ), data.mItem.mDbIndex );
            listCtrl.SetItemText( row, ++step, text );

            text.Format( _T( "%d" ), data.mItem.mQuantity );
            listCtrl.SetItemText( row, ++step, text );
        }

        {
            int minRange;
            int maxRange;
            progressCtrl.GetRange( minRange, maxRange );

            progressCtrl.SetPos( progressCtrl.GetPos() + m->mSize );

            CString text;
            text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange );
            resultStatic.SetWindowText( text );

            // 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함
            if( progressCtrl.GetPos() == maxRange )
            {
                findButton.EnableWindow( TRUE );
                stopButton.EnableWindow( FALSE );
            }
        }

        break;
    }
    case MP_RM_ITEM_SHOP_LOG_SIZE_ACK:
    {
        const MSG_DWORD* m = ( MSG_DWORD* )message;

        const DWORD size = m->dwData;

        CString text;
        text.Format( _T( "0/%d" ), size );

        resultStatic.SetWindowText( text );
        progressCtrl.SetRange32( 0, size );
        progressCtrl.SetPos( 0 );
        findButton.EnableWindow( FALSE );
        stopButton.EnableWindow( TRUE );

        listCtrl.DeleteAllItems();
        break;
    }
    case MP_RM_ITEM_SHOP_LOG_SIZE_NACK:
    {
        CString textThereIsNoResult;
        textThereIsNoResult.LoadString( IDS_STRING1 );
        MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK );
        break;
    }
    case MP_RM_ITEM_SHOP_LOG_STOP_ACK:
    {
        findButton.EnableWindow( TRUE );
        stopButton.EnableWindow( FALSE );

        CString textSearchWasStopped;
        textSearchWasStopped.LoadString( IDS_STRING2 );

        MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK );
        break;
    }
    case MP_RM_ITEM_SHOP_LOG_NACK_BY_AUTH:
    {
        CString textYouHaveNoAuthority;
        textYouHaveNoAuthority.LoadString( IDS_STRING18 );
        MessageBox( 0, textYouHaveNoAuthority, _T( "" ), MB_OK | MB_ICONERROR );
        break;
    }
    default:
    {
        ASSERT( 0 );
        break;
    }
    }
}
void CExperienceLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const
{
	switch( message->Protocol )
	{
	case MP_RM_EXP_LOG_GET_SIZE_ACK:
		{
			const MSG_DWORD* m = ( MSG_DWORD* )message;

			const DWORD size = m->dwData;

			CString text;
			text.Format( _T( "0/%d" ), size );

			resultStatic.SetWindowText( text );
			progressCtrl.SetRange32( 0, size );
			progressCtrl.SetPos( 0 );
			findButton.EnableWindow( FALSE );
			stopButton.EnableWindow( TRUE );

			listCtrl.DeleteAllItems();
			break;
		}
	case MP_RM_EXP_LOG_GET_SIZE_NACK:
		{			
			CString textThereIsNoResult;

			textThereIsNoResult.LoadString( IDS_STRING1 );

			MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK );
			break;
		}
	case MP_RM_EXP_LOG_GET_ACK:
		{
			const MSG_RM_EXP_LOG* m = ( MSG_RM_EXP_LOG* )message;
			
			// 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다
			std::set< DWORD > indexSet;
			{
				for( int row = 0; row < listCtrl.GetItemCount(); ++row )
				{
					indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) );
				}
			}

			for( DWORD i = 0; i < m->mSize; ++i )
			{
				const MSG_RM_EXP_LOG::Log&	data	= m->mLog[ i ];
				const DWORD					row		= listCtrl.GetItemCount();
				int							step	= 0;

				if( indexSet.end() != indexSet.find( data.mLogIndex ) )
				{
					continue;
				}

				CString text;
				text.Format( _T( "%d" ), data.mLogIndex );
				listCtrl.InsertItem( row, text, 0 );

				listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) );

				// 080416 LUJ, 로그 종류를 문자로 표시하도록 함
				listCtrl.SetItemText( row, ++step, mApplication.GetText( data.mType ) );

				text.Format( _T( "%d" ), data.mGrade );
				listCtrl.SetItemText( row, ++step, text );

				text.Format( _T( "%d" ), data.mVariation );
				listCtrl.SetItemText( row, ++step, text );

				// 080716 LUJ, 킬러 종류를 번호로 표시한다
				text.Format( _T( "%d" ), data.mKillerKind );
				listCtrl.SetItemText( row, ++step, text );

				listCtrl.SetItemText( row, ++step, mApplication.GetMonsterName( data.mKillerKind ) );
				
				text.Format( _T( "%d" ), data.mKillerIndex );
				listCtrl.SetItemText( row, ++step, text );

				// 080716 LUJ, 경험치 형이 커져서 실수형으로 변경
				text.Format( _T( "%0.0f" ), data.mExperience );
				listCtrl.SetItemText( row, ++step, text );

				// 080716 LUJ,  로그 상태에 따라 다른 형식으로 표시
				switch( data.mType )
				{
				case eExpLog_ProtectExp:
					{
						CString textProtect;
						textProtect.LoadString( IDS_STRING402 );

						text.Format( _T( "%s: %d" ), textProtect, data.mCount );
						listCtrl.SetItemText( row, ++step, text );
						break;
					}
				}
			}

			{
				int minRange;
				int maxRange;
				progressCtrl.GetRange( minRange, maxRange );

				progressCtrl.SetPos( progressCtrl.GetPos() + int( m->mSize ) );

				CString text;
				text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange );
				resultStatic.SetWindowText( text );

				// 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함
				if( progressCtrl.GetPos() == maxRange )
				{
					findButton.EnableWindow( TRUE );
					stopButton.EnableWindow( FALSE );
				}
			}

			break;
		}
	case MP_RM_EXP_LOG_GET_STOP_ACK:
		{
			findButton.EnableWindow( TRUE );
			stopButton.EnableWindow( FALSE );

			CString textSearchWasStopped;
			textSearchWasStopped.LoadString( IDS_STRING2 );

			MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK );
			break;
		}
	case MP_RM_EXP_LOG_GET_STOP_NACK:
		{
			ASSERT( 0 );
			break;
		}
	default:
		{
			break;
		}
	}
}
Beispiel #25
0
void CFarmLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const
{
	switch( message->Protocol )
	{
	case MP_RM_FARM_LOG_ACK:
		{
			// 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다
			std::set< DWORD > indexSet;
			{
				for( int row = 0; row < listCtrl.GetItemCount(); ++row )
				{
					indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) );
				}
			}

			const MSG_RM_FARM_LOG* m = ( MSG_RM_FARM_LOG* )message;

			if( m->mRequestTick != mTickCount )
			{
				break;
			}

			for( DWORD i = 0; i < m->mSize; ++i )
			{
				const MSG_RM_FARM_LOG::Log&	data	= m->mLog[ i ];
				const DWORD					row		= listCtrl.GetItemCount();
				int							step	= 0;

				if( indexSet.end() != indexSet.find( data.mIndex ) )
				{
					continue;
				}

				CString text;
				text.Format( _T( "%d" ), data.mIndex );
				listCtrl.InsertItem( row, text, 0 );

				listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) );
				listCtrl.SetItemText( row, ++step, mApplication.GetText( FARM_LOG_KIND( data.mKind ) ) );
				
				text.Format( _T( "%d" ), data.mFarmIndex );
				listCtrl.SetItemText( row, ++step, text );

				text.Format( _T( "%d" ), data.mZone );
				listCtrl.SetItemText( row, ++step, text );

				text.Format( _T( "%d" ), data.mPlayerIndex );
				listCtrl.SetItemText( row, ++step, text );

				// 080423 LUJ,	농장 개선 로그일 때는 값에 표시
				//
				//		주의:	로그가 잘못 표시되고 있음. 소스를 고치면 기존 로그가 손상되므로, 복구툴에서 정정함
				//				이에 따라 로그 타입과 실제 표시되는 텍스트가 다를 수 있음
				//
				//		정원 -> 정원, 울타리 -> 축사, 집 -> 울타리, 창고 -> 집, 축사 -> 창고
				if( FARM_LOG_KIND_UPGRADE == data.mKind )
				{
					switch( data.mValue1 )
					{
					case FARM_UPGRADE_LOG_KIND_GARDEN:
						{
							CString textGarden;
							textGarden.LoadString( IDS_STRING368 );

							listCtrl.SetItemText( row, ++step, textGarden );
							break;
						}
					case FARM_UPGRADE_LOG_KIND_FENCE:
						{
							CString textCage;
							textCage.LoadString( IDS_STRING367 );

							listCtrl.SetItemText( row, ++step, textCage );
							break;
						}
					case FARM_UPGRADE_LOG_KIND_HOUSE:
						{
							CString textFence;
							textFence.LoadString( IDS_STRING366 );

							listCtrl.SetItemText( row, ++step, textFence );
							break;
						}
					case FARM_UPGRADE_LOG_KIND_WAREHOUSE:
						{
							CString textHouse;
							textHouse.LoadString( IDS_STRING369 );

							listCtrl.SetItemText( row, ++step, textHouse );
							break;
						}
					case FARM_UPGRADE_LOG_KIND_ANIMALCAGE:
						{
							CString textWarehouse;
							textWarehouse.LoadString( IDS_STRING282 );

							listCtrl.SetItemText( row, ++step, textWarehouse );
							break;
						}
					default:
						{
							listCtrl.SetItemText( row, ++step, _T( "?" ) );
							break;
						}
					}
				}
				else
				{
					text.Format( _T( "%d" ), data.mValue1 );
					listCtrl.SetItemText( row, ++step, text );
				}				

				text.Format( _T( "%d" ), data.mValue2 );
				listCtrl.SetItemText( row, ++step, text );
			}

			{
				int minRange;
				int maxRange;
				progressCtrl.GetRange( minRange, maxRange );

				progressCtrl.SetPos( progressCtrl.GetPos() + m->mSize );

				CString text;
				text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange );
				resultStatic.SetWindowText( text );

				// 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함
				if( progressCtrl.GetPos() == maxRange )
				{
					findButton.EnableWindow( TRUE );
					stopButton.EnableWindow( FALSE );
				}
			}

			break;
		}
	case MP_RM_FARM_LOG_SIZE_ACK:
		{
			const MSG_DWORD* m = ( MSG_DWORD* )message;

			const DWORD size = m->dwData;

			CString text;
			text.Format( _T( "0/%d" ), size );

			resultStatic.SetWindowText( text );
			progressCtrl.SetRange32( 0, size );
			progressCtrl.SetPos( 0 );
			findButton.EnableWindow( FALSE );
			stopButton.EnableWindow( TRUE );

			listCtrl.DeleteAllItems();
			break;
		}
	case MP_RM_FARM_LOG_SIZE_NACK:
		{
			CString textThereIsNoResult;
			textThereIsNoResult.LoadString( IDS_STRING1 );
			MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK );
			break;
		}
	case MP_RM_FARM_LOG_STOP_ACK:
		{
			findButton.EnableWindow( TRUE );
			stopButton.EnableWindow( FALSE );

			CString textSearchWasStopped;
			textSearchWasStopped.LoadString( IDS_STRING2 );

			MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK );
			break;
		}
	case MP_RM_FARM_LOG_NACK_BY_AUTH:
		{
			CString textYouHaveNoAuthority;
			textYouHaveNoAuthority.LoadString( IDS_STRING18 );
			MessageBox( 0, textYouHaveNoAuthority, _T( "" ), MB_OK | MB_ICONERROR );
			break;
		}
	default:
		{
			ASSERT( 0 );
			break;
		}
	}
}
Beispiel #26
0
//查找线程处理函数
DWORD WINAPI CDlgFormulaFind::FindComp(LPVOID pParameter)
{
	CDlgFormulaFind* pCompFind = (CDlgFormulaFind*)(pParameter);
	if( pCompFind == NULL)
		return 0;

	CWnd* pWnd = pCompFind->GetDlgItem(IDC_STARTBUTTON);
	if(pWnd != NULL)
	{
		pWnd->EnableWindow(false);
	}
	pWnd = pCompFind->GetDlgItem(IDC_STOPBUT);
	if(pWnd != NULL)
	{
		pWnd->EnableWindow(true);
	}

	pCompFind->m_wndAnimate.Play(0,-1,-1);
	CString strKey ;
	pCompFind->m_wndKeyCombo.GetWindowText(strKey);
	strKey.MakeUpper();
//	DWORD dwFindMask = pCompFind->GetFindMask();
	DWORD dwFindMask = pCompFind->m_nFindMask;
	if( dwFindMask == 0 ) 
		return 0;
	
	CListCtrl* pListCtrl = &(pCompFind->m_wndResultList);
	if( pListCtrl == NULL)
		return 0;

	pListCtrl->DeleteAllItems();
	CMapVariabile* pVarsMap = CDlgFormulaMan::m_pExternExpression;
	if(pVarsMap != NULL)
	{
		POSITION pos = pVarsMap->GetStartPosition();
		pWnd = pCompFind->GetDlgItem(IDC_RESULTSTATIC);

		CString sName;
		CValue *pVal;
		while (pos != NULL && pCompFind->m_bThreadRun)
		{			
			pVarsMap->GetNextAssoc (pos, sName, pVal);

			if(pVal != NULL)
			{
				if( pVal->IsStyle(HX_EXPRESSSENTENCE) )
				{
					CString strFindText = _T("正在查找 --");
					strFindText +=  ((CExpValue*)pVal)->GetWholeName();
					pWnd->SetWindowText( strFindText);
					CString strRet;
					if( ((CExpValue*)pVal)->Find(strKey,strRet,dwFindMask) )
					{

						int nCount = pListCtrl->GetItemCount();
						CString strText;
						strText.Format(TEXT("%d"), nCount+1);

						// Insert the item, select every other item.
						CExpression* pExpression = ((CExpValue*)pVal)->GetExp();
						if(pExpression )
						{
							DWORD dwMask = (DWORD)pExpression->GetExpressType();
							dwMask &= 0xf;
							if ((pCompFind->m_dwMask & dwMask) == 0)
							{
								continue;
							}

							pListCtrl->InsertItem(
								LVIF_TEXT|LVIF_STATE, nCount, strText, 
								(nCount%2)==0 ? LVIS_SELECTED : 0, LVIS_SELECTED,
								0, 0);
							pListCtrl->SetItemData(nCount,(DWORD)pExpression);

							int nNameIndex = strRet.Find(_T("公式全名"));
							int nDescrible = strRet.Find(_T("公式描述"));
							if( nDescrible - nNameIndex != 8)
							{
								CString strDescrible = strRet.Mid(
									nNameIndex+8,nDescrible-nNameIndex-8);
								pListCtrl->SetItemText(nCount, 2,  strDescrible);
							}

							CString strWholeName = strRet.Left(nNameIndex);
							pListCtrl->SetItemText(nCount, 1, strWholeName.Mid(1,nNameIndex));

							CString strGroup;
							switch( dwMask )
							{
							case Tech :
								{
									strGroup = CTreeCtrlFormula::g_strTech;
									break;
								}
							case Exchange :
								{

									strGroup = CTreeCtrlFormula::g_strExchange;
									break;
								}
							case Condition :
								{
									strGroup = CTreeCtrlFormula::g_strCondition;
									break;
								}
							case MoreKLine :
								{
									strGroup = CTreeCtrlFormula::g_strColorKLine;
									break;
								}
							case Strategy : //20090302 YJT 增加 Strategy
								{
									strGroup = CTreeCtrlFormula::g_strStrategy;
									break;
								}
							default :
								{
									return 0;
								}
							}

							pListCtrl->SetItemText(nCount, 3, strGroup);
						}
					}
				}		
			}
		}

		CString strFindText ;
		strFindText.Format(_T("找到 %d 个对象"),pListCtrl->GetItemCount());
		pWnd->SetWindowText( strFindText);
		pWnd = pCompFind->GetDlgItem(IDC_STARTBUTTON);

		if(pWnd != NULL)
		{
			pWnd->EnableWindow(true);
		}
		pWnd = pCompFind->GetDlgItem(IDC_STOPBUT);
		if(pWnd != NULL)
		{
			pWnd->EnableWindow(false);
		}
		pCompFind->m_wndAnimate.Stop();

	}
	return 0;
}
void COpenExcelDlg::Lin_InportExcelToList(CString m_FilePath,CListCtrl &m_List)
{
	//先删除列表内容//
	m_List.DeleteAllItems();
	while(m_List.GetHeaderCtrl()->GetItemCount()>0)
	{
		m_List.DeleteColumn(0);
	}
	//导入
	CApplication app;
	CWorkbook book;
	CWorkbooks books;
	CWorksheet sheet;
	CWorksheets sheets;
	CRange range;
	LPDISPATCH lpDisp;
	//定义变量//
	COleVariant covOptional((long)
		DISP_E_PARAMNOTFOUND,VT_ERROR);
	if (!app.CreateDispatch(_T("Excel.Application")))
	{
		this->MessageBox(_T("无法创建Excel应用"));
		return;
	}
	books = app.get_Workbooks();
	//打开Excel,其中m_FilePath为Excel表的路径名//
	lpDisp = books.Open(m_FilePath,covOptional
		,covOptional,covOptional,covOptional
		,covOptional,covOptional,covOptional
		,covOptional,covOptional,covOptional
		,covOptional,covOptional,covOptional
		,covOptional);
	book.AttachDispatch(lpDisp);
	sheets = book.get_Worksheets();
	sheet = sheets.get_Item(COleVariant((short)1));
	CStringArray m_HeadName;
	for (int i=1;i<26;i++)
	{
		CString m_pos = Lin_GetEnglishCharacter(i);
		m_pos = m_pos + _T("1");
		range = sheet.get_Range(COleVariant(m_pos),COleVariant(m_pos));
		//获得单元格的内容
		COleVariant rValue;
		rValue = COleVariant(range.get_Value2());
		//转换成宽字符//
		rValue.ChangeType(VT_BSTR);
		//转换格式,并输出//
		CString m_content = CString(rValue.bstrVal);
		if (m_content!=_T(""))
		{
			m_HeadName.Add(m_content);
		}
	}
	Lin_InitList(m_List,m_HeadName);	
	CStringArray m_ContentArr;
	for (int ItemNum = 0;ItemNum<10000;ItemNum++)
	{
		for (int j=1;j<m_List.GetHeaderCtrl()->GetItemCount();j++)
		{
			CString m_pos = Lin_GetEnglishCharacter(j);
			CString m_Itempos;
			m_Itempos.Format(_T("%d"),ItemNum+2);
			CString m_str = m_pos+m_Itempos;
			range = sheet.get_Range(COleVariant(m_str),COleVariant(m_str));
			//获得单元格的内容
			COleVariant rValue;
			rValue = COleVariant(range.get_Value2());
			//转换成宽字符//
			rValue.ChangeType(VT_BSTR);
			//转换格式,并输出//
			CString m_content = CString(rValue.bstrVal);
			m_ContentArr.Add(m_content);
		}
		if (m_ContentArr.GetAt(0)!=_T(""))
		{
			Lin_InsertList(m_List,m_ContentArr);
			m_ContentArr.RemoveAll();
		}
		else{
			break;
		}
	}
	book.put_Saved(TRUE);
	app.Quit();

}
void CUpdateDataThread::Task()
{

	CListCtrl *pList = &(pParent->pCamListDlg->m_CamList);
	pList->DeleteAllItems();
	vector<CameraObject*>::iterator it;
	int mindex = 0;
	Tmtv_CameraInfo mCamInfo;
	wchar_t wstr[512];
	for (it = pCamManager->m_CameraObjectVector.begin(); it != pCamManager->m_CameraObjectVector.end(); it++)
	{
		(*it)->GetCamInfo(&mCamInfo);
		wsprintf(wstr, L"%d", mCamInfo.Indexnum);
		int nRow = pList->InsertItem(mindex, wstr);
		switch (mCamInfo.Status)
		{
		case Tmtv_CameraInfo::TMTV_RUNNINGCAM:
			wsprintf(wstr, L"运行");
			break;
		case Tmtv_CameraInfo::TMTV_STOPEDCAM:
			wsprintf(wstr, L"停止");
			break;
		default:
			wsprintf(wstr, L"未知");
			break;
		}
		pList->SetItemText(nRow, 1, wstr);
		switch (mCamInfo.AlgorithmInfo.WarnningLevel)
		{
		case Tmtv_AlgorithmInfo::TMTV_NOWARN :
			wsprintf(wstr, L"停止");
			break;
		case Tmtv_AlgorithmInfo::TMTV_PREWARN:
			wsprintf(wstr, L"运行");
			break;
		case Tmtv_AlgorithmInfo::TMTV_STARTWARN:
			wsprintf(wstr, L"运行");
			break;
		default:
			wsprintf(wstr, L"未知");
			break;
		}
		pList->SetItemText(nRow, 2, wstr);
		wsprintf(wstr, L"%d", mCamInfo.AlgorithmInfo.WarnningLevel);
		pList->SetItemText(nRow, 3, wstr);
		CCommonFunc::AnsiToUnicode(mCamInfo.CameraName, wstr, sizeof(wstr));
		pList->SetItemText(nRow, 4, wstr);
		CCommonFunc::AnsiToUnicode(mCamInfo.CameraPath, wstr, sizeof(wstr));
		pList->SetItemText(nRow, 5, wstr);
		mindex++;
	}
	//////////////////////////////////////////////////////////////////////////
	//网络状态
	CListBox* pListBox = &(pParent->pNetWorkDlg->mNetStatusList);
	ReceiveServerSetting mRecvSetting;
	SendServerSetting mSendSetting;
	pCamManager->m_SendServer.GetSetting(mSendSetting);
	pCamManager->m_ReceiveServer.GetSetting(mRecvSetting);
	pListBox->ResetContent();
	pListBox->AddString(L"发送状态: ");
	DWORD mstatus;
	mstatus = pCamManager->m_SendServer.GetSendServerStatus();
	if ((mstatus&TmtSocket::enSendOK) == TmtSocket::enSendOK)
	{
		wsprintf(wstr, L"  运行状态: 正常");
	}
	else
	{
		wsprintf(wstr, L"  运行状态: 异常");
	}
	pListBox->AddString(wstr);
	wsprintf(wstr, L"  本地端口号: %d", mSendSetting.m_LocalSendPort);
	pListBox->AddString(wstr);
	NetIPW mWip;
	CCommonFunc::AnsiToUnicode(mSendSetting.m_LocalSendIP, mWip, TMTV_IPSTRLEN);
	wsprintf(wstr, L"  本地IP: %s", mWip);
	pListBox->AddString(wstr);
	wsprintf(wstr, L"  远端端口号: %d", mSendSetting.m_RemoteRecvPort);
	pListBox->AddString(wstr);
	CCommonFunc::AnsiToUnicode(mSendSetting.m_RemoteRecvIp, mWip, TMTV_IPSTRLEN);
	wsprintf(wstr, L"  远端IP: %s", mWip);
	pListBox->AddString(wstr);
	////////////////////////////////////////////////////////////////
	pListBox->AddString(L"接收状态:");
	mstatus = pCamManager->m_ReceiveServer.GetReceiveStatus();
	if ((mstatus&TmtSocket::enRecvOK) == TmtSocket::enRecvOK)
	{
		wsprintf(wstr, L"  运行状态: 正常");
	}
	else
	{
		wsprintf(wstr, L"  运行状态: 异常");
	}
	pListBox->AddString(wstr);
	wsprintf(wstr, L"  本地端口号: %d", mRecvSetting.m_LocalRecvPort);
	pListBox->AddString(wstr);
	CCommonFunc::AnsiToUnicode(mRecvSetting.m_LocalRecvIP, mWip, TMTV_IPSTRLEN);
	wsprintf(wstr, L"  本地IP: %s", mWip);
	pListBox->AddString(wstr);
	m_NetCount++;
	if (m_NetCount>=6)
	{
		if ((pCamManager->m_SendServer.GetSendServerStatus() & SendServer::enSendOK) != SendServer::enSendOK)
		{
			pCamManager->m_SendServer.ResetSocket();
		}
		if ((pCamManager->m_ReceiveServer.GetReceiveStatus() & SendServer::enRecvOK) != SendServer::enRecvOK)
		{
			pCamManager->m_ReceiveServer.ResetSocket();
		}
		m_NetCount = 0;
	}

}
Beispiel #29
0
void CfoodTrackView::OnViewRefresh() 
{
	// TODO: Add your command handler code here
	CListCtrl *pListCtrl;
	pListCtrl = &this->GetListCtrl(); 
	pListCtrl->DeleteAllItems();
	while(pListCtrl->DeleteColumn(0)){}

	//LV_ITEM lvitem;
	CStudent *pStu;
	CItem *pItem;
	CString sTmp;
	CClass *pClass;
	int i=0,iPos=0,j=0;
	CfoodTrackDoc *pDoc=this->GetDocument();
	switch(m_nDataType)
	{
	case dtStudent:
		pDoc->FillStudentsToListctrl(pListCtrl,_T(""),_T("")); 
		break;
	case dtClass:
		pListCtrl->InsertColumn(0,"*",LVCFMT_LEFT,30,-1);
		pListCtrl->InsertColumn(1,"日期",LVCFMT_LEFT,80,-1);
		pListCtrl->InsertColumn(2,"时间",LVCFMT_LEFT,40,-1);
		pListCtrl->InsertColumn(3,"车号",LVCFMT_LEFT,80,-1);
		pListCtrl->InsertColumn(4,"教练",LVCFMT_LEFT,50,-1);
		pListCtrl->InsertColumn(5,"姓名",LVCFMT_LEFT,50,-1);
		pListCtrl->InsertColumn(6,"性别",LVCFMT_LEFT,40,-1);
		pListCtrl->InsertColumn(7,"身份证",LVCFMT_LEFT,100,-1);
		pListCtrl->InsertColumn(8,"联系地址",LVCFMT_LEFT,110,-1);
		pListCtrl->InsertColumn(9,"电话",LVCFMT_LEFT,80,-1);		
		pListCtrl->InsertColumn(10,"上车时间",LVCFMT_LEFT,70,-1);
		pListCtrl->InsertColumn(11,"场考时间",LVCFMT_LEFT,70,-1);
		pListCtrl->InsertColumn(12,"路考时间",LVCFMT_LEFT,70,-1);
		pListCtrl->InsertColumn(13,"考试类型",LVCFMT_LEFT,70,-1);
		pListCtrl->InsertColumn(14,"发证日期",LVCFMT_LEFT,70,-1);
		if(pDoc->ReadClasss(0,0,_T(""),_T(""))<=0)
			return;
		for(i=0;i<pDoc->m_arrClass.GetSize();i++)
		{   pClass = pDoc->m_arrClass[i]; 
			for(j=0;j<pClass->m_arrStudent.GetSize();j++)
			{
				pStu = pClass->m_arrStudent[j];
				sTmp.Format("%d",pListCtrl->GetItemCount()+1);
				iPos = pListCtrl->InsertItem(pListCtrl->GetItemCount(),sTmp,0);
				sTmp.Format("%d-%d-%d",pClass->m_F_Date.GetYear(),pClass->m_F_Date.GetMonth(),pClass->m_F_Date.GetDay());
				pListCtrl->SetItemText(iPos,1,sTmp);
				if(pClass->m_F_NoonID==0)
					sTmp = "上午";
				else
					sTmp = "下午";
				pListCtrl->SetItemText(iPos,2,sTmp);
				pListCtrl->SetItemText(iPos,3,pClass->m_F_AutoNo);
				pListCtrl->SetItemText(iPos,4,pClass->m_F_Teacher);
				pListCtrl->SetItemText(iPos,5,pStu->m_F_ItemName);
				pListCtrl->SetItemText(iPos,6,pStu->m_F_Sex);
				pListCtrl->SetItemText(iPos,7,pStu->m_F_SN);
				pListCtrl->SetItemText(iPos,8,pStu->m_F_Address);
				pListCtrl->SetItemText(iPos,9,pStu->m_F_Tel);
			//*/日期/时间/车号/教练/姓名/性别/身份证/联系地址/电话/上车时间
			//场考时间/路考时间/考试类型/发证日期
				if(pStu->m_tmUpAuto>0)
				{	
					sTmp.Format("%d-%d-%d",pStu->m_tmUpAuto.GetYear(),pStu->m_tmUpAuto.GetMonth(),pStu->m_tmUpAuto.GetDay());
					pListCtrl->SetItemText(iPos,10,sTmp);
				}
				if(pStu->m_tmExamField>0)
				{
					sTmp.Format("%d-%d-%d",pStu->m_tmExamField.GetYear(),pStu->m_tmExamField.GetMonth(),pStu->m_tmExamField.GetDay());
					pListCtrl->SetItemText(iPos,11,sTmp);
				}
				if(pStu->m_tmExamRoad>0)
				{
					sTmp.Format("%d-%d-%d",pStu->m_tmExamRoad.GetYear(),pStu->m_tmExamRoad.GetMonth(),pStu->m_tmExamRoad.GetDay());
					pListCtrl->SetItemText(iPos,12,sTmp);
				}
				pItem = pDoc->GetItemByID(&pDoc->m_arrExamType,pStu->m_nExamTypeID); 
				if(pItem)
					pListCtrl->SetItemText(iPos,13,pItem->m_F_ItemName); 
				if(pStu->m_tmEnd>0)
				{
					sTmp.Format("%d-%d-%d",pStu->m_tmEnd.GetYear(),pStu->m_tmEnd.GetMonth(),pStu->m_tmEnd.GetDay());
					pListCtrl->SetItemText(iPos,14,sTmp);
				}
				pListCtrl->SetItemData(iPos,pClass->m_F_ID);
			}
		}
		break;
	default:
		break;
	}
}
void CItemOptionLogCommand::Parse( const MSGROOT* message, CListCtrl& listCtrl, CProgressCtrl& progressCtrl, CStatic& resultStatic, CButton& findButton, CButton& stopButton ) const
{
	switch( message->Protocol )
	{
	case MP_RM_ITEM_OPTION_LOG_GET_ACK:
		{
			// 080401 LUJ, 이전 로그에 대한 인덱스 세트를 만들어 중복되지 않도록 체크한다
			std::set< DWORD > indexSet;
			{
				for( int row = 0; row < listCtrl.GetItemCount(); ++row )
				{
					indexSet.insert( _ttoi( listCtrl.GetItemText( row, 0 ) ) );
				}
			}

			const MSG_RM_ITEM_OPTION_LOG* m = ( MSG_RM_ITEM_OPTION_LOG* )message;

			for( DWORD i = 0; i < m->mSize; ++i )
			{
				const MSG_RM_ITEM_OPTION_LOG::Log& data = m->mLog[ i ];

				const DWORD row		= listCtrl.GetItemCount();
				int			step	= -1;

				if( indexSet.end() != indexSet.find( data.mLogIndex ) )
				{
					continue;
				}

				CString text;
				text.Format( _T( "%d" ), data.mLogIndex );
				listCtrl.InsertItem( row, text, ++step );

				listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mDate ) >( data.mDate ) );

				listCtrl.SetItemText( row, ++step, mApplication.GetText( data.mType ) );

				text.Format( _T( "%d" ), data.mItemDbIndex );
				listCtrl.SetItemText( row, ++step, text );

				{
					const ITEM_OPTION::Reinforce& reinforce = data.mOption.mReinforce;

					text.Format( _T( "%d" ), reinforce.mStrength );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mDexterity );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mVitality );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mIntelligence );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mWisdom );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mLife );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mMana );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mLifeRecovery );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mManaRecovery );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mPhysicAttack );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mPhysicDefence );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mMagicAttack );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), reinforce.mMagicDefence );
					listCtrl.SetItemText( row, ++step, text );

					// 080428 LUJ, 크리티컬 레이트가 이동 속도로 잘못 저장되고 있음
					text.Format( _T( "%d" ), reinforce.mMoveSpeed );
					listCtrl.SetItemText( row, ++step, text );

					// 080428 LUJ, 크리티컬 데미지가 회피로 잘못 저장되고 있음
					text.Format( _T( "%d" ), reinforce.mEvade );
					listCtrl.SetItemText( row, ++step, text );

					// 080428 LUJ, 이동 속도가 명중으로 잘못 저장되고 있음. 
					text.Format( _T( "%d" ), reinforce.mAccuracy );
					listCtrl.SetItemText( row, ++step, text );

					// 080428 LUJ, 회피가 크리티컬 레이트로 잘못 저장되고 있음
					text.Format( _T( "%d" ), reinforce.mCriticalRate );
					listCtrl.SetItemText( row, ++step, text );

					// 080428 LUJ, 명중이 크리티컬 데미지로 잘못 저장되고 있음
					text.Format( _T( "%d" ), reinforce.mCriticalDamage );
					listCtrl.SetItemText( row, ++step, text );
				}

				{
					const ITEM_OPTION::Mix& mix = data.mOption.mMix;

					text.Format( _T( "%d" ), mix.mStrength );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), mix.mIntelligence );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), mix.mDexterity );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), mix.mWisdom );
					listCtrl.SetItemText( row, ++step, text );

					text.Format( _T( "%d" ), mix.mVitality );
					listCtrl.SetItemText( row, ++step, text );
				}

				{
					const ITEM_OPTION::Enchant& enchant = data.mOption.mEnchant;
					text.Format( _T( "%d" ), enchant.mIndex );
					listCtrl.SetItemText( row, ++step, text );
					text.Format( _T( "%d" ), enchant.mLevel );
					listCtrl.SetItemText( row, ++step, text );
				}

				listCtrl.SetItemText( row, ++step, CA2WEX< sizeof( data.mMemo ) >( data.mMemo ) );
			}

			{
				int minRange;
				int maxRange;
				progressCtrl.GetRange( minRange, maxRange );

				progressCtrl.SetPos( progressCtrl.GetPos() + int( m->mSize ) );

				CString text;
				text.Format( _T( "%d/%d" ), progressCtrl.GetPos(), maxRange );
				resultStatic.SetWindowText( text );

				// 080523 LUJ, 버튼 활성화 체크가 정상적으로 되도록 수정함
				if( progressCtrl.GetPos() == maxRange )
				{
					findButton.EnableWindow( TRUE );
					stopButton.EnableWindow( FALSE );
				}
			}

			break;
		}
	case MP_RM_ITEM_OPTION_LOG_SIZE_ACK:
		{
			const MSG_DWORD* m = ( MSG_DWORD* )message;

			const DWORD size = m->dwData;

			CString text;
			text.Format( _T( "0/%d" ), size );

			resultStatic.SetWindowText( text );
			progressCtrl.SetRange32( 0, size );
			progressCtrl.SetPos( 0 );
			findButton.EnableWindow( FALSE );
			stopButton.EnableWindow( TRUE );

			listCtrl.DeleteAllItems();
			break;
		}
	case MP_RM_ITEM_OPTION_LOG_SIZE_NACK:
		{
			CString textThereIsNoResult;
			textThereIsNoResult.LoadString( IDS_STRING1 );

			MessageBox( 0, textThereIsNoResult, _T( "" ), MB_ICONERROR | MB_OK );
			break;
		}
	case MP_RM_ITEM_OPTION_LOG_STOP_ACK:
		{
			findButton.EnableWindow( TRUE );
			stopButton.EnableWindow( FALSE );

			CString textSearchWasStopped;
			textSearchWasStopped.LoadString( IDS_STRING2 );

			MessageBox( 0, textSearchWasStopped, _T( "" ), MB_ICONERROR | MB_OK );
			break;
		}
	case MP_RM_ITEM_OPTION_LOG_NACK_BY_AUTH:
		{
			CString textYouHaveNoAuthority;
			textYouHaveNoAuthority.LoadString( IDS_STRING18 );

			MessageBox( 0, textYouHaveNoAuthority, _T( "" ), MB_OK | MB_ICONERROR );
			break;
		}
	default:
		{
			ASSERT( 0 );
			break;
		}
	}
}