简单的MFC制作

源代码在线查看: 电信收费系统dlg.cpp

软件大小: 164 K
上传用户: wanghaihah
关键词: MFC
下载地址: 免注册下载 普通下载 VIP

相关代码

				// 电信收费系统Dlg.cpp : 实现文件
				//
				
				#include "stdafx.h"
				#include "电信收费系统.h"
				#include "电信收费系统Dlg.h"
				#include "Balance.h"
				#include "Login.h"
				
				
				#ifdef _DEBUG
				#define new DEBUG_NEW
				#endif
				
				
				// C电信收费系统Dlg 对话框
				
				
				
				
				C电信收费系统Dlg::C电信收费系统Dlg(CWnd* pParent /*=NULL*/)
					: CDialog(C电信收费系统Dlg::IDD, pParent)
					, m_UserName(_T(""))
					, m_Balance(0)
					, m_ID_Card(_T(""))
				{
					m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
				}
				
				void C电信收费系统Dlg::DoDataExchange(CDataExchange* pDX)
				{
					CDialog::DoDataExchange(pDX);
					DDX_Control(pDX, IDC_LIST2, m_list);
					DDX_Text(pDX, IDC_EDIT_UserName, m_UserName);
					DDX_Text(pDX, IDC_EDIT_Balance, m_Balance);
					DDX_Text(pDX, IDC_EDIT_ID_Card, m_ID_Card);
				}
				
				BEGIN_MESSAGE_MAP(C电信收费系统Dlg, CDialog)
					ON_WM_PAINT()
					ON_WM_QUERYDRAGICON()
					//}}AFX_MSG_MAP
					ON_BN_CLICKED(IDCANCEL, &C电信收费系统Dlg::OnBnClickedCancel)
					ON_BN_CLICKED(IDC_BUTTON_Link, &C电信收费系统Dlg::OnBnClickedButton_Link)
					ON_BN_CLICKED(IDC_BUTTON_ShowAll, &C电信收费系统Dlg::OnBnClickedButton_ShowAll)
					ON_BN_CLICKED(IDC_BUTTON_Add, &C电信收费系统Dlg::OnBnClickedButton_Add)
					ON_BN_CLICKED(IDC_BUTTON_Pay, &C电信收费系统Dlg::OnBnClickedButton_Pay)
					ON_BN_CLICKED(IDC_BUTTON_UM, &C电信收费系统Dlg::OnBnClickedButtonUm)
				END_MESSAGE_MAP()
				
				
				// C电信收费系统Dlg 消息处理程序
				
				BOOL C电信收费系统Dlg::OnInitDialog()
				{
					CDialog::OnInitDialog();
				
					// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
					//  执行此操作
					SetIcon(m_hIcon, TRUE);			// 设置大图标
					SetIcon(m_hIcon, FALSE);		// 设置小图标
				
					// TODO: 在此添加额外的初始化代码
				
					m_list.InsertColumn(0,"用户姓名",LVCFMT_LEFT,75);
					m_list.InsertColumn(1,"帐户余额",LVCFMT_LEFT,75);
					m_list.InsertColumn(2,"通讯号码",LVCFMT_LEFT,142);
					m_list.InsertColumn(3,"用户编号",LVCFMT_LEFT,75);
				
					bLink = false;
					Balancedlg.bLink = false;
					Logindlg.bLink = false;
					Logindlg.bUserlink = false;
				
					m_Balance = 0;
				
					m_list.SetExtendedStyle(   LVS_EX_FULLROWSELECT   );
					return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
				}
				
				// 如果向对话框添加最小化按钮,则需要下面的代码
				//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
				//  这将由框架自动完成。
				
				void C电信收费系统Dlg::OnPaint()
				{
					if (IsIconic())
					{
						CPaintDC dc(this); // 用于绘制的设备上下文
				
						SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);
				
						// 使图标在工作矩形中居中
						int cxIcon = GetSystemMetrics(SM_CXICON);
						int cyIcon = GetSystemMetrics(SM_CYICON);
						CRect rect;
						GetClientRect(&rect);
						int x = (rect.Width() - cxIcon + 1) / 2;
						int y = (rect.Height() - cyIcon + 1) / 2;
				
						// 绘制图标
						dc.DrawIcon(x, y, m_hIcon);
					}
					else
					{
						CDialog::OnPaint();
					}
				}
				
				//当用户拖动最小化窗口时系统调用此函数取得光标显示。
				//
				HCURSOR C电信收费系统Dlg::OnQueryDragIcon()
				{
					return static_cast(m_hIcon);
				}
				
				
				void C电信收费系统Dlg::OnBnClickedCancel()
				{
					OnCancel();
				}
				
				void C电信收费系统Dlg::OnBnClickedButton_Link()
				{
					if(!Logindlg.bUserlink || !bLink)
					{
						try{
							m_pConnect.CreateInstance("ADODB.Connection");
				
							_bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=Charge;";// uid=sa; pwd=";//123456";
				
							m_pConnect->Open(strConnect,"sa","",adModeUnknown);
				
							bLink = true;
				
							Balancedlg.bLink = bLink;
				
							Logindlg.bLink = bLink;
				
							UserManagedlg.bLink = bLink;
				
							Balancedlg.m_pCon = m_pConnect;
				
							UserManagedlg.m_pCon = m_pConnect;
				
							_RecordsetPtr Rec("ADODB.Recordset");
				
							Rec.CreateInstance(__uuidof(Recordset));
					
							Rec->Open("select * from Charge_info",m_pConnect.GetInterfacePtr(),adOpenStatic,adLockReadOnly,adCmdText); //不能用 Unspecified模式打开
				
							Rec->MoveLast();
				
							iCount = Rec->GetRecordCount();
				
							Rec->Close();
				
							Logindlg.DoModal();
							}
							catch(_com_error e)
							{
								AfxMessageBox("连接失败");
								bLink = false;
						    } 
						}
					
					else
						AfxMessageBox("已连接");
				}
				
				void C电信收费系统Dlg::OnBnClickedButton_ShowAll()
				{
					_variant_t name,Id,ID_Card,Balance;
				
					int CurPos;
				
					if(Logindlg.bUserlink && bLink)
					{
						try{
							m_list.DeleteAllItems();
							_RecordsetPtr Rec("ADODB.Recordset");
				
							Rec.CreateInstance(__uuidof(Recordset));
				
							Rec->Open("select * from Charge_info",m_pConnect.GetInterfacePtr(),adOpenUnspecified,adLockReadOnly,adCmdText);
				
							while(!Rec->adoEOF)
							{
								Balance = Rec->GetCollect("Balance");
								name    = Rec->GetCollect("Sname");
								ID_Card = Rec->GetCollect("ID_Card");
								Id      = Rec->GetCollect("ID");
				
								CurPos = m_list.InsertItem(9999,(_bstr_t)name);
								m_list.SetItem(CurPos,1,1,(_bstr_t)(float)Balance,NULL,0,0,0);
								m_list.SetItem(CurPos,2,1,(_bstr_t)ID_Card,NULL,0,0,0);
								m_list.SetItem(CurPos,3,1,(_bstr_t)Id,NULL,0,0,0);
				
								Rec->MoveNext();
							}
						}
						catch(_com_error e)
						{
							bLink = false;
				
							CString errormessage;
				
							errormessage.Format("%s",e.ErrorMessage());
					
							AfxMessageBox(errormessage);
					     }
					}
					else  AfxMessageBox("没有连接");
				}
				
				void C电信收费系统Dlg::OnBnClickedButton_Add()
				{
					if(Logindlg.bUserlink &&  UpdateData() &&  bLink  )
					{
						
						if(m_UserName.GetLength()> 0 &&  m_ID_Card.GetLength() > 0)
						{
							
							try{
				
								_RecordsetPtr Rec("ADODB.Recordset");
				
								Rec.CreateInstance(__uuidof(Recordset));
				
								Rec->Open("select * from Charge_info",m_pConnect.GetInterfacePtr(),adOpenUnspecified,adLockOptimistic,adCmdText);
				
								Rec->MoveFirst();
				
								Rec->AddNew();
				
								Rec->PutCollect("ID",(int)(iCount+1));
								Rec->PutCollect("ID_Card",(_variant_t)m_ID_Card);
								Rec->PutCollect("Sname",(_variant_t)m_UserName);
								Rec->PutCollect("Balance",(float)m_Balance);
				
								Rec->Update();
								Rec->Close();
				
								iCount += 1;
								OnBnClickedButton_ShowAll();
				
								m_list.SetFocus(); //对选中行 加亮
								m_list.EnsureVisible(iCount-1,FALSE);   //自动翻页
								m_list.SetItemState(iCount-1,LVIS_FOCUSED|LVIS_SELECTED,LVIS_FOCUSED|LVIS_SELECTED);  //选中某行
							}
							catch(_com_error e)
							{
								CString errormessage;
				
								errormessage.Format("%s",e.ErrorMessage());
					
								AfxMessageBox(errormessage);
							 }
				
						}
						
					}
					else AfxMessageBox("没有连接");
				}
				
				void C电信收费系统Dlg::OnBnClickedButton_Pay()
				{
					if(Logindlg.bUserlink && bLink)
					{
						Balancedlg.DoModal();
					}
					else AfxMessageBox("没有连接");
					// TODO: 在此添加控件通知处理程序代码
				}
				
				void C电信收费系统Dlg::OnBnClickedButtonUm()
				{
					if(Logindlg.bUserlink && bLink)
					{
						UserManagedlg.User = Logindlg.L_User;
						UserManagedlg.DoModal();
					}
					else AfxMessageBox("没有连接");
					// TODO: 在此添加控件通知处理程序代码
				}
							

相关资源