1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
#include <windows.h>
#define IDC_TEXTBOX 1200
WNDPROC fnOldEdit;
LRESULT CALLBACK EditProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
if(wParam==VK_CONTROL && iMsg==WM_KEYDOWN)
SendMessage(hwnd,WM_CHAR,65,0);
return CallWindowProc(fnOldEdit, hwnd, iMsg, wParam, lParam);
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HINSTANCE hIns;
HWND hTextBox;
int iStyle;
switch (message)
{
case WM_CREATE:
hIns=((LPCREATESTRUCT)lParam)->hInstance;
iStyle = WS_CHILD | WS_VISIBLE | WS_BORDER;
hTextBox=CreateWindow("edit",0,iStyle,90,60,50,25,hwnd,(HMENU)(IDC_TEXTBOX),hIns,0);
fnOldEdit=(WNDPROC)SetWindowLong(hTextBox,GWL_WNDPROC,(LONG)EditProc);
return 0;
case WM_CLOSE:
SetWindowLong(GetDlgItem(hwnd,IDC_TEXTBOX),GWL_WNDPROC,(DWORD)fnOldEdit);
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
int WINAPI WinMain(HINSTANCE hIns,HINSTANCE hPrev,LPSTR lpszArg,int iShow)
{
char szClassName[]="Form4";
WNDCLASSEX wincl;
HWND hMainWnd;
MSG messages;
wincl.hInstance = hIns;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WndProc;
wincl.style = CS_HREDRAW | CS_VREDRAW;
wincl.cbSize = sizeof(WNDCLASSEX);
wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);
RegisterClassEx(&wincl);
hMainWnd=CreateWindow("Form4","Form4",WS_OVERLAPPEDWINDOW,150,200,250,200,0,0,hIns,0);
ShowWindow(hMainWnd,iShow);
while(GetMessage(&messages, NULL, 0, 0))
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return messages.wParam;
}
|