上位机MFC星号密码探测显示源代码
例程运行界面如上。
拖动界面放大镜图标,可以将移动过程中的密码框内容显示出来。
当然也会显示相关的其他信息
鼠标移动关键函数为:
- void CShowPwDlg::OnMouseMove(UINT nFlags, CPoint point)
- {
- if (!m_set)
- {
- ClientToScreen(&point);//取得屏幕坐标
- m_StrStatic5.Format("X=%ld,Y=%ld", point.x,point.y);//坐标
- m_StrStatic2 = _T("( None )"); //Class Name
- m_StrStatic3 = _T("( None )"); //Class Style
- CWnd* pWnd = CWnd::WindowFromPoint(point);//获取含有指定点的窗口
- if (pWnd)
- {
- HWND hwndCurr = pWnd->GetSafeHwnd();//返回一个窗口的句柄
- if ((::GetWindowThreadProcessId (GetSafeHwnd(), NULL))!= (::GetWindowThreadProcessId (hwndCurr, NULL)))
- {
- m_StrStatic3.Format("%ld", hwndCurr);// 获得 window's style
-
- char lpClassName[255];
- if (::GetClassName(hwndCurr, lpClassName, 255))
- {
- m_StrStatic2 = lpClassName; // 获得 class name
- }
- }
-
- if (m_StrStatic2.CompareNoCase("EDIT")==0)
- {
- LONG lStyle = ::GetWindowLong(hwndCurr, GWL_STYLE);
- if (lStyle & ES_PASSWORD )
- {
- char szText[255];
- ::SendMessage(hwndCurr, WM_GETTEXT, 255, (LPARAM)szText);
- m_Edit1 = szText; // 获得 PassWord
- }
- }
- else
- {
- m_Edit1= _T("( None )"); //PassWord
- }
- }
- UpdateData(FALSE);
- }
- else
- {
- CWnd* pWnd = ChildWindowFromPoint(point);//确定属于CWnd的子窗口中含有指定的点
- if (pWnd && pWnd->GetSafeHwnd() == m_static1.GetSafeHwnd())
- {
- SetCursor(m_Cursor2);
- }
- }
- CDialog::OnMouseMove(nFlags, point);
- }
复制代码 例程有一定的参考价值,
可以下载源代码参考使用:
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|