⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sbtinput.cpp

📁 ISO9000质量管理小程序
💻 CPP
字号:
// SbtInput.cpp : implementation file
//

#include "stdafx.h"
#include "Ex07b.h"
#include "SbtInput.h"
#include "SbtDoc.h"

extern BOOL m_pmenu;
extern BOOL m_smenu;
extern BOOL m_zmenu;

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

/////////////////////////////////////////////////////////////////////////////
// CSbtInput

IMPLEMENT_DYNCREATE(CSbtInput, CFormView)

CSbtInput::CSbtInput()
	: CFormView(CSbtInput::IDD)
{
	//{{AFX_DATA_INIT(CSbtInput)
	m_lyi = 0.0f;
	m_lxi = 0.0f;
	//}}AFX_DATA_INIT
}

CSbtInput::~CSbtInput()
{
}

void CSbtInput::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSbtInput)
	DDX_Text(pDX, IDC_YI, m_lyi);
	DDX_Text(pDX, IDC_XI, m_lxi);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSbtInput, CFormView)
	//{{AFX_MSG_MAP(CSbtInput)
	ON_BN_CLICKED(IDC_SBTADD, OnSbtadd)
	ON_BN_CLICKED(IDC_SBTTONGJI, OnSbttongji)
	ON_BN_CLICKED(IDC_SBTXG, OnSbtxg)
	ON_BN_CLICKED(IDC_SBTNEXT, OnSbtnext)
	ON_BN_CLICKED(IDC_SINSERT, OnInsert)
	ON_BN_CLICKED(IDC_SREMOVE, OnRemove)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSbtInput diagnostics

#ifdef _DEBUG
void CSbtInput::AssertValid() const
{
	CFormView::AssertValid();
}

void CSbtInput::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSbtInput message handlers

void CSbtInput::OnSbtadd() 
{
	// TODO: Add your control notification handler code here

	m_smenu=true;
	
	UpdateData();
	CSbtDoc *pDoc=GetDocument();
	ASSERT_VALID(pDoc);

	CSbtsj * pSbtsj;
	pSbtsj=new CSbtsj(m_lxi,m_lyi);
	if(pDoc->H_min>pSbtsj->Xi)
		pDoc->H_min=pSbtsj->Xi;
	if (pDoc->H_max<pSbtsj->Xi)
		pDoc->H_max=pSbtsj->Xi;
	if (pDoc->Z_min>pSbtsj->Yi)
		pDoc->Z_min=pSbtsj->Yi;
	if (pDoc->Z_max<pSbtsj->Yi)
		pDoc->Z_max=pSbtsj->Yi;
	pDoc->m_sbtdataList.AddTail(pSbtsj);
	pDoc->SetModifiedFlag(TRUE);
	pDoc->spos=pDoc->m_sbtdataList.GetHeadPosition();


	pDoc->UpdateAllViews(this);
//控制控件的允许,
	CWnd *m_Wnd=NULL;

	m_Wnd=GetDlgItem(IDC_SBTNEXT);
	m_Wnd->EnableWindow();
	m_Wnd=GetDlgItem(IDC_SBTXG);
	m_Wnd->EnableWindow();
	m_Wnd=GetDlgItem(IDC_SINSERT);
	m_Wnd->EnableWindow();
	m_Wnd=GetDlgItem(IDC_SREMOVE);
	m_Wnd->EnableWindow();


}

void CSbtInput::OnSbttongji() 
{
	// TODO: Add your control notification handler code here
	
}


#ifdef _DEBUG

	 CSbtDoc * CSbtInput::GetDocument()
	{
		ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSbtDoc)));
		return (CSbtDoc*)m_pDocument;
	
	}
#endif

void CSbtInput::OnSbtxg() 
{
	// TODO: Add your control notification handler code here

	UpdateData();
	CSbtDoc *pDoc=GetDocument();
	ASSERT_VALID(pDoc);


	pDoc->m_sbtdataList.GetPrev(pDoc->spos);
		if(pDoc->spos==NULL)
				pDoc->spos=pDoc->m_sbtdataList.GetTailPosition();

	CSbtsj * pSbtsj=pDoc->m_sbtdataList.GetAt(pDoc->spos);
    pSbtsj->Xi=m_lxi;
	pSbtsj->Yi=m_lyi;
	pDoc->m_sbtdataList.GetNext(pDoc->spos);
		if(pDoc->spos==NULL)
				pDoc->spos=pDoc->m_sbtdataList.GetHeadPosition();

	pDoc->UpdateAllViews(this);		

}

void CSbtInput::OnSbtnext() 
{
	// TODO: Add your control notification handler code here
	CSbtDoc *pDoc=GetDocument();
	ASSERT_VALID(pDoc);
	if(pDoc->spos!=NULL)   //
	{
	CSbtsj * pSbtsj=pDoc->m_sbtdataList.GetAt(pDoc->spos);

	m_lxi=pSbtsj->Xi;
	m_lyi=pSbtsj->Yi;
	  //成员变量的数据传给控制ID,在对话框中显示数据
		UpdateData(false); 
		
		pDoc->m_sbtdataList.GetNext(pDoc->spos);
		if(pDoc->spos==NULL)
				pDoc->spos=pDoc->m_sbtdataList.GetHeadPosition();
		// 为进行下一轮循环做准备
	}
	else
		MessageBox("当前列表中没有数据!");

	pDoc->UpdateAllViews(this);

	
}

void CSbtInput::OnInitialUpdate() 
{

	m_smenu=false;
	m_zmenu=false;
	m_pmenu=false;


	CFormView::OnInitialUpdate();
	CSbtDoc *pDoc=GetDocument();
	ASSERT_VALID(pDoc);

	int m=pDoc->m_sbtdataList.GetCount();
	if (m!=0)
	{

		m_smenu=true;

	CSbtsj * pSbtsj=pDoc->m_sbtdataList.GetAt(pDoc->spos);

	m_lxi=pSbtsj->Xi;
	m_lyi=pSbtsj->Yi;
	  //成员变量的数据传给控制ID,在对话框中显示数据
		UpdateData(false); 
		
		pDoc->m_sbtdataList.GetNext(pDoc->spos);
		if(pDoc->spos==NULL)
				pDoc->spos=pDoc->m_sbtdataList.GetHeadPosition();
		// 为进行下一轮循环做准备
//控制控件的允许,
	CWnd *m_Wnd=NULL;

	m_Wnd=GetDlgItem(IDC_SBTNEXT);
	m_Wnd->EnableWindow();
	m_Wnd=GetDlgItem(IDC_SBTXG);
	m_Wnd->EnableWindow();
	m_Wnd=GetDlgItem(IDC_SINSERT);
	m_Wnd->EnableWindow();
	m_Wnd=GetDlgItem(IDC_SREMOVE);
	m_Wnd->EnableWindow();


	}	
	// TODO: Add your specialized code here and/or call the base class

//添加数据
	m_btnAdd.SubclassDlgItem(IDC_SBTADD,this);
	m_btnAdd.SetIcon(IDI_ADD2,IDI_ADD1);
	m_btnAdd.SetActiveFgColor(RGB(255,0,0));
	m_btnAdd.SetBtnCursor(IDC_HAND);
//修改数据
	m_btnXg.SubclassDlgItem(IDC_SBTXG,this);
	m_btnXg.SetIcon(IDI_XG1,IDI_XG2);
	m_btnXg.SetActiveFgColor(RGB(255,0,0));
	m_btnXg.SetBtnCursor(IDC_HAND);
//下一数据
	m_btnNext.SubclassDlgItem(IDC_SBTNEXT,this);
	m_btnNext.SetIcon(IDI_NEXT1,IDI_NEXT2);
	m_btnNext.SetActiveFgColor(RGB(255,0,0));
	m_btnNext.SetBtnCursor(IDC_HAND);
//插入数据
	m_btnInsert.SubclassDlgItem(IDC_SINSERT,this);
	m_btnInsert.SetIcon(IDI_INSERT1,IDI_INSERT2);
	m_btnInsert.SetActiveFgColor(RGB(255,0,0));
	m_btnInsert.SetBtnCursor(IDC_HAND);
//删除数据
    m_btnDel256.SubclassDlgItem(IDC_SREMOVE, this);
    m_btnDel256.SetIcon(IDI_DEL1, IDI_DEL2);
    m_btnDel256.SetActiveFgColor(RGB(255,0,0));	
	m_btnDel256.SetBtnCursor(IDC_HAND);
}

void CSbtInput::OnInsert() 
{
	// TODO: Add your control notification handler code here
	CSbtDoc *pDoc=GetDocument();
	ASSERT_VALID(pDoc);

	UpdateData();
	CSbtsj * pSbtsj;
	pSbtsj=new CSbtsj(m_lxi,m_lyi);
	pDoc->m_sbtdataList.InsertBefore(pDoc->spos,pSbtsj);

	pDoc->SetModifiedFlag();
	pDoc->UpdateAllViews(this);
}

void CSbtInput::OnRemove() 
{
	// TODO: Add your control notification handler code here
	CSbtDoc* pDoc=GetDocument();
	ASSERT_VALID(pDoc);

	CSbtsj *pSbtsj=pDoc->m_sbtdataList.GetPrev(pDoc->spos);
		if(pDoc->spos==NULL)
				pDoc->spos=pDoc->m_sbtdataList.GetTailPosition();
	pDoc->m_sbtdataList.RemoveAt(pDoc->spos);
	pDoc->spos=pDoc->m_sbtdataList.GetHeadPosition();

	pDoc->SetModifiedFlag();
	pDoc->UpdateAllViews(this);
}

⌨️ 快捷键说明

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