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

📄 ascii.cpp

📁 ascii码超级查询
💻 CPP
字号:
//键盘ASCII码查询器
//倪梓鹏 2003/5/9
#include <windows.h>
#include "resource.h"

//----------------------------------------------------------------
static TCHAR szAppName[] = TEXT ("ASCII") ;
LONG  wpWndProc; 
HWND hDlg;
//----------------------------------------------------------------
LRESULT APIENTRY WndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT APIENTRY EditSubclassProc( HWND, UINT, WPARAM, LPARAM ) ;



int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
	HWND         hwnd ;
	MSG          msg ;
	WNDCLASS     wndclass ;
	wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
	wndclass.lpfnWndProc   = WndProc;
	wndclass.cbClsExtra    = 0 ;
	wndclass.cbWndExtra    = DLGWINDOWEXTRA ;
	wndclass.hInstance     = hInstance ;
	wndclass.hIcon         = LoadIcon (hInstance, szAppName);
	wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
	wndclass.hbrBackground = (HBRUSH) (COLOR_BTNFACE+1) ;
	wndclass.lpszMenuName  = szAppName ;
	wndclass.lpszClassName = szAppName ;
	
	if (!RegisterClass (&wndclass))
	{
		MessageBox (NULL, TEXT ("This program requires Windows NT!"), 
			szAppName, MB_ICONERROR) ;
		return 0 ;
	}
	
	hwnd = CreateDialog(hInstance,szAppName,NULL,(DLGPROC)WndProc);
	ShowWindow (hwnd, iCmdShow) ;
	UpdateWindow (hwnd) ;
	
	while (GetMessage (&msg, NULL, 0, 0) )
	{
		if (!IsWindow(hwnd) || !IsDialogMessage(hwnd, &msg))
		{
			
			TranslateMessage (&msg) ;
			DispatchMessage (&msg) ;
		}
	}
	return msg.wParam ;
}
LRESULT APIENTRY WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    static HINSTANCE hInstance;	
	switch (message)
	{
	case WM_INITDIALOG:
        hDlg = hwnd;
		SetFocus(GetDlgItem(hwnd,IDEXIT));
		wpWndProc = SetWindowLong( GetDlgItem(hwnd,IDC_EDITIN), GWL_WNDPROC, (LONG) EditSubclassProc);
	    
		return TRUE;
		
	case WM_COMMAND:
		switch(LOWORD(wParam))
		{
		case IDEXIT:
			DestroyWindow(hwnd);
		    break;
		}		
		return 0;
	case WM_DESTROY:
		PostQuitMessage (0) ;
		return 0 ;
	}
	return DefWindowProc (hwnd, message, wParam, lParam) ;
}
LRESULT APIENTRY EditSubclassProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 
{ 

	TCHAR szKeyName[32] = " ";
	TCHAR szBuffer[256] = " " ;
	HWND hEditIn, hEditOut;
	hEditIn = GetDlgItem(hwnd,IDC_EDITIN);
	hEditOut = GetDlgItem(hwnd,IDC_EDITOUT);
	if( WM_KEYDOWN == uMsg || WM_SYSKEYDOWN== uMsg || WM_SYSCHAR == uMsg) 
	//WM_KEYDOWN和WM_SYSKEYDOWN消息产生了字符信息,先处理WM_CHAR不会处理的信息
	{
		GetKeyNameText(lParam,szKeyName,sizeof (szKeyName) / sizeof (TCHAR)) ;
		SetDlgItemText(hDlg,IDC_EDITIN,szKeyName);
		wsprintf(szBuffer,"%d",wParam); 
		SetDlgItemText(hDlg,IDC_EDITOUT, szBuffer);	
	}
	if(WM_CHAR == uMsg||WM_SYSCHAR == uMsg)
	{	  
		wsprintf(szBuffer,"%c",wParam); 
		SetDlgItemText(hDlg,IDC_EDITIN, szBuffer);//显示输入的按键
	    wsprintf(szBuffer, "%d", wParam);
		SetDlgItemText(hDlg,IDC_EDITOUT, szBuffer);//显示输入的按键的ASCII码
		return TRUE;
	}	  
	
	if(wParam == VK_RETURN || wParam == VK_BACK || wParam == VK_ESCAPE)//处理Enter等其他键
	{
		SetDlgItemText(hDlg,IDC_EDITIN,"");
		GetKeyNameText(lParam,szKeyName,sizeof (szKeyName) / sizeof (TCHAR)) ;
		SetDlgItemText(hDlg,IDC_EDITIN,szKeyName);
		wsprintf(szBuffer,"%d",wParam); 
		SetDlgItemText(hDlg,IDC_EDITOUT, szBuffer);
		return TRUE;
	}
    return CallWindowProc((WNDPROC)wpWndProc, hwnd, uMsg, 
        wParam, lParam); 
} 

⌨️ 快捷键说明

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