📄 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 + -