键盘(十五)

2010-12-30 21:11:33 · 作者: · 浏览: 32848
essage (hwnd, WM_VSCROLL, SB_TOP, 0) ;
break ;

case VK_END:
SendMessage (hwnd, WM_VSCROLL, SB_BOTTOM, 0) ;
break ;

case VK_PRIOR:
SendMessage (hwnd, WM_VSCROLL, SB_PAGEUP, 0) ;
break ;

至此,您已经有了大概观念了吧。我们的目标是为卷动列添加键盘介面,并且也正在这么做。通过把卷动讯息发送到视窗讯息处理程式,我们实作了用游标移动键进行卷动列的功能。现在您知道在SYSMETS3中为WM_VSCROLL讯息加上SB_TOP和SB_BOTTOM处理码的原因了吧。在那里并没有用到它,但是现在处理Home和End键时就有用了。如程式6-1所示的SYSENTS4就加上了这些变化。编译这个程式时还需要用到第四章的SYSMETS.H档案。

 程式6-1 SYSMETS4
SYSMETS4.C
/*----------------------------------------------------------------------
SYSMETS4.C -- System Metrics Display Program No. 4
(c) Charles Petzold, 1998
------------------------------------------------------------------------*/

#include <windows.h>
#include "sysmets.h"
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("SysMets4") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;

wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0