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

📄 eyesdlg.cpp

📁 利用注册表键值调用输入法
💻 CPP
字号:
// eyesDlg.cpp : implementation file
//

#include "stdafx.h"
#include "eyes.h"
#include "eyesDlg.h"
#include "Sbutton.h"
#include "InputLanguage.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEyesDlg dialog

CEyesDlg::CEyesDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CEyesDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CEyesDlg)
	m_Get = _T("");
	m_Strings = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CEyesDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CEyesDlg)
	DDX_Control(pDX, IDC_LED1, m_LED1);
	DDX_Control(pDX, IDC_LED2, m_LED2);
	DDX_Control(pDX, IDC_LED3, m_LED3);
	DDX_Control(pDX, IDC_LED4, m_LED4);
	DDX_Control(pDX, IDC_LED5, m_LED5);
	DDX_Control(pDX, IDC_LED6, m_LED6);
	DDX_Control(pDX, IDC_LED7, m_LED7);
	DDX_Control(pDX, IDC_LED8, m_LED8);
	DDX_Control(pDX, IDC_LED9, m_LED9);
	DDX_Control(pDX, IDC_LED10, m_LED10);
	DDX_Control(pDX, IDC_LED11, m_LED11);
	DDX_Control(pDX, IDC_LED12, m_LED12);
	DDX_Control(pDX, IDC_LED13, m_LED13);
	DDX_Control(pDX, IDC_LED14, m_LED14);
	DDX_Control(pDX, IDC_LED15, m_LED15);
	DDX_Control(pDX, IDC_LED16, m_LED16);
	DDX_Control(pDX, IDC_LED17, m_LED17);
	DDX_Control(pDX, IDC_LED18, m_LED18);
	DDX_Control(pDX, IDC_LED19, m_LED19);
	DDX_Control(pDX, IDC_LED20, m_LED20);
	DDX_Control(pDX, IDC_LED21, m_LED21);
	DDX_Control(pDX, IDC_LED22, m_LED22);
	DDX_Control(pDX, IDC_LED23, m_LED23);
	DDX_Control(pDX, IDC_LED24, m_LED24);
	DDX_Control(pDX, IDC_LED25, m_LED25);
	DDX_Control(pDX, IDC_LED26, m_LED26);
	DDX_Control(pDX, IDC_LED27, m_LED27);
	DDX_Control(pDX, IDC_LED28, m_LED28);
	DDX_Control(pDX, IDC_LED29, m_LED29);
	DDX_Control(pDX, IDC_LED30, m_LED30);
	DDX_Control(pDX, IDC_LED31, m_LED31);
	DDX_Control(pDX, IDC_LED32, m_LED32);
	DDX_Text(pDX, IDC_GET, m_Get);
	DDV_MaxChars(pDX, m_Get, 10);
	DDX_Text(pDX, IDC_EDIT1, m_Strings);
	DDV_MaxChars(pDX, m_Strings, 25);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CEyesDlg, CDialog)
	//{{AFX_MSG_MAP(CEyesDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_WM_CREATE()
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
	ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
	ON_WM_LBUTTONDOWN()
	ON_WM_RBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEyesDlg message handlers

BOOL CEyesDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	//////////////////////////////////////////
	//打开微软拼音输入法2003
	//////////////////////////////////////////
	m_Inputlanguage.GetInputLanguageList();
	CString namestr=m_Inputlanguage.m_pILHead->szName;
	IL * p = m_Inputlanguage.FindInput();
	namestr=p->szName;
	MessageBox(namestr);
	m_Inputlanguage.SelectInputLanguage(p);
	//////////////////////////////////////////

	//////////////////////////////////////////
	//设置输入焦点
	//////////////////////////////////////////
	CWnd *pWnd =GetDlgItem(IDC_EDIT1);
//	::GetWindow(pWnd->m_hWnd,GW_HWNDPREV);
	/////////////////////////////////////////
	
	CFont font;
	font.CreatePointFont(200,"Times New Roman");
	pWnd->SetFont(&font);
	pWnd =GetDlgItem(IDC_GET);
	pWnd->SetFont(&font);
		LedArray[0] = GetDlgItem(IDC_LED1);
		LedArray[1] = GetDlgItem(IDC_LED2);
		LedArray[2] = GetDlgItem(IDC_LED3);
		LedArray[3] = GetDlgItem(IDC_LED4);
		LedArray[4] = GetDlgItem(IDC_LED5);
		LedArray[5] = GetDlgItem(IDC_LED6);
		LedArray[6] = GetDlgItem(IDC_LED7);
		LedArray[7] = GetDlgItem(IDC_LED8);
		LedArray[8] = GetDlgItem(IDC_LED9);
		LedArray[9] = GetDlgItem(IDC_LED10);
		LedArray[10] = GetDlgItem(IDC_LED11);
		LedArray[11] = GetDlgItem(IDC_LED12);
		LedArray[12] = GetDlgItem(IDC_LED13);
		LedArray[13] = GetDlgItem(IDC_LED14);
		LedArray[14] = GetDlgItem(IDC_LED15);
		LedArray[15] = GetDlgItem(IDC_LED16);
		LedArray[16] = GetDlgItem(IDC_LED17);
		LedArray[17] = GetDlgItem(IDC_LED18);
		LedArray[18] = GetDlgItem(IDC_LED19);
		LedArray[19] = GetDlgItem(IDC_LED20);
		LedArray[20] = GetDlgItem(IDC_LED21);
		LedArray[21] = GetDlgItem(IDC_LED22);
		LedArray[22] = GetDlgItem(IDC_LED23);
		LedArray[23] = GetDlgItem(IDC_LED24);
		LedArray[24] = GetDlgItem(IDC_LED25);
		LedArray[25] = GetDlgItem(IDC_LED26);
		LedArray[26] = GetDlgItem(IDC_LED27);
		LedArray[27] = GetDlgItem(IDC_LED28);
		LedArray[28] = GetDlgItem(IDC_LED29);
		LedArray[29] = GetDlgItem(IDC_LED30);
		LedArray[30] = GetDlgItem(IDC_LED31);
		LedArray[31] = GetDlgItem(IDC_LED32);

		m_LedArray[0] = &m_LED1;
		m_LedArray[1] = &m_LED2;
		m_LedArray[2] = &m_LED3;
		m_LedArray[3] = &m_LED4;
		m_LedArray[4] = &m_LED5;
		m_LedArray[5] = &m_LED6;
		m_LedArray[6] = &m_LED7;
		m_LedArray[7] = &m_LED8;
		m_LedArray[8] = &m_LED9;
		m_LedArray[9] = &m_LED10;
		m_LedArray[10] = &m_LED11;
		m_LedArray[11] = &m_LED12;
		m_LedArray[12] = &m_LED13;
		m_LedArray[13] = &m_LED14;
		m_LedArray[14] = &m_LED15;
		m_LedArray[15] = &m_LED16;
		m_LedArray[16] = &m_LED17;
		m_LedArray[17] = &m_LED18;
		m_LedArray[18] = &m_LED19;
	    m_LedArray[19] = &m_LED20;
		m_LedArray[20] = &m_LED21;
		m_LedArray[21] = &m_LED22;
		m_LedArray[22] = &m_LED23;
		m_LedArray[23] = &m_LED24;
		m_LedArray[24] = &m_LED25;
		m_LedArray[25] = &m_LED26;
		m_LedArray[26] = &m_LED27;
		m_LedArray[27] = &m_LED28;
		m_LedArray[28] = &m_LED29;
		m_LedArray[29] = &m_LED30;
		m_LedArray[30] = &m_LED31;
		m_LedArray[31] = &m_LED32;

		CString str;

		LoadParam();
		for(int i=0;i<32;i++)
		{
			str = Character[i];
			LedArray[i]->SetWindowText(str);
		}

		iVstep = 1;
		iHstep = 1;
		bVH    = 0;
		m_Old  = 0;
		m_Oldd = 0;
		m_Current = 0;
	    m_LedArray[m_Old]->bActive = 1;
	    LedArray[m_Old]->GetWindowText(str);
	    m_LedArray[m_Old]->Set(LedArray[m_Old],ID_RED,str);


	SetTimer(1,1000,NULL);


	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CEyesDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CEyesDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		
//		CPaintDC dc(this);
	//	CDC *pDC = GetDC();
  //      CRect rc;
	//	CWnd *pWnd = this->GetDlgItem(IDC_DESK);
      //  pWnd->GetWindowRect(rc);
//		dc.SetWindowOrg(rc.left,rc.top);
//		dc.MoveTo(rcClient.left,rcClient.top);
//		dc.LineTo(rcClient.right+rc.left,rcClient.bottom+rc.top);
   // 	dc.Rectangle(rc);

		CDialog::OnPaint();
		
		


	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CEyesDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}



int CEyesDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	return 0;
}

void CEyesDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CString str;
	
	if(!bVH)
	{
		 iVstep++;
		 if(iVstep>8)iVstep=1;
		 m_Oldd = m_Old;
		 m_Current=(iHstep-1)*8+iVstep-1;
		 m_Old = m_Current;	
		 
		 m_LedArray[m_Oldd]->bActive=0;
		 m_LedArray[m_Old]->bActive = 1;
		 LedArray[m_Old]->GetWindowText(str);
		 m_LedArray[m_Old]->Set(LedArray[m_Old],ID_RED,str);
		 

	}
	else
	{
		 iHstep++;
		 if(iHstep>4)iHstep=1;
		 m_Oldd = m_Old;
		 m_Current=(iHstep-1)*8+iVstep-1;
		 m_Old = m_Current;

		 m_LedArray[m_Oldd]->bActive=0;
		 m_LedArray[m_Old]->bActive = 1;
		 LedArray[m_Old]->GetWindowText(str);
		 m_LedArray[m_Old]->Set(LedArray[m_Old],ID_RED,str);
		 

	}
//	m_LedArray[]->bActive = 1;
//	m_LED2.Set(LedArray[0],ID_RED,"haha");
	InvalidateRect(NULL,TRUE);
	UpdateWindow();
	CDialog::OnTimer(nIDEvent);
}

void CEyesDlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
/*		if(m_LED2.bActive)m_LED2.bActive=0;
		else m_LED2.bActive=1;
		
	m_LedArray[0]->bActive = 1;
	m_LedArray[0]->Set(LedArray[0],ID_RED,"haha");
	InvalidateRect(NULL,TRUE);
	//	UpdateWindow();*/
	//	if(bVH)bVH=0;
	//	else bVH =1;
	//	KillTimer(1);
	//	SendMessage(WM_TIMER,0,0);
	//	SetTimer(1,1000,NULL);

}




void CEyesDlg::LoadParam()
{

	
   	FILE *fp;
	fp = fopen("C:\\Param.ini","r");
	if (fp != NULL)
	{	
		for(int i=0;i<32;i++)
			fscanf(fp,"%c\n",&Character[i]);

	fclose(fp);
	}
	else
	{
		MessageBox("配置参数读取失败,系统将使用缺省参数!");
	}
}



void CEyesDlg::OnButton3() 
{
	// TODO: Add your control notification handler code here

//	CWnd *pWnd = GetDlgItem(IDC_EDIT1);
//	CWnd *pProWnd =	pWnd->GetNextWindow(GW_HWNDPREV);
//		pProWnd->SetFocus();
//	m_Get += Character[m_Old];
//	m_Strings +=Character[m_Old];
//	UpdateData(0);
//    MessageBox(str);

	
}

void CEyesDlg::OnButton4() 
{
	// TODO: Add your control notification handler code here
	m_Get.Empty();
	UpdateData(0);
	
}

void CEyesDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
		if(bVH)bVH=0;
		else bVH =1;
	//CDialog::OnLButtonDown(nFlags, point);
}

void CEyesDlg::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
		m_Get = Character[m_Old];
//	m_Strings +=Character[m_Old];
//	CWnd *pWnd = GetDlgItem(IDC_EDIT1);
//	CWnd *pProWnd =	pWnd->GetNextWindow(GW_HWNDPREV);
//		pProWnd->SetFocus();
	if(Character[m_Old]<'Z')
	{
		::	keybd_event(Character[m_Old],MapVirtualKey(Character[m_Old],0),0,0);
	    ::	keybd_event(Character[m_Old],MapVirtualKey(Character[m_Old],0),KEYEVENTF_KEYUP,0);
	}
	else
	{
        ::	keybd_event(Character[m_Old]-0x20,MapVirtualKey(Character[m_Old]-0x20,0),0,0);
		::	keybd_event(0x10,MapVirtualKey(0x10,0),0,0);
	    ::	keybd_event(Character[m_Old]-0x20,MapVirtualKey(Character[m_Old]-0x20,0),KEYEVENTF_KEYUP,0);
		::	keybd_event(0x10,MapVirtualKey(0x10,0),KEYEVENTF_KEYUP,0);
	}
	 UpdateData(0);
//    MessageBox(str);
	//CDialog::OnRButtonDown(nFlags, point);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -