📄 uibmpw.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 + -