?? 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 + -