添加登录窗口,点击按钮是验证权限

This commit is contained in:
~ Alone 2024-05-13 23:34:07 +08:00
parent 683f0aa2c0
commit 6f47fbc9b2
9 changed files with 177 additions and 24 deletions

65
aike/LogInDlg.cpp Normal file
View File

@ -0,0 +1,65 @@
// LogInDlg.cpp: 实现文件
//
#include "pch.h"
#include "aike.h"
#include "afxdialogex.h"
#include "LogInDlg.h"
// LogInDlg 对话框
IMPLEMENT_DYNAMIC(LogInDlg, MyDialog)
LogInDlg::LogInDlg(CWnd* pParent /*=nullptr*/)
: MyDialog(IDD_LOGINDLG, pParent)
{
}
LogInDlg::~LogInDlg()
{
}
//void LogInDlg::DoDataExchange(CDataExchange* pDX)
//{
// MyDialog::DoDataExchange(pDX);
//}
BEGIN_MESSAGE_MAP(LogInDlg, MyDialog)
ON_WM_PAINT()
END_MESSAGE_MAP()
// LogInDlg 消息处理程序
//BOOL LogInDlg::PreTranslateMessage(MSG* pMsg)
//{
// // TODO: 在此添加专用代码和/或调用基类
// myDlg->PTMessage(pMsg);
// return __super::PreTranslateMessage(pMsg);
//}
//
//
//void LogInDlg::OnPaint()
//{
// myDlg->PaintDlg();
// MyDialog::OnPaint();
//}
BOOL LogInDlg::OnInitDialog()
{
__super::OnInitDialog();
//CImage img;
//img.Load(_T("../aike/res/background.jpg"));
//myDlg->SetBackground(img);
//myDlg->PaintDlg();
// TODO: 在此添加额外的初始化
//PaintDlg();
FixedSize();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

28
aike/LogInDlg.h Normal file
View File

@ -0,0 +1,28 @@
#pragma once
#include "afxdialogex.h"
// LogInDlg 对话框
class LogInDlg : public MyDialog
{
DECLARE_DYNAMIC(LogInDlg)
public:
LogInDlg(CWnd* pParent = nullptr); // 标准构造函数
virtual ~LogInDlg();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_LOGINDLG };
#endif
protected:
// virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
//virtual BOOL PreTranslateMessage(MSG* pMsg);
//afx_msg void OnPaint();
virtual BOOL OnInitDialog();
};

View File

@ -68,7 +68,7 @@ VOID StaffDlg::ShowStaff()
rt.MoveToXY(150, 50); rt.MoveToXY(150, 50);
_RecordsetPtr m_pRecor; _RecordsetPtr m_pRecor;
_variant_t var; _variant_t var;
CString str = (_T("select JobID,a.name,sex,b.name 'department', c.name 'category',workforce,phone,BeginDate from staff a,department b,category c")), tmp; CString str = (_T("select a.JobID,a.name,a.sex,b.name 'department', c.name 'category',a.workforce,a.phone,a.BeginDate from staff a left join department b on a.department = b.ID left join category c on a.category = c.id")), tmp;
dlg->AdoSql.QuerySql(str, m_pRecor); dlg->AdoSql.QuerySql(str, m_pRecor);
int i = 0; int i = 0;
while (!m_pRecor->GetadoEOF()) while (!m_pRecor->GetadoEOF())

Binary file not shown.

View File

@ -191,6 +191,7 @@
<ClInclude Include="CouponDlg.h" /> <ClInclude Include="CouponDlg.h" />
<ClInclude Include="DiscountDlg.h" /> <ClInclude Include="DiscountDlg.h" />
<ClInclude Include="framework.h" /> <ClInclude Include="framework.h" />
<ClInclude Include="LogInDlg.h" />
<ClInclude Include="MemberSetUpDlg.h" /> <ClInclude Include="MemberSetUpDlg.h" />
<ClInclude Include="ParameterDlg.h" /> <ClInclude Include="ParameterDlg.h" />
<ClInclude Include="PaymentDlg.h" /> <ClInclude Include="PaymentDlg.h" />
@ -207,6 +208,7 @@
<ClCompile Include="CommodityDlg.cpp" /> <ClCompile Include="CommodityDlg.cpp" />
<ClCompile Include="CouponDlg.cpp" /> <ClCompile Include="CouponDlg.cpp" />
<ClCompile Include="DiscountDlg.cpp" /> <ClCompile Include="DiscountDlg.cpp" />
<ClCompile Include="LogInDlg.cpp" />
<ClCompile Include="MemberSetUpDlg.cpp" /> <ClCompile Include="MemberSetUpDlg.cpp" />
<ClCompile Include="ParameterDlg.cpp" /> <ClCompile Include="ParameterDlg.cpp" />
<ClCompile Include="PaymentDlg.cpp" /> <ClCompile Include="PaymentDlg.cpp" />

View File

@ -60,6 +60,9 @@
<ClInclude Include="ParameterDlg.h"> <ClInclude Include="ParameterDlg.h">
<Filter>头文件</Filter> <Filter>头文件</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="LogInDlg.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="aike.cpp"> <ClCompile Include="aike.cpp">
@ -98,6 +101,9 @@
<ClCompile Include="ParameterDlg.cpp"> <ClCompile Include="ParameterDlg.cpp">
<Filter>源文件</Filter> <Filter>源文件</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="LogInDlg.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="aike.rc"> <ResourceCompile Include="aike.rc">

View File

@ -21,19 +21,18 @@
CaikeDlg::CaikeDlg(CWnd* pParent /*=nullptr*/) CaikeDlg::CaikeDlg(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_AIKE_DIALOG, pParent) : MyDialog(IDD_AIKE_DIALOG, pParent)
,MyDialog(this)
{ {
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
} }
void CaikeDlg::DoDataExchange(CDataExchange* pDX) //void CaikeDlg::DoDataExchange(CDataExchange* pDX)
{ //{
CDialogEx::DoDataExchange(pDX); // MyDialog::DoDataExchange(pDX);
//DDX_Control(pDX, IDC_LIST1, m_Staff); //DDX_Control(pDX, IDC_LIST1, m_Staff);
} //}
BEGIN_MESSAGE_MAP(CaikeDlg, CDialogEx) BEGIN_MESSAGE_MAP(CaikeDlg, MyDialog)
ON_WM_PAINT() ON_WM_PAINT()
ON_WM_QUERYDRAGICON() ON_WM_QUERYDRAGICON()
ON_WM_SIZE() ON_WM_SIZE()
@ -49,7 +48,7 @@ END_MESSAGE_MAP()
BOOL CaikeDlg::OnInitDialog() BOOL CaikeDlg::OnInitDialog()
{ {
CDialogEx::OnInitDialog(); MyDialog::OnInitDialog();
Initialize(); Initialize();
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
@ -63,8 +62,8 @@ void CaikeDlg::OnPaint()
{ {
if (!IsIconic()) if (!IsIconic())
{ {
PaintDlg(); //PaintDlg();
CDialogEx::OnPaint(); MyDialog::OnPaint();
} }
} }
@ -77,12 +76,16 @@ HCURSOR CaikeDlg::OnQueryDragIcon()
//截获窗口消息 //截获窗口消息
BOOL CaikeDlg::PreTranslateMessage(MSG* pMsg) //BOOL CaikeDlg::PreTranslateMessage(MSG* pMsg)
{ //{
// TODO: 在此添加专用代码和/或调用基类 // TODO: 在此添加专用代码和/或调用基类
PTMessage(pMsg); // PTMessage(pMsg);
return __super::PreTranslateMessage(pMsg); // if (!ttttt)
} // {
// return FALSE;
// }
// return MyDialog::PreTranslateMessage(pMsg);
//}
//窗口大小发生改变 //窗口大小发生改变
void CaikeDlg::OnSize(UINT nType, int cx, int cy) void CaikeDlg::OnSize(UINT nType, int cx, int cy)
@ -132,7 +135,7 @@ void CaikeDlg::OnShowMenu()
void CaikeDlg::OnCloneMenu() void CaikeDlg::OnCloneMenu()
{ {
// TODO: 在此添加命令处理程序代码 // TODO: 在此添加命令处理程序代码
CDialogEx::OnCancel(); MyDialog::OnCancel();
} }
//初始化 //初始化
@ -208,7 +211,7 @@ VOID CaikeDlg::Initialize()
EnableButton(3, FALSE); ShowButton(3, FALSE);
MaxClick(0); MaxClick(0);
@ -326,7 +329,7 @@ VOID CaikeDlg::CloseClick(int id)
{ {
if (MessageBox(_T("确定退出本软件?"), _T("温馨提示"), MB_OKCANCEL) == IDOK) if (MessageBox(_T("确定退出本软件?"), _T("温馨提示"), MB_OKCANCEL) == IDOK)
{ {
CDialogEx::OnCancel(); MyDialog::OnCancel();
} }
} }
@ -376,9 +379,52 @@ VOID CaikeDlg::HideAllBt(BOOL Hide)
ShowButton(6000, !Hide); ShowButton(6000, !Hide);
} }
//检查权限
BOOL CaikeDlg::CheckAuthority(CString Authority)
{
if (LogName == _T(""))
{
//MessageBox(_T("请先登录账号"), _T("温馨提示"));
ttttt = FALSE;
LogInDlg dlg;
dlg.DoModal();
ttttt = TRUE;
return FALSE;
}
if (LogName == _T("系统管理员"))
{
return TRUE;
}
_RecordsetPtr m_pRecor;
_variant_t var;
CString str, tmp;
str.Format(_T("select b.authority from staff a left join category b on a.category = b.ID where a.JobID = '%s' and a.computer = '1'"), LogName);
AdoSql.QuerySql(str, m_pRecor);
int i = 0;
if (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("authority");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
}
}
if (tmp.Find(_T("$") + Authority + _T("$")) == -1)
{
MessageBox(_T("该账号权限不足"), _T("温馨提示"));
return FALSE;
}
return TRUE;
}
//设置按钮 //设置按钮
VOID CaikeDlg::SetUpClick(int id) VOID CaikeDlg::SetUpClick(int id)
{ {
if (!CheckAuthority(_T("6000")))
{
return;
}
HideAllBt(); HideAllBt();
CRect rt = { 0,0,100,30 }; CRect rt = { 0,0,100,30 };
rt.MoveToXY(30, 50); rt.MoveToXY(30, 50);

View File

@ -12,9 +12,10 @@
#include "PrintSetUpDlg.h" #include "PrintSetUpDlg.h"
#include "CouponDlg.h" #include "CouponDlg.h"
#include "ParameterDlg.h" #include "ParameterDlg.h"
#include "LogInDlg.h"
// CaikeDlg 对话框 // CaikeDlg 对话框
class CaikeDlg : public CDialogEx, MyDialog class CaikeDlg : public MyDialog
{ {
// 构造 // 构造
public: public:
@ -26,7 +27,7 @@ public:
#endif #endif
protected: protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 // virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现 // 实现
@ -47,6 +48,8 @@ public:
CString DataBase; //数据库名称 CString DataBase; //数据库名称
CString UserName; //数据库用户名 CString UserName; //数据库用户名
CString AdoPass; //数据库密码 CString AdoPass; //数据库密码
CString LogName; //当前登录的账号
BOOL ttttt = TRUE;
RoomSetUpDlg m_RoomSetUpDlg; //房间设置界面 RoomSetUpDlg m_RoomSetUpDlg; //房间设置界面
CommodityDlg m_CommodityDlg; //商品信息界面 CommodityDlg m_CommodityDlg; //商品信息界面
PaymentDlg PaymentDlg; //付款方式界面 PaymentDlg PaymentDlg; //付款方式界面
@ -58,7 +61,7 @@ public:
ParameterDlg m_ParameterDlg; //参数设置界面 ParameterDlg m_ParameterDlg; //参数设置界面
//MFC回调函数 //MFC回调函数
virtual BOOL PreTranslateMessage(MSG* pMsg); //截获窗口消息 // virtual BOOL PreTranslateMessage(MSG* pMsg); //截获窗口消息
afx_msg void OnSize(UINT nType, int cx, int cy); //窗口大小发生改变 afx_msg void OnSize(UINT nType, int cx, int cy); //窗口大小发生改变
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI); //设置窗口最大和最小范围 afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI); //设置窗口最大和最小范围
virtual void OnOK(); //按下回车 virtual void OnOK(); //按下回车
@ -75,7 +78,8 @@ public:
VOID ReductionClick(int id); //还原窗口 VOID ReductionClick(int id); //还原窗口
VOID CloseClick(int id); //关闭窗口 VOID CloseClick(int id); //关闭窗口
VOID MoveAllWin(); //移动所有窗口和按钮 VOID MoveAllWin(); //移动所有窗口和按钮
VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮 VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮
BOOL CheckAuthority(CString Authority); //检查权限
VOID SetUpClick(int id); //设置按钮 VOID SetUpClick(int id); //设置按钮
VOID HomepageClick(int id); //回到主页 VOID HomepageClick(int id); //回到主页
VOID RoomSetUpClick(int id); //点击房间设置 VOID RoomSetUpClick(int id); //点击房间设置

View File

@ -14,6 +14,8 @@
#define IDD_COUPONDLG 139 #define IDD_COUPONDLG 139
#define IDD_DISCOUNTDLG 140 #define IDD_DISCOUNTDLG 140
#define IDD_PARAMENTERDLG 141 #define IDD_PARAMENTERDLG 141
#define IDD_DIALOG1 142
#define IDD_LOGINDLG 142
#define IDC_LIST1 1000 #define IDC_LIST1 1000
#define IDC_BUTTON1 1001 #define IDC_BUTTON1 1001
#define IDC_BUTTON2 1002 #define IDC_BUTTON2 1002
@ -26,7 +28,7 @@
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 136 #define _APS_NEXT_RESOURCE_VALUE 144
#define _APS_NEXT_COMMAND_VALUE 32775 #define _APS_NEXT_COMMAND_VALUE 32775
#define _APS_NEXT_CONTROL_VALUE 1002 #define _APS_NEXT_CONTROL_VALUE 1002
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101