⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainproject1.c

📁 brew c代码实现图片翻转
💻 C
字号:
#include "mycommon.h"

int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
	*ppObj = NULL;

	if( ClsId == AEECLSID_MAINPROJECT1 )
	{		
		if( AEEApplet_New(sizeof(mainproject1),
                          ClsId,
                          pIShell,
                          po,
                          (IApplet**)ppObj,
                          (AEEHANDLER)mainproject1_HandleEvent,
                          (PFNFREEAPPDATA)mainproject1_FreeAppData) ) 
                          
		{            
			if(mainproject1_InitAppData((mainproject1*)*ppObj))
			{
				
				return(AEE_SUCCESS);
			}
			else
			{				
				IAPPLET_Release((IApplet*)*ppObj);
				return EFAILED;
			}

        } 
    }
	return(EFAILED);
}




static boolean mainproject1_HandleEvent(mainproject1* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{  
    switch (eCode) 
	{
        
        case EVT_APP_START:
			IMENUCTL_SetActive(pMe->menuCtl,TRUE);			
			pMe->myBitmap = loadBitmap(pMe,"chess.bmp");
			if(pMe->myBitmap)
			{
				pMe->comBitmap = pMe->myBitmap;
				showBitmap(pMe,pMe->myBitmap);
			}			
			IMENUCTL_Redraw(pMe->menuCtl);	
			IDISPLAY_Update(pMe->a.m_pIDisplay);
			return(TRUE);

		case EVT_KEY_PRESS:
			if(pMe->menuCtl)
				IMENUCTL_HandleEvent(pMe->menuCtl,EVT_KEY,wParam,0);
			return (TRUE);

		case EVT_COMMAND:
			switch(wParam)
			{				
			case ID_H_TENSION:				
				pMe->comBitmap = zoom(pMe,pMe->myBitmap,ZOOM_H,1);	
				break;
			case ID_V_TENSION:				
				pMe->comBitmap = zoom(pMe,pMe->myBitmap,ZOOM_V,1);	
				break;
			case ID_H_SHRINK:				
				pMe->comBitmap = zoom(pMe,pMe->myBitmap,ZOOM_H,-1);	
				break;
			case ID_V_SHRINK:
				pMe->comBitmap = zoom(pMe,pMe->myBitmap,ZOOM_V,-1);	
				break;
			case ID_H_CONVENT:
				if(SUCCESS == HConventPic(pMe,pMe->comBitmap))
					if(pMe->comBitmap == pMe->myBitmap)
						pMe->isHConvent = !pMe->isHConvent;
				break;
			case ID_V_CONVENT:
				if(SUCCESS == VConventPic(pMe,pMe->comBitmap))
					if(pMe->comBitmap == pMe->myBitmap)
						pMe->isVConvent = !pMe->isVConvent;
				break;
			case ID_CLOCK_TURN:
				pMe->comBitmap = clockTurn(pMe,pMe->comBitmap);
				break;
			case ID_REVERT:
				if(pMe->isHConvent)
					HConventPic(pMe,pMe->myBitmap);
				if(pMe->isVConvent)
					VConventPic(pMe,pMe->myBitmap);
				pMe->isHConvent = FALSE;
				pMe->isVConvent = FALSE;
				if(pMe->comBitmap != pMe->myBitmap)
					FREEMAP(pMe->comBitmap);
				pMe->comBitmap = pMe->myBitmap;
				break;
			default:
				break;
			}
			IDISPLAY_ClearScreen(pMe->a.m_pIDisplay);
			showBitmap(pMe,pMe->comBitmap);
			IMENUCTL_Redraw(pMe->menuCtl);
			IDISPLAY_Update(pMe->a.m_pIDisplay);

			return (TRUE);
        
        case EVT_APP_STOP:

      		return(TRUE);
        
        case EVT_APP_SUSPEND:	    

      		return(TRUE);
        
        case EVT_APP_RESUME:	    

      		return(TRUE);       
        
        case EVT_APP_MESSAGE:
      		return(TRUE);        
        case EVT_KEY:
			switch(wParam)
			{
			case AVK_2:
				pMe->start_y -= 5;
				pMe->off_y -= 5;
				break;
			case AVK_8:
				pMe->start_y += 5;
				pMe->off_y += 5;
				break;
			case AVK_4:
				pMe->start_x -=5;
				pMe->off_x -= 5;
				break;
			case AVK_6:
				pMe->start_x +=5;
				pMe->off_x += 5;
				break;
			case AVK_5:
				if(pMe->comBitmap != pMe->myBitmap)
					FREEMAP(pMe->comBitmap);
				pMe->comBitmap = zoom(pMe,pMe->myBitmap,ZOOM_HV,1);	
				break;
			case AVK_0:
				if(pMe->comBitmap != pMe->myBitmap)
					FREEMAP(pMe->comBitmap);
				pMe->comBitmap = zoom(pMe,pMe->myBitmap,ZOOM_HV,-1);	
				break;
			default:
				return (TRUE);
			}

			IDISPLAY_ClearScreen(pMe->a.m_pIDisplay);
			if(pMe->comBitmap)
				showBitmap(pMe,pMe->comBitmap);			
			IMENUCTL_Redraw(pMe->menuCtl);
			IDISPLAY_Update(pMe->a.m_pIDisplay);

			return (TRUE);			
        default:
            break;
   }
   return FALSE;
}



boolean mainproject1_InitAppData(mainproject1* pMe)
{ 
    pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
    ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo); 	

	pMe->myBitmap = NULL;
	pMe->comBitmap = NULL;
	pMe->zoomLRtimes = 0;
	pMe->zoomUDtimes = 0;
	pMe->isHConvent = FALSE;
	pMe->isVConvent = FALSE;

	ISHELL_CreateInstance(pMe->a.m_pIShell,AEECLSID_SOFTKEYCTL,&pMe->menuCtl);
	IMENUCTL_SetTitle(pMe->menuCtl,NULL,0,L"mytestmenu");
	/*/English
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_H_TENSION,L"Hor-Tension",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_V_TENSION,L"Ver-Tension",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_H_SHRINK,L"Hor-Shrink",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_V_SHRINK,L"Ver-Shrink",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_REVERT,L"Revert",0);
	IMENUCTL_SetFocus(pMe->menuCtl,ID_H_TENSION);
	/*/
	//简体中文
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_H_TENSION,L"水平拉伸",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_V_TENSION,L"垂直拉伸",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_H_SHRINK,L"水平压缩",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_V_SHRINK,L"垂直压缩",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_H_CONVENT,L"水平翻转",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_V_CONVENT,L"垂直翻转",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_CLOCK_TURN,L"顺时针旋转",0);
	IMENUCTL_AddItem(pMe->menuCtl,NULL,0,ID_REVERT,L"还原",0);
	IMENUCTL_SetFocus(pMe->menuCtl,ID_H_TENSION);
	//

	IMENUCTL_GetRect(pMe->menuCtl,&pMe->blankArea);

	pMe->off_x = 0;
	pMe->off_y = 0;
	pMe->start_x = 0;
	pMe->start_y = 0;
	pMe->blankArea.x = 0;
	pMe->blankArea.y = 0;
	pMe->blankArea.dy = pMe->DeviceInfo.cyScreen - pMe->blankArea.dy;

    return TRUE;
}


void mainproject1_FreeAppData(mainproject1* pMe)
{
	FREEMAP(pMe->myBitmap);
	FREEMAP(pMe->comBitmap);
	if(pMe->menuCtl != NULL)
	{
		IMENUCTL_Release(pMe->menuCtl);
		pMe->menuCtl = NULL;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -