📄 virdisplay.c
字号:
// Copyright (C) SEIKO EPSON CORP. 2004
//
// GROUP : SEE LSI
// FILE : virdisplay.c
// MODULE : virtual display
// Function description : application
// Revision history :
// Date userName Description
// 2004/06/22 David.Ji start
//
// Notes :
//
//---------------------------------------------------------------------------------
//---------------------------------------------------------------------------------
// Include files (#include)
//---------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "ros33.h"
#include "sysGUI.h"
#include "appres.h"
#define IDC_CTRL1 100
#define IDC_CTRL2 110
#define IDC_CTRL3 120
#define IDC_CTRL4 130
#define IDC_CTRL5 140
#define IDC_CTRL6 150
#define IDC_CTRL7 170
#define IDC_CTRL8 180
#define IDC_CTRL9 190
T_MODULE T_WORD VirDsp_InitRes();
T_MODULE T_WORD VirDsp_FreeRes();
/******************************************************************
* FUNCTION: VirWinProc(
*
* PURPOSE:
* dict win proc
*
* PARAMETERS
* Input:
* Output:
* InOut:
*
* Return value:
*
* Reentrant : No
*****************************************************************/
T_BYTE *pButtonVirBuf[7];
T_WORD VirWinProc(T_GUI_HWND hWnd, T_WORD message, T_GUI_WPARAM wParam, T_GUI_LPARAM lParam)
{
T_MODULE T_GUI_HWND hChildWnd1, hChildWnd2, hChildWnd3, hChildWnd4, hChildWnd5,
hChildWnd6, hChildWnd7, hChildWnd8, hChildWnd9;
T_GUI_HDC hdcsrc, hdcdes, hMemdc;
T_MODULE T_WORD iMoveStepX, iMoveStepY, iStretchLevel;
T_MODULE T_GUI_Rect rc;
T_MODULE T_GUI_Bitmap* pButtonBmp[7];
T_BYTE temp[8];
switch (message)
{
case MSG_CREATE:
{
T_GUI_HDC hdc;
T_WORD i;
hdc = fnGUI_BeginPaint(hWnd);
if(VirDsp_InitRes() != 1)
{
for(i =0; i<7; i++)
pButtonVirBuf[i]=(T_BYTE*)pSysButton;
}
for(i=0; i<7; i++)
{
pButtonBmp[i] = (T_GUI_Bitmap *) calloc(1,sizeof(T_GUI_Bitmap));
fnGUI_LoadBitmapFromBmpMemory(hdc,pButtonBmp[i],pButtonVirBuf[i]);
}
hChildWnd1 = fnGUI_CreateWindow (CTRL_BUTTON,//up
"",
WS_CHILD| WS_VISIBLE
|STY_BTN_BITMAP,
IDC_CTRL1,
145, 32, 20, 20, hWnd,
(T_UWORD)pButtonBmp[0] );
hChildWnd2 = fnGUI_CreateWindow (CTRL_BUTTON,//down
"",
WS_CHILD| WS_VISIBLE
|STY_BTN_BITMAP,
IDC_CTRL2,
145, 82, 20, 20, hWnd,
(T_UWORD)pButtonBmp[1]);
hChildWnd3 = fnGUI_CreateWindow (CTRL_BUTTON,//left
"",
WS_CHILD| WS_VISIBLE
|STY_BTN_BITMAP,
IDC_CTRL3,
120, 57, 20, 20, hWnd,
(T_UWORD)pButtonBmp[2]);
hChildWnd4 = fnGUI_CreateWindow (CTRL_BUTTON,//right
"",
WS_CHILD| WS_VISIBLE
|STY_BTN_BITMAP,
IDC_CTRL4,
170, 57, 20, 20, hWnd,
(T_UWORD)pButtonBmp[3]);
hChildWnd5 = fnGUI_CreateWindow (CTRL_BUTTON,// zoom out
"",
WS_CHILD| WS_VISIBLE
|STY_BTN_BITMAP,
IDC_CTRL5,
120, 5, 18, 18, hWnd,
(T_UWORD)pButtonBmp[5]);
hChildWnd6 = fnGUI_CreateWindow (CTRL_BUTTON,//zoom in
"",
WS_CHILD| WS_VISIBLE
|STY_BTN_BITMAP,
IDC_CTRL6,
140, 5, 18, 18, hWnd,
(T_UWORD)pButtonBmp[6]);
hChildWnd7 = fnGUI_CreateWindow (CTRL_STATIC,
"",
WS_CHILD | WS_VISIBLE | WS_BORDER,
IDC_CTRL7,
8, 8, 102, 102, hWnd, 0);
hChildWnd8 = fnGUI_CreateWindow (CTRL_BUTTON,//exit
"",
WS_CHILD| WS_VISIBLE
|STY_BTN_BITMAP,
IDC_CTRL8,
145, 57, 20, 20, hWnd,
(T_UWORD)pButtonBmp[4]);
hChildWnd9 = fnGUI_CreateWindow (CTRL_EDIT,
"Lev4",
WS_CHILD | WS_VISIBLE | WS_BORDER,
IDC_CTRL9,
160, 5, 35, 18, hWnd, 0);
rc.left = 10;
rc.top = 10;
rc.right = 110;
rc.bottom = 110;
iMoveStepX = iMoveStepY = 0;
iStretchLevel = 4;
fnGUI_EndPaint(hWnd,hdc);
fnGUI_MoveWindow(hWnd, 60,40,205,145, 1);
fnGUI_InvalidateRect(hWnd, &rc, 0);
}
break;
case MSG_PAINT:
{
fnGUI_GetDesktopRect(&rc.left, &rc.top, &rc.right, &rc.bottom);
hdcsrc = fnGUI_GetDC(HWND_DESKTOP);
hdcdes = fnGUI_GetClientDC(hWnd);
hMemdc = fnGUI_CreateCompatibleDC(hdcsrc);
fnGUI_BitBlt (hdcsrc, 0, 0, 320, 240, hMemdc, 0, 0, 0);
fnGUI_StretchBlt(hMemdc, iMoveStepX*32, iMoveStepY*24, 32*iStretchLevel, 24*iStretchLevel, hdcdes, 10, 10, 100, 100, 0);
fnGUI_DeleteCompatibleDC(hMemdc);
fnGUI_ReleaseDC(hdcdes);
fnGUI_ReleaseDC(hdcsrc);
}
break;
case MSG_COMMAND:
{
T_WORD id = LOUHWORD(wParam);
T_WORD code = HIUHWORD(wParam);
switch (id)
{
case IDC_CTRL1://up
{
iMoveStepY --;
if(iMoveStepY == -1)
iMoveStepY = 0;
}
fnGUI_InvalidateRect(hWnd, &rc, 0);
break;
case IDC_CTRL2://down
{
iMoveStepY ++;
if(iMoveStepY+iStretchLevel > 10)
iMoveStepY --;
}
fnGUI_InvalidateRect(hWnd, &rc, 0);
break;
case IDC_CTRL3://left
{
iMoveStepX --;
if(iMoveStepX == -1)
iMoveStepX = 0;
}
fnGUI_InvalidateRect(hWnd, &rc, 0);
break;
case IDC_CTRL4://right
{
iMoveStepX ++;
if((iMoveStepX+iStretchLevel)> 10)
iMoveStepX --;
}
fnGUI_InvalidateRect(hWnd, &rc, 0);
break;
case IDC_CTRL5://Zoom in
{
iStretchLevel --;
if(iStretchLevel == 0)
iStretchLevel = 1;
}
sprintf(temp,"Lev%d",iStretchLevel);
fnGUI_SendMessage ( hChildWnd9, MSG_SETTEXT, 0, (T_GUI_LPARAM)temp);
fnGUI_InvalidateRect(hWnd, &rc, 0);
break;
case IDC_CTRL6://Zoom out
{
iStretchLevel ++;
if(iStretchLevel > 10)
iStretchLevel = 10;
if((iMoveStepX+iStretchLevel)> 10)
iMoveStepX--;
if((iMoveStepY+iStretchLevel)> 10)
iMoveStepY--;
}
sprintf(temp,"Lev%d",iStretchLevel);
fnGUI_SendMessage ( hChildWnd9, MSG_SETTEXT, 0, (T_GUI_LPARAM)temp);
fnGUI_InvalidateRect(hWnd, &rc, 0);
break;
case IDC_CTRL8://exit
fnGUI_PostMessage (hWnd, MSG_CLOSE, 0, 0);
break;
default:
break;
}
}
break;
case MSG_TIMER:
break;
case MSG_CHAR:
break;
case MSG_CLOSE:
{
T_WORD i;
for(i =0; i<7; i++)
{
fnGUI_UnLoadBitmap(pButtonBmp[i]);
}
VirDsp_FreeRes();
fnGUI_DestroyMainWindow (hChildWnd1 );
fnGUI_DestroyMainWindow (hChildWnd2 );
fnGUI_DestroyMainWindow (hChildWnd3 );
fnGUI_DestroyMainWindow (hChildWnd4 );
fnGUI_DestroyMainWindow (hChildWnd5 );
fnGUI_DestroyMainWindow (hChildWnd6 );
fnGUI_DestroyMainWindow (hChildWnd7 );
fnGUI_DestroyMainWindow (hChildWnd8 );
fnGUI_DestroyMainWindow (hChildWnd9 );
fnGUI_DestroyMainWindow (hWnd);
}
break;
}
return fnGUI_DefaultMainWinProc(hWnd, message, wParam, lParam);
}
/******************************************************************
* FUNCTION: Dict_InitRes()
*
* PURPOSE:
*
* PARAMETERS
* Return value:
*****************************************************************/
T_MODULE T_WORD VirDsp_InitRes()
{
T_BYTE *pBmpBuf;
pBmpBuf = (char *)ComFS_Loadfile("system\\vup.bmp");
if(pBmpBuf == 0)
return -1;
pButtonVirBuf[0] = pBmpBuf;
pBmpBuf = (char *)ComFS_Loadfile("system\\vdown.bmp");
if(pBmpBuf == 0)
return -1;
pButtonVirBuf[1] = pBmpBuf;
pBmpBuf = (char *)ComFS_Loadfile("system\\vleft.bmp");
if(pBmpBuf == 0)
return -1;
pButtonVirBuf[2] = pBmpBuf;
pBmpBuf = (char *)ComFS_Loadfile("system\\vright.bmp");
if(pBmpBuf == 0)
return -1;
pButtonVirBuf[3] = pBmpBuf;
pBmpBuf = (char *)ComFS_Loadfile("system\\vexit.bmp");
if(pBmpBuf == 0)
return -1;
pButtonVirBuf[4] = pBmpBuf;
pBmpBuf = (char *)ComFS_Loadfile("system\\vin.bmp");
if(pBmpBuf == 0)
return -1;
pButtonVirBuf[5] = pBmpBuf;
pBmpBuf = (char *)ComFS_Loadfile("system\\vout.bmp");
if(pBmpBuf == 0)
return -1;
pButtonVirBuf[6] = pBmpBuf;
return 1;
}
/******************************************************************
* FUNCTION: Dict_FreeRes()
*
* PURPOSE:
*
* PARAMETERS
* Return value:
*****************************************************************/
T_MODULE T_WORD VirDsp_FreeRes()
{
T_BYTE i;
for(i=0; i<7; i++)
free(pButtonVirBuf[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -