📄 dlgpwd.cpp
字号:
// DlgPwd.cpp : implementation file
//
#include "stdafx.h"
#include "portpe.h"
#include "DlgPwd.h"
extern CPortPeApp theApp;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgPwd dialog
CDlgPwd::CDlgPwd(CWnd* pParent /*=NULL*/)
: CDialog(CDlgPwd::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgPwd)
//}}AFX_DATA_INIT
}
void CDlgPwd::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgPwd)
DDX_Control(pDX, IDC_PICTURE, m_pic);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgPwd, CDialog)
//{{AFX_MSG_MAP(CDlgPwd)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgPwd message handlers
BOOL CDlgPwd::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
HBITMAP hBk =(HBITMAP)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(MAIN31),IMAGE_BITMAP, 0, 0, 0);
if(hBk!=NULL)
{
m_pic.SetBitmap(hBk);
}
CEdit* pBoxOne;
pBoxOne = (CEdit*) GetDlgItem (IDC_EDIT1);
pBoxOne->SetWindowPos(NULL,0,0,150,20,SWP_NOMOVE|SWP_NOZORDER|SWP_NOOWNERZORDER);
iLocal=0;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
HBRUSH CDlgPwd::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor== CTLCOLOR_MSGBOX || nCtlColor== CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(0, 0, 0));
pDC->SetBkColor(RGB(250,241,241));
HBRUSH h = ::CreateSolidBrush(RGB(250,241,241));
return h;
}
else
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Return a different brush if the default is not desired
return hbr;
}
BOOL CDlgPwd::PreTranslateMessage(MSG* pMsg)
{
if(WM_KEYDOWN == pMsg->message)
{
switch((int) pMsg->wParam)
{
case 13://回车
if (iLocal == 2)//取消
{
CDialog::OnCancel ();
return TRUE;
}
else
{
if (iLocal == 0)
{
iLocal=1;
ShowPic();
}
if (CheckPwd ())//验证通过
{
CDialog::OnOK ();
}
else
return TRUE;
}
return TRUE;
case 9://Tab键
case 40://向下箭头
if (iLocal == 2)
{
iLocal=-1;
}
iLocal++;
ShowPic();
return TRUE;
case 38://向上箭头
if (iLocal == 0)
{
iLocal=3;
}
iLocal--;
ShowPic();
return TRUE;
case 27://ESC键:退出
CDialog::OnCancel ();
return TRUE;
case 12://清除键
case 8://清除键
break;
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
if (iLocal != 0)
return TRUE;
break;
default:
return TRUE;
}
}
if ( WM_KEYUP == pMsg->message)
{
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
void CDlgPwd::ShowPic()
{
HBITMAP hBk;
switch(iLocal)
{
case 0://文本框
CEdit* pBoxOne;
pBoxOne = (CEdit*) GetDlgItem (IDC_EDIT1);
pBoxOne->SetFocus();
hBk =(HBITMAP)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(MAIN31),IMAGE_BITMAP, 0, 0, 0);
break;
case 1://拨打电话
hBk =(HBITMAP)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(MAIN311),IMAGE_BITMAP, 0, 0, 0);
break;
case 2://阅读短信
hBk =(HBITMAP)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(MAIN312),IMAGE_BITMAP, 0, 0, 0);
break;
default:
return;
}
if(hBk!=NULL)
{
m_pic.SetBitmap(hBk);
}
}
BOOL CDlgPwd::CheckPwd()
{
TCHAR pwd[8]=TEXT("\0");
CEdit* pBoxOne;
TCHAR input[64]=TEXT("\0");
pBoxOne = (CEdit*) GetDlgItem (IDC_EDIT1);
if (pBoxOne->GetWindowTextLength() == 0)
{
MessageBox(TEXT("请输入用户密码"),TEXT("系统提示信息"),MB_OK|MB_ICONHAND);
return FALSE;
}
else
{
pBoxOne->GetWindowText (input,32);
if (wcscmp(input,theApp.AppSetup.PWD) != 0)
{
MessageBox(TEXT("输入密码错误"),TEXT("系统提示信息"),MB_OK|MB_ICONEXCLAMATION);
return FALSE;
}
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -