📄 logindlg.cpp
字号:
// LogInDlg.cpp : implementation file
//
#include "stdafx.h"
#include "library.h"
#include "LogInDlg.h"
#include "LogInSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLogInDlg dialog
CLogInDlg::CLogInDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLogInDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLogInDlg)
m_strUsername = _T("zhao");
m_strPassword = _T("123");
//}}AFX_DATA_INIT
count=0;
m_ButtonState= bsNone;
m_FirstShow = FALSE;
m_IsMax = TRUE;
m_CapitonColor =RGB(0,0,255);
m_Caption = "系统登录";
}
void CLogInDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLogInDlg)
DDX_Control(pDX, IDC_STATIC2, m_label2);
DDX_Control(pDX, IDC_STATIC1, m_label1);
DDX_Text(pDX, IDC_USERNAME, m_strUsername);
DDX_Text(pDX, IDC_PASSWORD, m_strPassword);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLogInDlg, CDialog)
//{{AFX_MSG_MAP(CLogInDlg)
ON_WM_CTLCOLOR()
ON_WM_PAINT()
ON_WM_SIZE()
ON_WM_NCLBUTTONDBLCLK()
ON_WM_SHOWWINDOW()
ON_WM_NCLBUTTONDOWN()
ON_WM_NCPAINT()
ON_WM_NCMOUSEMOVE()
ON_WM_WINDOWPOSCHANGED()
ON_WM_CREATE()
ON_WM_NCACTIVATE()
ON_WM_ACTIVATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CLogInDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_BorderHeight = GetSystemMetrics(SM_CYBORDER);
m_BorderWidth = GetSystemMetrics(SM_CXBORDER);
m_CaptionHeight = GetSystemMetrics(SM_CYCAPTION);
//获取按钮位图大小
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP6);
BITMAPINFO bInfo;
bitmap.GetObject(sizeof(bInfo),&bInfo);
m_ButtonWidth = bInfo.bmiHeader.biWidth;
m_ButtonHeight = bInfo.bmiHeader.biHeight;
bitmap.DeleteObject();
CRect rect;
GetClientRect(rect);
m_IniRect.CopyRect(CRect(8,(m_CaptionHeight+3*m_BorderHeight -m_ButtonHeight)/2,m_ButtonWidth,m_ButtonHeight));
m_MinRect.CopyRect(CRect(rect.Width()-45,(m_CaptionHeight+2*m_BorderHeight -m_ButtonHeight)/2,m_ButtonWidth,m_ButtonHeight));
m_MaxRect.CopyRect(CRect(rect.Width()-32,(m_CaptionHeight+2*m_BorderHeight -m_ButtonHeight)/2,m_ButtonWidth,m_ButtonHeight));
m_CloseRect.CopyRect(CRect(rect.Width()-19,(m_CaptionHeight+2*m_BorderHeight -m_ButtonHeight)/2,m_ButtonWidth,m_ButtonHeight));
m_CaptionFont.CreateFont(14,10,0,0,600,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_ROMAN,"宋体");
DrawForm();
m_label1.ModifyStyleEx(0,WS_EX_TRANSPARENT);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CLogInDlg::DrawForm()
{
//获取窗口设备上下文
CDC* pWindowDC = GetWindowDC();
CBitmap LeftLine;
BITMAPINFO bitinfo;
CDC memDC;
memDC.CreateCompatibleDC(pWindowDC);
CRect Clientrect;
GetClientRect(Clientrect);
int leftwidth=0; //左标题的宽度
int rightwidth = 0; //右标题的宽度
int leftlinewidth = 0; //左边线宽度
LeftLine.LoadBitmap(IDB_BITMAP3); //加载右标题
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
rightwidth = bitinfo.bmiHeader.biWidth;
LeftLine.DeleteObject();
int x,y;
//绘制左边线
//获取位图大小
LeftLine.LoadBitmap(IDB_BITMAP4);
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
leftlinewidth = x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
memDC.SelectObject(&LeftLine);
pWindowDC->StretchBlt(1-m_BorderWidth,m_CaptionHeight+1,x+1,Clientrect.Height()+2*m_BorderHeight+5,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制左标题**************************************/
LeftLine.LoadBitmap(IDB_BITMAP2);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
leftwidth = x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(-m_BorderWidth,0,x,m_CaptionHeight+4,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制左标题**************************************/
/*****************************绘制中间标题**************************************/
LeftLine.LoadBitmap(IDB_BITMAP1);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(leftwidth-1,0,Clientrect.Width()-leftwidth-rightwidth ,m_CaptionHeight+4,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制中间标题***************************************/
/*****************************绘制右标题**************************************/
LeftLine.LoadBitmap(IDB_BITMAP3);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(Clientrect.Width()-x-1,0,x+m_BorderWidth+9,m_CaptionHeight+4,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制右标题***************************************/
/*****************************绘制右边框**************************************/
LeftLine.LoadBitmap(IDB_BITMAP4);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(Clientrect.Width()+m_BorderWidth+2,m_CaptionHeight+1,x+m_BorderWidth,Clientrect.Height()+2*m_BorderHeight+5,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制右边框***************************************/
/*****************************绘制底边框**************************************/
LeftLine.LoadBitmap(IDB_BITMAP5);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(leftlinewidth-m_BorderWidth,Clientrect.Height()+m_CaptionHeight+2,Clientrect.Width()+m_BorderWidth,y+2,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制底边框***************************************/
/*****************************绘制初始化按钮**************************************/
LeftLine.LoadBitmap(IDB_BITMAP6);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(m_IniRect.left,m_IniRect.top,m_IniRect.right,m_IniRect.bottom,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制初始化按钮***************************************/
/*****************************绘制最小化按钮**************************************/
LeftLine.LoadBitmap(IDB_BITMAP6);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(m_MinRect.left,m_MinRect.top,m_MinRect.right,m_MinRect.bottom,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制最小化按钮***************************************/
/*****************************绘制最大化按钮**************************************/
LeftLine.LoadBitmap(IDB_BITMAP6);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(m_MaxRect.left,m_MaxRect.top,m_MaxRect.right,m_MaxRect.bottom,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
/*****************************绘制最大化按钮***************************************/
/*****************************绘制关闭按钮**************************************/
LeftLine.LoadBitmap(IDB_BITMAP6);
//获取位图大小
LeftLine.GetObject(sizeof(bitinfo),&bitinfo);
memDC.SelectObject(&LeftLine);
x = bitinfo.bmiHeader.biWidth;
y = bitinfo.bmiHeader.biHeight;
pWindowDC->StretchBlt(m_CloseRect.left,m_CloseRect.top,m_CloseRect.right,m_CloseRect.bottom,&memDC,0,0,x,y,SRCCOPY);
LeftLine.DeleteObject();
m_IsDrawForm = TRUE;
/*****************************绘制关闭按钮***************************************/
ReleaseDC(&memDC);
DrawFormCaption();
}
void CLogInDlg::DrawFormCaption()
{
if (! m_Caption.IsEmpty())
{
CDC* pDC = GetWindowDC();
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(m_CapitonColor);
pDC->SetTextAlign(TA_CENTER);
CRect rect;
GetClientRect(rect);
pDC->SelectObject(&m_CaptionFont);
pDC->TextOut(rect.Width()/2, m_CaptionHeight/3 ,m_Caption);
}
}
/////////////////////////////////////////////////////////////////////////////
// CLogInDlg message handlers
void CLogInDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData();
if(m_strUsername.IsEmpty())
{
MessageBox("Please input your username!","登录系统",MB_OK|MB_ICONEXCLAMATION);
m_strUsername.Empty();
UpdateData(FALSE);
return;
}
if(m_strPassword.IsEmpty())
{
MessageBox("Please input your password!","登录系统",MB_OK|MB_ICONEXCLAMATION);
m_strPassword.Empty();
UpdateData(FALSE);
return;
}
if(!m_database.IsOpen())
{
//连接数据源
if(!m_database.OpenEx("DSN=MySQL;UID=sa;PWD=123;CDatabase::noOdbcDialog"))
{
MessageBox("连接数据库失败!","图书管理系统",MB_OK|MB_ICONINFORMATION);
return;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -