#include<windows.h>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrecInstance,LPSTR lpCmdLine,int nShowCmd)
{
static TCHAR szName[]=TEXT("Keybord test");
WNDCLASS wndclass;
HWND hwnd;
MSG msg; wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc= WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon= LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor= LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName= szName ; if(!RegisterClass(&wndclass))
{
MessageBox(hwnd,szName,TEXT("sdfsf"),MB_OK);
return 0;
} hwnd = CreateWindow (szName, TEXT ("What Size is the Window?"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ; ShowWindow(hwnd,nShowCmd);
UpdateWindow(hwnd);
while(!GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}LRESULT CALLBACK WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
HPEN hp; bool upf=false;
bool shif=false;
bool ctrf=false;
bool ac=false;
bool bf=false; static TCHAR up[]=TEXT("you have hit the up key");
static TCHAR shift[]=TEXT("you have hit the shift key");
static TCHAR ctr[]=TEXT("you have hit the ctrl key");
static TCHAR ctra[]=TEXT("you have hit ctrl and a key");
static TCHAR shifb[]=TEXT("you have hit shift and b key"); switch(iMsg)
{
case WM_KEYDOWN:
{
switch(wParam)
{
case VK_UP:upf=true;break;
case VK_CONTROL:ctrf=true;break;
case VK_SHIFT:shif=true;break;
default:break;
}
break;
}
case WM_KEYUP:
InvalidateRect(hwnd,NULL,FALSE);
break;
case WM_CHAR:
if(ctrf)
if(wParam==65)
{
ctrf=false;
ac=true;
}
if(shif)
if(wParam==66)
{
shif=false;
bf=true;
}
break;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
SetTextColor(hdc,RGB(255,0,0));
if(upf)
{
TextOut(hdc,0,0,up,lstrlen(up));
upf=false;
}
if(shif)
{
TextOut(hdc,0,0,shift,lstrlen(shift));
shif=false;
}
if(ctrf)
{
TextOut(hdc,0,0,ctr,lstrlen(ctr));
ctrf=false;
}
if(ac)
{
TextOut(hdc,0,0,ctra,lstrlen(ctra));
ac=false;
}
if(bf)
{
TextOut(hdc,0,0,shifb,lstrlen(shifb));
bf=false;
}
EndPaint(hwnd,&ps);
break;
default: DefWindowProc(hwnd,iMsg,wParam,lParam);break;
}
return 0;}
{
static TCHAR szName[]=TEXT("Keybord test");
WNDCLASS wndclass;
HWND hwnd;
MSG msg; wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc= WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon= LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor= LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName= szName ; if(!RegisterClass(&wndclass))
{
MessageBox(hwnd,szName,TEXT("sdfsf"),MB_OK);
return 0;
} hwnd = CreateWindow (szName, TEXT ("What Size is the Window?"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ; ShowWindow(hwnd,nShowCmd);
UpdateWindow(hwnd);
while(!GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}LRESULT CALLBACK WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
HPEN hp; bool upf=false;
bool shif=false;
bool ctrf=false;
bool ac=false;
bool bf=false; static TCHAR up[]=TEXT("you have hit the up key");
static TCHAR shift[]=TEXT("you have hit the shift key");
static TCHAR ctr[]=TEXT("you have hit the ctrl key");
static TCHAR ctra[]=TEXT("you have hit ctrl and a key");
static TCHAR shifb[]=TEXT("you have hit shift and b key"); switch(iMsg)
{
case WM_KEYDOWN:
{
switch(wParam)
{
case VK_UP:upf=true;break;
case VK_CONTROL:ctrf=true;break;
case VK_SHIFT:shif=true;break;
default:break;
}
break;
}
case WM_KEYUP:
InvalidateRect(hwnd,NULL,FALSE);
break;
case WM_CHAR:
if(ctrf)
if(wParam==65)
{
ctrf=false;
ac=true;
}
if(shif)
if(wParam==66)
{
shif=false;
bf=true;
}
break;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
SetTextColor(hdc,RGB(255,0,0));
if(upf)
{
TextOut(hdc,0,0,up,lstrlen(up));
upf=false;
}
if(shif)
{
TextOut(hdc,0,0,shift,lstrlen(shift));
shif=false;
}
if(ctrf)
{
TextOut(hdc,0,0,ctr,lstrlen(ctr));
ctrf=false;
}
if(ac)
{
TextOut(hdc,0,0,ctra,lstrlen(ctra));
ac=false;
}
if(bf)
{
TextOut(hdc,0,0,shifb,lstrlen(shifb));
bf=false;
}
EndPaint(hwnd,&ps);
break;
default: DefWindowProc(hwnd,iMsg,wParam,lParam);break;
}
return 0;}
解决方案 »
- socket多线程发送数据效率问题~~
- VC6中使用MFC ODBC连接数据库,怎样实现三表连接查询
- wtl中为TREE添加图标
- 简单问题:如何判断一个文件是否存在?
- 新手到!关于权限设置对话框的问题,请大家指点
- 奇怪了???我的 Office 2000 为什么是(Debug)版的
- VC6做的Acrobat5插件为什么不能在AcrobatReader5里面用?
- 刚出炉的孝子大拍卖,不买也来看看拉........参与就有分呀
- 一个dx程序,我同学编译没问题,我用vs2008编译出错,望哪位高手指导
- 多文档应用的菜单控制……小弟我真的搞不定
- Xtreme ToolkitPro安装不上怎么解决?
- 请教各位牛人:Teechart控件如何实现纵坐标显示字符
{
MessageBox(hwnd,szName,TEXT("sdfsf"),MB_OK);
return 0;
}你的CreateWindows都没调用,hwnd都无效,它弹到哪去啊?
-->
while(GetMessage(&msg,NULL,0,0))default: DefWindowProc(hwnd,iMsg,wParam,lParam);break;
-->
default:
return DefWindowProc(hwnd,iMsg,wParam,lParam);
default:
return DefWindowProc(hwnd,iMsg,wParam,lParam);