📄 test_dialog_lg.cpp
字号:
// TEST_DIALOG_LG.cpp : implementation file
//
#include "stdafx.h"
#include "TESTGLD.h"
#include "TEST_DIALOG_LG.h"
#include "mysqlOP.h"
#include "afxtempl.h"
#include"TESTGLDDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTEST_DIALOG_LG dialog
CTEST_DIALOG_LG::CTEST_DIALOG_LG(CWnd* pParent /*=NULL*/)
: CDialog(CTEST_DIALOG_LG::IDD, pParent)
{
//{{AFX_DATA_INIT(CTESTDIALOGLG)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTEST_DIALOG_LG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTEST_DIALOG_LG)
DDX_Control(pDX, IDC_LIST, m_list);
DDX_Control(pDX, IDC_EDIT_PWD, m_pwd);
DDX_Control(pDX, IDC_COMBO_USER, m_cboUser);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTEST_DIALOG_LG, CDialog)
//{{AFX_MSG_MAP(CTEST_DIALOG_LG)
ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTEST_DIALOG_LG message handlers
typedef CArray<CStringArray*,CStringArray*> usernm_Array;
usernm_Array username_array;
BOOL CTEST_DIALOG_LG::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//获取数据库中操作员信息:
BOOL blresult;
int iresult;
_RecordsetPtr pRs;
_variant_t vat;
bstr_t strSelect,strTable,strWhere,strOrder,strGroup,strOther;
mysqlOP* clmysql=new mysqlOP;
blresult=clmysql->mysqlConnect();
if (blresult)
{
strSelect="*";
strTable="user";
strWhere="";
strOrder="login";
strGroup="";
strOther="";
pRs.CreateInstance (__uuidof(Recordset));
// ===============================================================
DWORD dwSytle=::GetWindowLong(m_list.m_hWnd ,GWL_STYLE);
// 设置为报表形式
SetWindowLong(m_list.m_hWnd,GWL_STYLE,dwSytle|LVS_REPORT);
DWORD ExStyle=m_list.GetExtendedStyle();
// 设置为报表形式
// m_list.SetExtendedStyle(ExStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_list.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_FULLROWSELECT
|LVS_EX_TWOCLICKACTIVATE
|LVS_EX_GRIDLINES );
// 初始化列表控件
m_list.InsertColumn(0,"编号",LVCFMT_CENTER,80,0);
m_list.InsertColumn(1,"用户名",LVCFMT_CENTER,80,0);
m_list.InsertColumn(2,"密码",LVCFMT_CENTER,80,0);
//m_list.InsertColumn(3,"用户类型",LVCFMT_CENTER,80,0);
// 初始化列表控件
AddtoGrid();
// =======================================================
/*// =========================================================================
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
m_list.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_FULLROWSELECT
|LVS_EX_TWOCLICKACTIVATE
|LVS_EX_GRIDLINES );
m_list.InsertColumn(0,"会员编号",LVCFMT_LEFT,70,0);
m_list.InsertColumn(1,"会员昵称",LVCFMT_LEFT,70,1);
m_list.InsertColumn(2,"会员性别",LVCFMT_LEFT,70,2);
int iPos=m_list.InsertItem(0,"1");
m_list.SetItemText(iPos,1,"安美洪");
m_list.SetItemText(iPos,2,"84768849");
//===========================================================================*/
iresult=clmysql->mysqlSelect(pRs,strTable,strSelect,strWhere,strOrder,strGroup,strOther);
if (-1==iresult||-2==iresult)
MessageBox("未找到任何操作员信息或数据库查询时发生异常!");
else
{
//m_cboUser.AddString ();
int i=0;
pRs->MoveFirst ();
while(!pRs->adoEOF )
{
CStringArray *subString = new CStringArray;
vat=pRs->GetCollect ("login");
m_cboUser.AddString ((LPCTSTR)(_bstr_t)vat);
subString->Add ((LPCTSTR)(_bstr_t)vat);
vat=pRs->GetCollect ("pw");
subString->Add ((LPCTSTR)(_bstr_t)vat);
vat=pRs->GetCollect ("type");
subString->Add ((LPCTSTR)(_bstr_t)vat);
username_array.Add(subString);
pRs->MoveNext ();
i+=1;
}
pRs->Close ();
m_cboUser.SetCurSel (0);
}
}
else
MessageBox("数据库连接失败!");
return TRUE; // return TRUE unless you set the focus to a control
}
void CTEST_DIALOG_LG::OnButtonOk()
{
CString pstrUser,pstrPwd;
int maxSz=username_array.GetSize();
((CComboBox*)GetDlgItem(IDC_COMBO_USER))->GetWindowText(pstrUser);
GetDlgItemText(IDC_EDIT_PWD,pstrPwd);
for(int i=0;i<maxSz;i++)
{
if(((CStringArray *)(username_array.GetAt(i)))->GetAt(0)==pstrUser)
{
if(strcmp(((CStringArray *)(username_array.GetAt(i)))->GetAt(1),pstrPwd)==0)
{
//设置用户权限:
if (0==strcmp(((CStringArray *)(username_array.GetAt(i)))->GetAt(2),"user"))
{
}
else
{
}
//释放用户名占用的内存空间:
this->EndDialog (0);
}
else
{
MessageBox("密码错误,请重新输入!");
m_pwd.SetFocus (); break;
}
}
CTESTGLDDlg dlg;
dlg.DoModal();
}
}
void CTEST_DIALOG_LG::AddtoGrid()
{
BOOL blresult;
int iresult;
_RecordsetPtr pRs;
mysqlOP* clmysql=new mysqlOP;
blresult=clmysql->mysqlConnect();
bstr_t strSelect,strTable,strWhere,strOrder,strGroup,strOther;
if (blresult)
{
strSelect="*";
strTable="user";
strWhere="";
strOrder="";
strGroup="";
strOther="";
pRs.CreateInstance (__uuidof(Recordset));
iresult=clmysql->mysqlSelect(pRs,strTable,strSelect,strWhere,strOrder,strGroup,strOther);
switch (iresult)
{
case -1:
MessageBox("未找到操作员记录!");
case -2:
MessageBox("数据库查询时发生异常!");
case 0:
{
//显示操作员记录:
m_list.DeleteAllItems();
int nIndex = m_list.GetItemCount();
pRs->MoveFirst ();
LV_ITEM lvitemAdd= {1};
LV_ITEM lvitem = {0};
while(!pRs->adoEOF)
{
lvitemAdd.mask = LVIF_TEXT;
lvitemAdd.iItem = nIndex ;
lvitemAdd.iSubItem = 0;
lvitemAdd.pszText =_com_util::ConvertBSTRToString((_bstr_t)pRs->GetCollect ("ID")); //列0
if (m_list.InsertItem(&lvitemAdd) != -1)
{
lvitem.mask = LVIF_TEXT;
lvitem.iItem = nIndex ;
lvitem.iSubItem = 1;
lvitem.pszText =_com_util::ConvertBSTRToString((bstr_t)pRs->GetCollect ("login")); //列1
m_list.SetItem(&lvitem);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = nIndex;
lvitem.iSubItem = 2;
lvitem.pszText =_com_util::ConvertBSTRToString((bstr_t)pRs->GetCollect ("pw")); //列2
m_list.SetItem(&lvitem);
lvitem.mask = LVIF_TEXT;
lvitem.iItem = nIndex;
lvitem.iSubItem = 3;
lvitem.pszText =_com_util::ConvertBSTRToString((bstr_t)pRs->GetCollect ("type")); //列2
m_list.SetItem(&lvitem);
pRs->MoveNext ();
}
}
pRs->Close ();
}
}
clmysql->mysqlDisConnect ();
}
else
MessageBox("数据库连接失败!");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -