(message==EM_GETLINE))
{//检查是否为合法
if(!g_bAuthorIdentity)
{//非法获取,显示信息
AfxMessageBox(_T("我的密码,可不能让你看哦!"));
//
return0;
}
//合法获取
g_bAuthorIdentity=FALSE;
}
returnCEdit::DefWindowProc(message,wParam,lParam);
}
----2)在数据输入对话框中做处理
----在对话框中申明一个类成员m_edtPassword:
CPasswordEditm_edtPassword;
----然后在对话框的OnInitDialog()中加入下列代码:
m_edtPassword.SubclassDlgItem(IDC_EDIT_PASSWORD,this);
----其目的是将控制与新类做关联。
----之后在对话框的数据交换中将身份设为合法:
voidCDlgInput::DoDataExchange(CDataExchange*pDX)
{//如果获取数据
//注意:对于CPropertyPage类这里不需要
if(pDX->m_bSaveAndValidate)条件
if(pDX->m_bSaveAndValidate)
{
g_bAuthorIdentity=TRUE;
}
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgInput)
DDX_Text(pDX,IDC_EDIT_PASSWORD,m_sPassword);
//}}AFX_DATA_MAP
}
----这样,Password输入框就会受到保护。
----(三)需要注意的问题
----以上的方法仅针对VC程序,对于VB程序,需要借助VC做一个Password的ActiveX
控件,实现方法与上类似。同时以上程序在VisualC++6.0上通过,并且用黑客程序PWBTool
测试通过。
在Delphi中实现类似VB中的控件数组
你可以通过设置一组相应控件的TAG属性来实现这一功能。首先在窗体中放置3个BUTTON控件,然后分别设置这三个控件的TAG属性为1、2、3。接下来双击任意一个按钮,在其代码部分输入如下代码:
procedureTForm1.Button1Click(Sender:TObject);
varcap:string;
begin
caseTButton(sender).Tagof
1:ShowMessage(′1stButtonPressed′);
2:ShowMessage(′2ndButtonPressed′);
3:ShowMessage(′3rdButtonPressed′);
end;
end;
最后在其他两个按钮的ONCLICK事件中选择已经编好的代码。这样一来就可以实现以上功能了。
关键词:如何防范Edit框中的Password不被非法取得