?? gfunction.c
字號:
#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", "unifont", "GB2312",
FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,
FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE, 20, 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 + -