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

📄 uibmpw.c

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 C
字号:
/******************************************************************/
/*  Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File :  uibmpw.c
Desc :  静态图片类窗口

Author :  GUI Develop Group.lzj
Date :  2007-08-10
Notes :
$Log: uibmpw.c,v $
Revision 1.2  2008/06/19 04:43:20  Administrator
代码整理!

Revision 1.1.1.1  2008/05/07 04:15:08  Administrator
no message

Revision 1.1.1.1  2008/03/06 13:29:09  Lingzhaojun
no message

Revision 1.8  2007/11/08 03:28:59  Lingzhaojun
提交Toolbar

Revision 1.7  2007/11/07 13:22:22  Lingzhaojun
添加状态栏

Revision 1.6  2007/11/07 11:38:26  Lingzhaojun
提交状态栏

Revision 1.5  2007/10/15 02:58:09  Lingzhaojun
添加GUI控件注释

Revision 1.4  2007/10/09 03:21:28  Huangzufang
修改取消返回特效

Revision 1.3  2007/10/08 02:04:27  Lingzhaojun
GUI添加自动注释

*********************************************************************/


#include "uibmpw.h"



/*----------------------------------------------------------------------
Name  :  PictureboxSetPic
Desc  :  设图片窗口的图片
Params:  wParam为图片的资源ID,若图象存在于内存中,则lParam为内存图象地址
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxSetPic(WINDOW* win , WMPARAM wParam, WLPARAM lParam)

{

    W_PICTURE *WpicObj = (W_PICTURE*)win->Data;

    if (wParam)   //图片位于资源中
    {
        WpicObj->IconBmp.BmpID = wParam;
        WpicObj->PicInRam = 0;
    }
    if (lParam)   //图片位于内存中
    {
        WpicObj->pData = (UINT32*)lParam;
        WpicObj->PicInRam = 0xff;
    }
    WindowInvalidateWindow(win);

    return TRUE;
}


/*----------------------------------------------------------------------
Name  :  PictureboxSetTxt
Desc  :  设图片窗口的标题文本
Params:  wParam为文本资源ID
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxSetTxt(WINDOW* win , WMPARAM wParam, WLPARAM lParam)
{

    W_PICTURE *WpicObj = (W_PICTURE*)win->Data;

    WpicObj->TxtID = wParam;
    WindowInvalidateWindow(win);

    return TRUE;
}



/*----------------------------------------------------------------------
Name  :  PictureboxPaint
Desc  :  图片窗口画屏
Params:
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxPaint(WINDOW* win , WMPARAM wParam, WLPARAM lParam)
{

    W_PICTURE *WpicObj = (W_PICTURE*)win->Data;
    DispMode TranspLevel = WinGetTranStyle(win->style);
    if (!(WIN_NEEDPAIT(win)))
        return TRUE;

    if (WpicObj->PicInRam)   /*=0,图片在资源中,!=0在内存中*/
    {
        UHRECT rect;
        rect.x = 0;
        rect.y = 0;
        rect.w = win->w;
        rect.h = win->h;
        DrawPicInMemery(win->x, win->y, (LCD_RGBDATA*)WpicObj->pData, &rect, DSPM_Normal);

        TxtBox(win, WpicObj->TxtID, Font16X16, TopStyle);
    }
    else
    {
        //DrawPicture(WpicObj->IconBmp);
        DrawBmpIdEx(WpicObj->IconBmp.X, WpicObj->IconBmp.Y, WpicObj->IconBmp.BmpID, NULL, TranspLevel);
        TxtBox(win, WpicObj->TxtID, Font16X16, TopStyle);
    }

    WIN_CLEARPAIT(win);

    return TRUE;
}



/*----------------------------------------------------------------------
Name  :  PictureboxKey
Desc  :  图片窗按键处理
Params:  wParam高16位为按键状态,低16位为按键事件
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxKey(WINDOW* win , WMPARAM wParam, WLPARAM lParam)
{
    /* W_PICTURE  *WpicObj=(W_PICTURE *)win->Data;
     UINT16  keyPress = (UINT16)((wParam)>>16);
     UINT16  KEY_EV =(UINT16) (wParam);

     if( keyPress )
      return FALSE;


     switch(KEY_EV)
      {

     case EV_DOWN:
     case EV_RIGHT:
       ;

      }

     return WinSendCommand(win,KEY_EV);
    */
    return TRUE;
}



/*----------------------------------------------------------------------
Name  :  PictureboxTouch
Desc  :  图片窗触摸屏消息,对触摸屏的响应,直接发送给用户
Params:
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxTouch(WINDOW* win , WMPARAM wParam, WLPARAM lParam)
{

    W_PICTURE *WpicObj = (W_PICTURE*)win->Data;


    if (wParam != TM_STATE_DOWN)

        WinSendCommand(win, EV_TouchPress);   //向父窗口发送comman消息

    return TRUE;
}




/*----------------------------------------------------------------------
Name  :  PictureboxSetFocus
Desc  :  图片框得到焦点消息处理,目前没有这方面需求,为将来扩展保留接口
Params:
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxSetFocus(WINDOW* win , WMPARAM wParam, WLPARAM lParam)
{



    return TRUE;
}


/*----------------------------------------------------------------------
Name  :  PictureboxLostFocus
Desc  :  图片框失去焦点消息处理,目前没有这方面需求,为将来扩展保留接口
Params:
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxLostFocus(WINDOW* win , WMPARAM wParam, WLPARAM lParam)
{



    return TRUE;
}




/*----------------------------------------------------------------------
Name  :  PictureboxCreat
Desc  :  图片窗创建
Params:
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxCreat(WINDOW* win , WMPARAM wParam, WLPARAM lParam)
{
    W_PICTURE *WpicObj = NULL;

    WpicObj = MallocClass(W_PICTURE);

    if (WpicObj)
    {
        WpicObj->IconBmp.BmpID = win->BmpID; /*图片窗口背景图片*/
        WpicObj->IconBmp.X = win->x;
        WpicObj->IconBmp.Y = win->y;
        WpicObj->TxtID = win->CaptionID;  /*图片窗文字*/
        WpicObj->PicInRam = 0;    /*=0,图片在资源中,!=0在内存中*/
        win->Data = WpicObj;
    }
    //WindowInvalidateWindow(win);

    return TRUE;
}





/*----------------------------------------------------------------------
Name  :  PictureboxDestroy
Desc  :  图片窗销毁
Params:
Return:  处理结果
Author:  Lingzj
Date  :  070830
----------------------------------------------------------------------*/
UINT32 PictureboxDestroy(WINDOW* win , WMPARAM wParam, WLPARAM lParam)
{
    W_PICTURE *WpicObj = (W_PICTURE*)win->Data;

    FreeClass(WpicObj);

    //DspTskUpdateInit( DTSC_TRANSPS);      /* 返回去掉特效 modify by huangzf 071009*/

    return TRUE;
}




/*图片框基本消息描述表*/
BEGIN_CHILDMESSAGE_MAP(WinBmpProcMap , CW_TYPE_Bmp)
ON_MESSAGE(WM_PAINT ,   PictureboxPaint)
ON_MESSAGE(WM_DESTROY ,  PictureboxDestroy)
ON_MESSAGE(WM_CREATE,   PictureboxCreat)
ON_MESSAGE(WM_SetPic,  PictureboxSetPic)
ON_MESSAGE(WM_SetTxt,  PictureboxSetTxt)
ON_MESSAGE(WM_TOUCH ,  PictureboxTouch)
ON_MESSAGE(WM_SETFOCUS,  PictureboxSetFocus)
ON_MESSAGE(WM_KILLFOCUS, PictureboxLostFocus)
END_MESSAGE_MAP()







⌨️ 快捷键说明

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