📄 key.cpp
字号:
// Key.cpp : implementation file
//
#include "stdafx.h"
#include "pctest.h"
#include "Key.h"
#include "adc.h"
#include "address.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
WNDPROC m_b0,m_b1,m_b2,m_b3,m_b4,m_b5,m_b6,m_b7,m_b8,m_b9;
/////////////////////////////////////////////////////////////////////////////
// CKey dialog
extern HANDLE hDevice;
extern HANDLE hDevice1;
extern PCHAR mDynVxDName ;
CKey::CKey(CWnd* pParent /*=NULL*/)
: CDialog(CKey::IDD, pParent)
{
//{{AFX_DATA_INIT(CKey)
m_keydate = 0;
//}}AFX_DATA_INIT
m_first=FALSE;
m_display_bit=0;
m_d=(p_data*)malloc(sizeof(p_data));
for(int z=0;z<4;z++)
{
m_d->work[z]=0xff;
}
hDevice1=NULL;
hDevice=NULL;
}
void CKey::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CKey)
DDX_Control(pDX, IDC_BUTTON9, m_bb9);
DDX_Control(pDX, IDC_BUTTON8, m_bb8);
DDX_Control(pDX, IDC_BUTTON7, m_bb7);
DDX_Control(pDX, IDC_BUTTON6, m_bb6);
DDX_Control(pDX, IDC_BUTTON5, m_bb5);
DDX_Control(pDX, IDC_BUTTON4, m_bb4);
DDX_Control(pDX, IDC_BUTTON3, m_bb3);
DDX_Control(pDX, IDC_BUTTON2, m_bb2);
DDX_Control(pDX, IDC_BUTTON1, m_bb1);
DDX_Control(pDX, IDC_BUTTON10, m_bb0);
DDX_Text(pDX, IDC_EDIT1, m_keydate);
DDV_MinMaxInt(pDX, m_keydate, 0, 9);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CKey, CDialog)
//{{AFX_MSG_MAP(CKey)
ON_WM_KEYDOWN()
ON_BN_CLICKED(IDC_BUTTON10, OnButton10)
ON_WM_TIMER()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_USER+0x100,Onebutton)
ON_MESSAGE(WM_USER+0x101,One1button)
ON_MESSAGE(WM_USER+0x102,Twobutton)
ON_MESSAGE(WM_USER+0x103,Threebutton)
ON_MESSAGE(WM_USER+0x104,Fourbutton)
ON_MESSAGE(WM_USER+0x105,Fivebutton)
ON_MESSAGE(WM_USER+0x106,Sixbutton)
ON_MESSAGE(WM_USER+0x107,Sevenbutton)
ON_MESSAGE(WM_USER+0x108,Eightbutton)
ON_MESSAGE(WM_USER+0x109,Ninebutton)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CKey message handlers
void CKey::OnCancel()
{
}
void CKey::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}
BOOL CKey::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_b0=(WNDPROC)SetWindowLong(m_bb0.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc0);
m_b1=(WNDPROC)SetWindowLong(m_bb1.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc1);
m_b2=(WNDPROC)SetWindowLong(m_bb2.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc2);
m_b3=(WNDPROC)SetWindowLong(m_bb3.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc3);
m_b4=(WNDPROC)SetWindowLong(m_bb4.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc4);
m_b5=(WNDPROC)SetWindowLong(m_bb5.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc5);
m_b6=(WNDPROC)SetWindowLong(m_bb6.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc6);
m_b7=(WNDPROC)SetWindowLong(m_bb7.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc7);
m_b8=(WNDPROC)SetWindowLong(m_bb8.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc8);
m_b9=(WNDPROC)SetWindowLong(m_bb9.GetSafeHwnd(),GWL_WNDPROC,
(DWORD)WindowProc9);
if(hDevice==NULL)
{
hDevice = CreateFile(mDynVxDName ,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
0,
NULL);
if (hDevice == INVALID_HANDLE_VALUE)
{
AfxMessageBox("请检查板卡和驱动程序");
CDialog::OnCancel();
return FALSE;
}
};
W_AD=(Write_AD*)malloc(sizeof(Write_AD));
W_AD->Data=0x80;
W_AD->Address=IC_8255_type;
DeviceIoControl(
hDevice,
IOCTL_IOW,
W_AD,
sizeof(W_AD)+1,
NULL,
0,
&nRet,
NULL);
W_AD->Data=0xff;
W_AD->Address=IC_8255_A;
DeviceIoControl(
hDevice,
IOCTL_IOW,
W_AD,
sizeof(W_AD)+1,
NULL,
0,
&nRet,
NULL);
W_AD->Address=IC_8255_B;
DeviceIoControl(
hDevice,
IOCTL_IOW,
pci,
IC_8255_B,
NULL,
data,
&nRet,
NULL);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
LRESULT CALLBACK CKey::WindowProc0(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
HWND m_dialog;
m_dialog=::GetParent(hwnd);
ASSERT(m_dialog);
switch(iMsg)
{
case WM_KEYDOWN:
{
if((int)wParam)
{
int a=wParam;
switch(a)
{
case 96:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 97:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 98:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 99:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 100:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 101:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 102:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 103:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 104:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 105:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
case 48:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 49:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 50:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 51:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 52:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 53:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 54:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 55:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 56:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 57:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
default:
AfxMessageBox("请输入0-9数字");
}
}
}
break;
}
return CallWindowProc(m_b0,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc1(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
HWND m_dialog;
m_dialog=::GetParent(hwnd);
ASSERT(m_dialog);
switch(iMsg)
{
case WM_KEYDOWN:
{
if((int)wParam)
{
int a=wParam;
switch(a)
{
case 96:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 97:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 98:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 99:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 100:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 101:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 102:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 103:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 104:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 105:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
case 48:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 49:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 50:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 51:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 52:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 53:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 54:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 55:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 56:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 57:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
default:
AfxMessageBox("请输入0-9数字");
}
}
}
break;
}
return CallWindowProc(m_b1,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc2(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
HWND m_dialog;
m_dialog=::GetParent(hwnd);
ASSERT(m_dialog);
switch(iMsg)
{
case WM_KEYDOWN:
{
if((int)wParam)
{
int a=wParam;
switch(a)
{
case 96:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 97:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 98:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 99:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 100:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 101:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 102:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 103:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 104:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 105:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
case 48:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 49:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 50:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 51:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 52:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 53:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 54:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 55:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 56:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 57:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
default:
AfxMessageBox("请输入0-9数字");
}
}
}
break;
}
return CallWindowProc(m_b2,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc3(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
HWND m_dialog;
m_dialog=::GetParent(hwnd);
ASSERT(m_dialog);
switch(iMsg)
{
case WM_KEYDOWN:
{
if((int)wParam)
{
int a=wParam;
switch(a)
{
case 96:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 97:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 98:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 99:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 100:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 101:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 102:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 103:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 104:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 105:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
case 48:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 49:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 50:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 51:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 52:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 53:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 54:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 55:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 56:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 57:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
default:
AfxMessageBox("请输入0-9数字");
}
}
}
break;
}
return CallWindowProc(m_b3,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc4(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
HWND m_dialog;
m_dialog=::GetParent(hwnd);
ASSERT(m_dialog);
switch(iMsg)
{
case WM_KEYDOWN:
{
if((int)wParam)
{
int a=wParam;
switch(a)
{
case 96:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 97:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 98:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 99:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 100:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 101:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 102:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 103:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 104:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 105:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
case 48:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 49:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 50:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 51:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 52:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 53:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 54:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 55:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 56:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 57:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
default:
AfxMessageBox("请输入0-9数字");
}
}
}
break;
}
return CallWindowProc(m_b4,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc5(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
HWND m_dialog;
m_dialog=::GetParent(hwnd);
ASSERT(m_dialog);
switch(iMsg)
{
case WM_KEYDOWN:
{
if((int)wParam)
{
int a=wParam;
switch(a)
{
case 96:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 97:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 98:
::SendMessage (m_dialog,WM_USER+0x102,0,0);
break;
case 99:
::SendMessage (m_dialog,WM_USER+0x103,0,0);
break;
case 100:
::SendMessage (m_dialog,WM_USER+0x104,0,0);
break;
case 101:
::SendMessage (m_dialog,WM_USER+0x105,0,0);
break;
case 102:
::SendMessage (m_dialog,WM_USER+0x106,0,0);
break;
case 103:
::SendMessage (m_dialog,WM_USER+0x107,0,0);
break;
case 104:
::SendMessage (m_dialog,WM_USER+0x108,0,0);
break;
case 105:
::SendMessage (m_dialog,WM_USER+0x109,0,0);
break;
case 48:
::SendMessage (m_dialog,WM_USER+0x100,0,0);
break;
case 49:
::SendMessage (m_dialog,WM_USER+0x101,0,0);
break;
case 50:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -