📄 key.cpp
字号:
::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_b5,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc6(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_b6,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc7(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_b7,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc8(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_b8,hwnd,iMsg,wParam,lParam);
}
LRESULT CALLBACK CKey::WindowProc9(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_b9,hwnd,iMsg,wParam,lParam);
}
void CKey::Onebutton(WPARAM wparam,LPARAM lParam)
{
m_bb0.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb0.SendMessage(BM_SETSTATE,0,0);
m_keydate=0;
UpdateData(FALSE);
data=0x00;
Display_LED((BYTE)data);
//SendMessage(WM_COMMAND,IDC_BUTTON10,BM_CLICK);
}
void CKey::OnButton10()
{
// TODO: Add your control notification handler code here
int a=0;
}
void CKey::One1button(WPARAM wparam,LPARAM lParam)
{
m_bb1.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb1.SendMessage(BM_SETSTATE,0,0);
m_keydate=1;
UpdateData(FALSE);
data=0x01;
Display_LED((BYTE)data);
}
void CKey::Twobutton(WPARAM wparam,LPARAM lParam)
{
m_bb2.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb2.SendMessage(BM_SETSTATE,0,0);
m_keydate=2;
UpdateData(FALSE);
data=0x02;
Display_LED((BYTE)data);
}
void CKey::Threebutton(WPARAM wparam,LPARAM lParam)
{
m_bb3.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb3.SendMessage(BM_SETSTATE,0,0);
m_keydate=3;
UpdateData(FALSE);
data=0x03;
Display_LED((BYTE)data);
}
void CKey::Fourbutton(WPARAM wparam,LPARAM lParam)
{
m_bb4.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb4.SendMessage(BM_SETSTATE,0,0);
m_keydate=4;
UpdateData(FALSE);
data=0x04;
Display_LED((BYTE)data);
}
void CKey::Fivebutton(WPARAM wparam,LPARAM lParam)
{
m_bb5.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb5.SendMessage(BM_SETSTATE,0,0);
m_keydate=5;
UpdateData(FALSE);
data=0x05;
Display_LED((BYTE)data);
}
void CKey::Sixbutton(WPARAM wparam,LPARAM lParam)
{
m_bb6.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb6.SendMessage(BM_SETSTATE,0,0);
m_keydate=6;
UpdateData(FALSE);
data=0x06;
Display_LED((BYTE)data);
}
void CKey::Sevenbutton(WPARAM wparam,LPARAM lParam)
{
m_bb7.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb7.SendMessage(BM_SETSTATE,0,0);
m_keydate=7;
UpdateData(FALSE);
data=0x07;
Display_LED((BYTE)data);
}
void CKey::Eightbutton(WPARAM wparam,LPARAM lParam)
{
m_bb8.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb8.SendMessage(BM_SETSTATE,0,0);
m_keydate=8;
UpdateData(FALSE);
data=0x08;
Display_LED((BYTE)data);
}
void CKey::Ninebutton(WPARAM wparam,LPARAM lParam)
{
m_bb9.SendMessage(BM_SETSTATE,1,0);
Sleep(50);
m_bb9.SendMessage(BM_SETSTATE,0,0);
m_keydate=9;
UpdateData(FALSE);
data=0x09;
Display_LED((BYTE)data);
}
void CKey::OnOK()
{
// TODO: Add extra validation here
KillTimer(1);
data=0xff;
for(int z=0;z<4;z++)
{
m_d->work[z]=0xff;
}
data=0xff;
DeviceIoControl(
hDevice,
IOCTL_LED,
pci,
IC_8255_A,
m_d,
IC_8255_B,
&nRet,
NULL);
if(pci!=NULL)
{
free( pci);
pci=NULL;
}
if(m_d!=NULL)
{
free( m_d);
m_d=NULL;
}
if(hDevice!=NULL)
{
CloseHandle( hDevice);
hDevice=NULL;
}
if(hDevice1!=NULL)
{
CloseHandle( hDevice1);
hDevice1=NULL;
}
CDialog::OnOK();
}
void CKey::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
m_display_bit+=1;
if(m_display_bit>4)
{
m_display_bit=1;
}
DisplayLED_bit(m_display_bit);
CDialog::OnTimer(nIDEvent);
}
void CKey::Display_LED(BYTE x)
{
x=GetLED_data(x);
BYTE m_1,m_2,m_3;
m_1=m_d->work[1];
m_2=m_d->work[2];
m_3=m_d->work[3];
m_d->work[1]=m_d->work[0];
m_d->work[0]=x;
m_d->work[2]=m_1;
m_d->work[3]=m_2;
DeviceIoControl(
hDevice,
IOCTL_LED,
pci,
IC_8255_A,
m_d,
IC_8255_B,
&nRet,
NULL);
}
void CKey::DisplayLED_bit(int x)
{
BYTE m_a=0x08;
m_a<<=x;
W_AD->Data=m_a;
W_AD->Address=IC_8255_B;
DeviceIoControl(
hDevice,
IOCTL_IOW,
W_AD,
sizeof(W_AD)+1,
NULL,
0,
&nRet,
NULL);
if(m_first=FALSE)
{
SetTimer(1,10,NULL);
m_first=TRUE;
}
}
BYTE CKey::GetLED_data(BYTE x)
{
BYTE m_a=0;
switch(x)
{
case 0:
m_a=0xc0;
break;
case 1:
m_a=0xf9;
break;
case 2:
m_a=0xa4;
break;
case 3:
m_a=0xb0;
break;
case 4:
m_a=0x99;
break;
case 5:
m_a=0x92;
break;
case 6:
m_a=0x82;
break;
case 7:
m_a=0xf8;
break;
case 8:
m_a=0x80;
break;
case 9:
m_a=0x98;
break;
case 10:
m_a=0x88;
break;
case 11:
m_a=0x83;
break;
case 12:
m_a=0xc6;
break;
case 13:
m_a=0xa1;
break;
case 14:
m_a=0x86;
break;
case 15:
m_a=0x8e;
break;
}
return m_a;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -