ReactOS 0.4.15-dev-7934-g1dc8d80
accelerator.c
Go to the documentation of this file.
1#include <windows.h>
2#include <stdio.h>
3#include <string.h>
4
5#define ID_ACCEL1 0x100
6#define ID_ACCEL2 0x101
7#define ID_ACCEL3 0x102
8#define ID_ACCEL4 0x103
9
10#ifndef VK_A
11#define VK_A 0x41
12#endif
13
14/*
15 * {fVirt, key, cmd}
16 * fVirt |= FVIRTKEY | FCONTROL | FALT | FSHIFT
17 */
18//static HFONT tf;
19static ACCEL Accelerators[4] = {
24static HACCEL hAcceleratorTable;
25static char Event[200];
26
28
29int WINAPI
31 HINSTANCE hPrevInstance,
32 LPSTR lpszCmdLine,
33 int nCmdShow)
34{
35 WNDCLASS wc;
36 MSG msg;
37 HWND hWnd;
38
39 wc.lpszClassName = "AcceleratorTest";
46 wc.lpszMenuName = NULL;
47 wc.cbClsExtra = 0;
48 wc.cbWndExtra = 0;
49 if (RegisterClass(&wc) == 0)
50 {
51 fprintf(stderr, "RegisterClass failed (last error 0x%lX)\n",
52 GetLastError());
53 return(1);
54 }
55
56 hWnd = CreateWindow("AcceleratorTest",
57 "Accelerator Test",
59 0,
60 0,
63 NULL,
64 NULL,
66 NULL);
67 if (hWnd == NULL)
68 {
69 fprintf(stderr, "CreateWindow failed (last error 0x%lX)\n",
70 GetLastError());
71 return(1);
72 }
73
74 /*tf = CreateFontA(14, 0, 0, TA_BASELINE, FW_NORMAL, FALSE, FALSE, FALSE,
75 ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
76 DEFAULT_QUALITY, FIXED_PITCH|FF_DONTCARE, "Timmons");*/
77
78 Event[0] = 0;
79
80 ShowWindow(hWnd, nCmdShow);
81
83 sizeof(Accelerators)/sizeof(Accelerators[1]));
85 {
86 fprintf(stderr, "CreateAcceleratorTable failed (last error 0x%lX)\n",
87 GetLastError());
88 return(1);
89 }
90
91 while(GetMessage(&msg, NULL, 0, 0))
92 {
94 {
97 }
98 }
99
101 {
102 fprintf(stderr, "DestroyAcceleratorTable failed (last error 0x%lX)\n",
103 GetLastError());
104 return(1);
105 }
106
107 //DeleteObject(tf);
108
109 return msg.wParam;
110}
111
113{
114 PAINTSTRUCT ps;
115 HDC hDC;
116 char buf[200];
117
118 switch(msg)
119 {
120 case WM_PAINT:
121 hDC = BeginPaint(hWnd, &ps);
122 //SelectObject(hDC, tf);
123 sprintf(buf, "Event: '%s'", Event);
124 TextOut(hDC, 10, 10, buf, strlen(buf));
125 EndPaint(hWnd, &ps);
126 break;
127
128 case WM_DESTROY:
130 break;
131
132 case WM_COMMAND:
133
134 switch (LOWORD(wParam))
135 {
136 case ID_ACCEL1:
137 strcpy(Event, "A");
138 break;
139
140 case ID_ACCEL2:
141 strcpy(Event, "SHIFT+A");
142 break;
143
144 case ID_ACCEL3:
145 strcpy(Event, "CTRL+A");
146 break;
147
148 case ID_ACCEL4:
149 strcpy(Event, "ALT+A");
150 break;
151
152 default:
153 sprintf(Event, "%d", LOWORD(wParam));
154 break;
155 }
156
159 break;
160
161 default:
163 }
164 return 0;
165}
static HDC hDC
Definition: 3dtext.c:33
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
#define msg(x)
Definition: auth_time.c:54
HWND hWnd
Definition: settings.c:17
HINSTANCE hInstance
Definition: charmap.c:19
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define CALLBACK
Definition: compat.h:35
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define stderr
Definition: stdio.h:100
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
#define sprintf(buf, format,...)
Definition: sprintf.c:55
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
Definition: accelerator.c:30
LRESULT WINAPI MainWndProc(HWND, UINT, WPARAM, LPARAM)
Definition: accelerator.c:112
static HACCEL hAcceleratorTable
Definition: accelerator.c:24
#define ID_ACCEL2
Definition: accelerator.c:6
#define VK_A
Definition: accelerator.c:11
static ACCEL Accelerators[4]
Definition: accelerator.c:19
#define ID_ACCEL4
Definition: accelerator.c:8
#define ID_ACCEL1
Definition: accelerator.c:5
#define ID_ACCEL3
Definition: accelerator.c:7
static HDC
Definition: imagelist.c:92
unsigned int UINT
Definition: ndis.h:50
#define LOWORD(l)
Definition: pedump.c:82
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
#define DefWindowProc
Definition: ros2win.h:31
HBRUSH hbrBackground
Definition: winuser.h:3170
HICON hIcon
Definition: winuser.h:3168
HINSTANCE hInstance
Definition: winuser.h:3167
HCURSOR hCursor
Definition: winuser.h:3169
int cbWndExtra
Definition: winuser.h:3166
UINT style
Definition: winuser.h:3163
LPCSTR lpszMenuName
Definition: winuser.h:3171
LPCSTR lpszClassName
Definition: winuser.h:3172
WNDPROC lpfnWndProc
Definition: winuser.h:3164
int cbClsExtra
Definition: winuser.h:3165
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
#define WINAPI
Definition: msvc.h:6
HGDIOBJ WINAPI GetStockObject(_In_ int)
#define GRAY_BRUSH
Definition: wingdi.h:898
#define TextOut
Definition: wingdi.h:4483
#define WM_PAINT
Definition: winuser.h:1620
#define CS_VREDRAW
Definition: winuser.h:658
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
#define WM_COMMAND
Definition: winuser.h:1740
#define CreateAcceleratorTable
Definition: winuser.h:5748
#define CS_HREDRAW
Definition: winuser.h:653
#define IDC_ARROW
Definition: winuser.h:687
#define FVIRTKEY
Definition: winuser.h:24
#define IDI_APPLICATION
Definition: winuser.h:704
#define CreateWindow
Definition: winuser.h:5754
#define FSHIFT
Definition: winuser.h:23
#define GetMessage
Definition: winuser.h:5790
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
#define LoadIcon
Definition: winuser.h:5813
#define FCONTROL
Definition: winuser.h:21
BOOL WINAPI UpdateWindow(_In_ HWND)
#define LoadCursor
Definition: winuser.h:5812
#define CW_USEDEFAULT
Definition: winuser.h:225
#define RegisterClass
Definition: winuser.h:5836
#define WM_DESTROY
Definition: winuser.h:1609
#define DispatchMessage
Definition: winuser.h:5765
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
BOOL WINAPI DestroyAcceleratorTable(_In_ HACCEL)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define FALT
Definition: winuser.h:20
#define TranslateAccelerator
Definition: winuser.h:5860
char * LPSTR
Definition: xmlstorage.h:182
const CHAR * LPCTSTR
Definition: xmlstorage.h:193