⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key.cpp

📁 有关树WDM 驱动的编程.里面包含了许多实例,学习硬件的可以参考哦
💻 CPP
📖 第 1 页 / 共 2 页
字号:
					::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 + -