?? key.c
字號:
/*===========================================================================
FILE: key.c
===========================================================================*/
/*===============================================================================
INCLUDES AND VARIABLE DEFINITIONS
=============================================================================== */
#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions
#include "key.bid"
#include "AEEImage.h"
#ifndef Max
#define Max( x, y ) ( ((x) > (y)) ? (x) : (y) )
#endif
#ifndef Min
#define Min( x, y ) ( ((x) < (y)) ? (x) : (y) )
#endif
typedef struct _CKeyApp
{
AEEApplet a; // Mandatory first AEEApplet data member
int x;
int y;
int cxScreen;
int cyScreen;
}CKeyApp;
static boolean keymove_HandleEvent(AEEApplet * pi, AEEEvent eCode,
uint16 wParam, uint32 dwParam);
int AEEClsCreateInstance(AEECLSID ClsId,IShell * pIShell,IModule * po,void ** ppObj)
{
*ppObj = NULL;
if(ClsId == AEECLSID_KEY){
if(AEEApplet_New(sizeof(CKeyApp), ClsId, pIShell,po,(IApplet**)ppObj,
(AEEHANDLER)keymove_HandleEvent,NULL)
== TRUE)
{
// Add your code here .....
return (AEE_SUCCESS);
}
}
return (EFAILED);
}
static boolean keymove_HandleEvent(AEEApplet * pMe, AEEEvent eCode, uint16 wParam, uint32
dwParam)
{
CKeyApp *pApp = (CKeyApp *)pMe;
AEERect rc;
AEEDeviceInfo deviceInfo;
static IImage * image = NULL;
switch (eCode)
{
case EVT_APP_START:
ISHELL_GetDeviceInfo(pApp->a.m_pIShell, &deviceInfo);
pApp->x = (deviceInfo.cxScreen - 4)/2;
pApp->y = (deviceInfo.cyScreen - 4)/2;
pApp->cxScreen = deviceInfo.cxScreen;
pApp->cyScreen = deviceInfo.cyScreen;
SETAEERECT(&rc,0,0,200,200);
IDISPLAY_DrawRect(pApp->a.m_pIDisplay,&rc,0xffff0000,0x00ff0000,IDF_RECT_FILL);
image = ISHELL_LoadImage(pMe->m_pIShell,"bg16.bmp");
if (image)
{
IIMAGE_Draw(image,20,20);
IIMAGE_Release(image);
}
IDISPLAY_Update(pMe->m_pIDisplay);
return(TRUE);
case EVT_KEY_PRESS:
SETAEERECT(&rc,pApp->x,pApp->y,4,4);
IDISPLAY_DrawRect(pApp->a.m_pIDisplay,&rc,0xffffff00,0xffffff00,IDF_RECT_FILL);
switch(wParam)
{
case AVK_UP:
pApp->y -=4;
break;
case AVK_DOWN:
pApp->y +=4;
break;
case AVK_LEFT:
pApp->x -=4;
break;
case AVK_RIGHT:
pApp->x +=4;
break;
default:
return FALSE;
}
pApp->x = Max(0, Min(pApp->x, pApp->cxScreen - 4));
pApp->y = Max(0, Min(pApp->y, pApp->cyScreen - 4));
SETAEERECT(&rc,pApp->x,pApp->y,4,4);
IDISPLAY_DrawRect(pApp->a.m_pIDisplay,&rc,0xff000000,0x00bb0000,IDF_RECT_FILL);
IDISPLAY_Update (pApp->a.m_pIDisplay);
return TRUE;
case EVT_APP_STOP:
return TRUE;
default:
break;
}
return FALSE;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -