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

📄 registeruserdlg.cpp

📁 药品库存管理系统,很好的VC++6.0示例代码,包含完整的数据库和代码
💻 CPP
字号:
// RegisterUserDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MedicAdmin.h"
#include "RegisterUserDlg.h"
#include "medicAdminDoc.h"
#include "mainfrm.h"
#include "UserTreeView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CRegisterUserDlg dialog


CRegisterUserDlg::CRegisterUserDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CRegisterUserDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRegisterUserDlg)
	m_registerUserAccount = _T("");
	m_registerUserName = _T("");
	m_registerUserPassword = _T("");
	m_registerUserPassword2 = _T("");
	m_registerUserType = _T("");
	//}}AFX_DATA_INIT
}


void CRegisterUserDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRegisterUserDlg)
	DDX_Control(pDX, IDC_LIST1, m_registerUserList);
	DDX_Text(pDX, IDC_NEWUSER_ACCOUNT_EDIT, m_registerUserAccount);
	DDX_Text(pDX, IDC_NEWUSER_NAME_EDIT, m_registerUserName);
	DDX_Text(pDX, IDC_NEWUSER_PASSWORD1_EDIT, m_registerUserPassword);
	DDX_Text(pDX, IDC_NEWUSER_PASSWORD2_EDIT, m_registerUserPassword2);
	DDX_CBString(pDX, IDC_NEWUSER_TYPE_COMBO, m_registerUserType);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CRegisterUserDlg, CDialog)
	//{{AFX_MSG_MAP(CRegisterUserDlg)
	ON_BN_CLICKED(IDOK2, OnOk2)
	ON_WM_CLOSE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRegisterUserDlg message handlers

BOOL CRegisterUserDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	CMedicAdminDoc* pDoc=(CMedicAdminDoc*)((CMainFrame*)AfxGetMainWnd())->GetActiveDocument();
	theSet=&pDoc->theUserSet;
	theSet->m_strFilter="";
	theSet->Requery();
	
	// TODO: Add extra initialization here
	CString userColumn[]={"用户账号","用户密码","用户类别","用户姓名"};
	for(int i=0;i<4;i++){
		m_registerUserList.InsertColumn(i,userColumn[i],LVCFMT_LEFT,100,i);
	}
	for(int j=0;;j++)
	{
		if(theSet->IsEOF())
		{
			break;
		}
		m_registerUserList.InsertItem(j,theSet->m_UserAccount);
		m_registerUserList.SetItemText(j,1,theSet->m_UserPassword);
		m_registerUserList.SetItemText(j,2,theSet->m_UserClassification);
		m_registerUserList.SetItemText(j,3,theSet->m_UserName);
		theSet->MoveNext();
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CRegisterUserDlg::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();
	if(m_registerUserAccount=="")
	{
		AfxMessageBox("用户账号不能为空");
	}
	else if(m_registerUserPassword != m_registerUserPassword2)
	{
		AfxMessageBox("两次输入的密码不匹配");
	}
	else if(m_registerUserPassword == "")
	{
		AfxMessageBox("为保密起见,请输入密码");
	}
	else if(m_registerUserType=="")
	{
		AfxMessageBox("请选择用户的类别");
	}
	else
	{
		CUser* newUser=new CUser;
		newUser->SetAllMember(m_registerUserAccount,m_registerUserPassword,m_registerUserType,m_registerUserName);
		CMedicAdminDoc* pDoc=(CMedicAdminDoc*)((CMainFrame*)AfxGetMainWnd())->GetActiveDocument();
		CUser* theUser=&pDoc->theUser;
		if(theUser->AddNewUser(newUser,theSet))
		{
			int number=m_registerUserList.GetItemCount();
			m_registerUserList.InsertItem(number,m_registerUserAccount);
			m_registerUserList.SetItemText(number,1,m_registerUserPassword);
			m_registerUserList.SetItemText(number,2,m_registerUserType);
			m_registerUserList.SetItemText(number,3,m_registerUserName);
		}
		m_registerUserAccount="";
		m_registerUserPassword="";
		m_registerUserPassword2="";
		m_registerUserType="";
		m_registerUserName="";
		UpdateData(FALSE);
	}
	//CDialog::OnOK();
}

void CRegisterUserDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	m_registerUserAccount="";
	m_registerUserName="";
	m_registerUserPassword="";
	m_registerUserPassword2="";
	m_registerUserType="";
	UpdateData(FALSE);
	//CDialog::OnCancel();
}

void CRegisterUserDlg::OnOk2() 
{
	// TODO: Add your control notification handler code here
	CMainFrame* theFrm=(CMainFrame*)AfxGetMainWnd();
	CMedicAdminDoc* pDoc=(CMedicAdminDoc*)theFrm->GetActiveDocument();
	CUser* theUser=&pDoc->theUser;
	CUserSet* theUserSet=&pDoc->theUserSet;
	POSITION pos=pDoc->GetFirstViewPosition();
	while(pos != NULL)
	{
		CView* pView=pDoc->GetNextView(pos);
		if(pView->IsKindOf(RUNTIME_CLASS(CUserTreeView)))
		{
			CUserTreeView* pTreeView=(CUserTreeView*)pView;
			CTreeCtrl* m_theTreeCtrl=pTreeView->m_theTreeCtrl;
			m_theTreeCtrl->DeleteAllItems();
			CString userTreeHeader[3]={"医生","售药员","管理员"};
			HTREEITEM userItem[3];
			for(int i=0;i<3;i++)
			{
				userItem[i]=m_theTreeCtrl->InsertItem(userTreeHeader[i],0,0,TVI_ROOT);
				m_theTreeCtrl->SetItemData(userItem[i],(DWORD)i);
			}
			HTREEITEM thePoint;
			for(i=0;i<3;i++)
			{
				theUserSet->m_strFilter="UserClassification='"+userTreeHeader[i]+"'";
				theUserSet->Requery();
				for(int j=0;;j++)
				{
					if(theUserSet->IsEOF())
					{
						break;
					}	
					if(theUserSet->m_UserAccount==theUser->GetAccount())
					{
						HTREEITEM userSpecifics=m_theTreeCtrl->InsertItem(theUserSet->m_UserAccount+"(当前用户)",2,2,userItem[i]);
						m_theTreeCtrl->SetItemData(userSpecifics,(DWORD)j);
						thePoint=userSpecifics;
					}
					else
					{
						HTREEITEM userSpecifics=m_theTreeCtrl->InsertItem(theUserSet->m_UserAccount,3,3,userItem[i]);
						m_theTreeCtrl->SetItemData(userSpecifics,(DWORD)j);
					}
					theUserSet->MoveNext();
				}
			}
			m_theTreeCtrl->Select(thePoint,TVGN_CARET);
			break;
		}
	}
	CDialog::OnOK();
}

void CRegisterUserDlg::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	//DestroyWindow();
	//CDialog::OnClose();
	CDialog::OnOK();
}

⌨️ 快捷键说明

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