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

📄 gfunction.c.bak

📁 基于minigui1.6.10的皮肤窗体应用开发框架
💻 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 + -