dlgreqmgt.cpp

来自「《Visual C++经典编程大全》配套代码」· C++ 代码 · 共 176 行

CPP
176
字号
// DlgReqMgt.cpp : implementation file
//

#include "stdafx.h"
#include "NClient.h"
#include "DlgReqMgt.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgReqMgt dialog


CDlgReqMgt::CDlgReqMgt(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgReqMgt::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgReqMgt)
	m_bStartReq = false;
	//}}AFX_DATA_INIT
}


void CDlgReqMgt::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgReqMgt)
	DDX_Control(pDX, IDC_LIST_MAIN, m_list);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgReqMgt, CDialog)
	//{{AFX_MSG_MAP(CDlgReqMgt)
	ON_BN_CLICKED(IDC_BTN_CLOSE, OnBtnClose)
	ON_BN_CLICKED(IDC_BTN_SENDREQ, OnBtnSendreq)
	ON_BN_CLICKED(IDC_BTN_RESULT, OnBtnResult)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgReqMgt message handlers

void CDlgReqMgt::OnBtnClose() 
{
	CDialog::OnCancel();	
}

BOOL CDlgReqMgt::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_list.ModifyStyle(0, LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL);
	m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP);
	
	m_list.InsertColumn(0,"编号",LVCFMT_LEFT,70);
	m_list.InsertColumn(1,"申请空间大小",LVCFMT_LEFT,100);
	m_list.InsertColumn(2,"是否同意",LVCFMT_LEFT,100);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgReqMgt::OnBtnSendreq() 
{
	CString strCont = "";
	int nCont = 0;

	GetDlgItem(IDC_EDIT_CONT)->GetWindowText(strCont);
	nCont = atoi(strCont);

	if(nCont <= 0){
		MessageBox("不能申请小于等于0的空间!");
		return;
	}
	
	CString nData = "";

	nData.Format("ReqSpace#%s#%s#%s#" ,((CNClientApp *)AfxGetApp())->m_strUserCode,((CNClientApp *)AfxGetApp())->m_strUserName,strCont);
	
	((CNClientApp *)AfxGetApp())->m_socket->SendData(nData);

	MessageBox("空间申请已经发送成功!");

}

void CDlgReqMgt::OnBtnResult() 
{

	m_list.DeleteAllItems();

	CString nData = "";
	nData.Format("ReqList#%s#",((CNClientApp *)AfxGetApp())->m_strUserCode);
	((CNClientApp *)AfxGetApp())->m_socket->SendData(nData);

	GetDlgItem(IDC_BTN_RESULT)->EnableWindow(false);

	((CNClientApp *)AfxGetApp())->m_status = REQ_GETREQ;
	((CNClientApp *)AfxGetApp())->DeleteLastMsg();

	m_bStartReq = true;

	SetTimer(1005,1000,NULL);
	
}

void CDlgReqMgt::OnTimer(UINT nIDEvent) 
{
	if(nIDEvent == 1005 && m_bStartReq){
		if(((CNClientApp *)AfxGetApp())->m_status == STA_NORMAL){

			CArrayLastMsg *pItem = ((CNClientApp *)AfxGetApp())->m_arrLastMsg;

			GetDlgItem(IDC_BTN_RESULT)->EnableWindow(true);

			m_bStartReq = false;
			
			while(pItem != NULL){
				AddItem(pItem->strData);
				pItem = pItem->pNext;
			}
			
			((CNClientApp *)AfxGetApp())->DeleteLastMsg();

		}
	}	
	

	CDialog::OnTimer(nIDEvent);
}

void CDlgReqMgt::AddItem(CString nData)
{
	if(strlen(nData) <= 0)
		return;

	CString strIndex = "";
	CString strSpace = "";
	CString strAgree = "";

	CString yData = nData;
	if(yData.Find("#") == -1 || yData.GetLength() <= 4 )
		return;

	yData = yData.Right(yData.GetLength() - 1);
	int pNum = yData.Find("#");
	if(pNum == -1)
		return;

	strIndex = yData.Left(pNum);
	yData = yData.Right(yData.GetLength() - pNum - 1);
	pNum = yData.Find("#");
	if(pNum == -1)
		return;

	strSpace = yData.Left(pNum);
	yData = yData.Right(yData.GetLength() - pNum - 1);
	if(strlen(yData) > 0)
		yData.Replace("#","");
	strAgree = yData;
	strAgree.TrimRight(" ");

	int nItem = m_list.InsertItem(0,strIndex);
	m_list.SetItemText(nItem,1,strSpace);
	if(strcmp(strAgree,"1") == 0)
		m_list.SetItemText(nItem,2,"是");
	else if(strcmp(strAgree,"2") == 0)
		m_list.SetItemText(nItem,2,"否");
	else
		m_list.SetItemText(nItem,2,"未处理");

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?