📄 gfunction.c.bak
字号:
/*
*********************西安驰睿软件技术有限公司***********************
** 文件: gFunction.c
** 项目:DVRGUI工程全局头文件
** 版本:1.0.0
** 模块:全局通用函数定义
** 功能:定义全局通用函数
** 编写人员:黄健
** 建立日期:2009-4-1
** 修改记录:
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <minigui/mgext.h>
#include <minigui/skin.h>
#include "DVRCommon.h"
#include "gFunction.h"
/*****************************************************************
** 函数名:g_Load_Skin_Bmps
** 输 入:1) skin_head_t *skin //窗体皮肤结构体变量
struct skin_head_s
{
char* name; //皮肤的名称
DWORD style; //皮肤的风格
const BITMAP* bmps; //皮肤及皮肤元素所使用的位图对象数组
const LOGFONT* fonts; //皮肤所使用的逻辑字体数组
int bk_bmp_index; //皮肤背景位图对象在位图数组中的索引
int nr_items; // 皮肤中皮肤元素的个数
skin_item_t* items; //皮肤元素数组
DWORD attached; // 应用程序附加数据
skin_event_cb_t event_cb; //皮肤窗口的回调函数,不是消息回调
skin_msg_cb_t msg_cb; //皮肤窗口的消息回调
BLOCKHEAP rc_heap; //当皮肤初始化的时候会调用,热点测试区域
HWND hwnd; //窗口句柄
HWND tool_tip; //窗口提示
int oldx, oldy; //窗口的之前的坐标
skin_item_t* hilighted; //窗口当前高亮对象
int cached_id; //缓冲标识
skin_item_t* cached_item; //缓冲对象,它的表示就是cached_id
};
2) BOOL bload //bload = true //表示加载, bLoad
3) const char *pBmpNameList[] //图像名称列表
4) int iBmp_num 图标个数
** 输 出: void
** 功能描述:实现minigui皮肤界面的图片加载和卸载
** 全局变量:
** 调用模块:
** 作 者: 黄健
** 日 期: 2009-4-1
** 版 本:1.0.0
** 修 改:
****************************************************************/
void g_Load_Skin_Bmps(skin_head_t *skin, BOOL bLoad,const char *pBmpNameList[],int iBmp_num)
{
int i; // bmp_num = sizeof(bmpNameList) / sizeof(char *);
/* 如果bLoad为真,则将位图装载到skin的bmps数组,否则卸载bmps数组中的位图 */
if (bLoad)
skin->bmps = (BITMAP* ) calloc (iBmp_num, sizeof(BITMAP));
for (i = 0 ; i < iBmp_num ; i++ ) {
if (bLoad) {
if (LoadBitmapFromFile (HDC_SCREEN, (PBITMAP)&(skin->bmps[i]), pBmpNameList[i])) {
free ((void*)skin->bmps);
skin->bmps = NULL;
}
}
else
UnloadBitmap ((PBITMAP)&(skin->bmps[i]));
}
if (!bLoad)
free ((void*)skin->bmps);
}
/* 字节资源装/卸载函数 */
void g_load_skin_fonts(skin_head_t* skin, BOOL bLoad)
{
int font_num = 2;
LOGFONT *my_logfont;
if (bLoad)
{
skin->fonts = (LOGFONT* ) calloc (font_num, sizeof(LOGFONT));
my_logfont = CreateLogFont ("qpf", "fzstk", "GB2312",
FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,
FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE, 24, 0);
memcpy((void *)&skin->fonts[0], (void *)my_logfont, sizeof(LOGFONT));
DestroyLogFont(my_logfont);
/* 释放字体 */
my_logfont = CreateLogFont (NULL, "SansSerif", "ISO8859-1",
FONT_WEIGHT_REGULAR, FONT_SLANT_ITALIC, FONT_SETWIDTH_NORMAL,
FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_LINE,
60, 0);
memcpy((void *)&skin->fonts[1], (void *)my_logfont, sizeof(LOGFONT));
DestroyLogFont(my_logfont);/* 释放字体 */
}
else
{
free ((void *)skin->fonts);
skin->fonts = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -