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

📄 calling_dialog.c

📁 基于minigui的智能手机pda源码
💻 C
字号:
#include "../sys_headfile.h"
#include <minigui/skin.h>
#include "calling_dialog.h"
#include "call_dialog.h"
#ifdef _EXT_SKIN
static si_bmplabel_t called_number         = { "", "0123456789*#" };
static si_bmplabel_t timer         = { "00:00", "0123456789:" };
/* 定义皮肤元素数组 */
static skin_item_t skin_main_items [] =
{
{SIID_HOLD, SI_TYPE_CMDBUTTON       | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    181, 83, {}, 1, "挂断"},
{SIID_TIMER,   SI_TYPE_BMPLABEL  | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    110, 64, {}, 2, "", 0, &timer},
{SIID_CALLED_NUM,   SI_TYPE_BMPLABEL  | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
    61, 12, {}, 3, "", 0, &called_number}
};

/* 定义皮肤 */
skin_head_t calling_main_skin =
{
    "通话中",
    SKIN_STYLE_TOOLTIP, NULL, NULL, 
    0, 3, skin_main_items, FALSE
};

/* 位图数组 */
const char *calling_bmp_name[] = {
"images/callbuttons/calling_bg.jpg","images/callbuttons/close.jpg","images/callbuttons/timer.jpg","images/callbuttons/number.jpg"
};

static int cur_pos = 0;

/* 位图资源装/卸载函数 */
void calling_load_skin_bmps ( skin_head_t *skin, BOOL load )
{
    int i, bmp_num = sizeof(calling_bmp_name)/sizeof(char *);
    
    /* 如果load为真,则将位图装载到skin的bmps数组,否则卸载bmps数组中的位图 */
    if ( load )
        skin->bmps = (BITMAP* )calloc ( bmp_num, sizeof(BITMAP) );
    
    for ( i = 0 ; i < bmp_num ; i++ ){
        if ( load )
            LoadBitmapFromFile ( HDC_SCREEN, (PBITMAP)&(skin->bmps[i]),calling_bmp_name[i] );
        else
            UnloadBitmap ((PBITMAP)&(skin->bmps[i]));
    }

    if ( !load )
        free ( (void*)skin->bmps);
}

/* 皮肤事件回调函数 */
static int calling_main_event_cb (HWND hwnd, skin_item_t* item, int event, void* data)
{
    if (event == SIE_BUTTON_CLICKED) {
        switch (item->id) {
        case SIID_HOLD:
	     gprs_hold();
            KillTimer (hwnd, ID_TIME);
            SendMessage (hwnd, MSG_CLOSE, 0, 0);
            break;
        }
		
    }


    return 1;
}

/* 皮肤窗口消息回调函数 */
static int calling_msg_event_cb (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result)
{
    int minute = 0;
    int second = 0;
    char buf[8];
    skin_head_t *hostskin = NULL;

    switch (message) {
       case MSG_CREATE:
	   	SetTimer (hwnd, ID_TIME, 100);
		break;
	case MSG_TIMER:

						if (cur_pos++ > 1800) 
                                               cur_pos = 0;
                                          minute = cur_pos / 60;
                                          second = cur_pos % 60;
                                          if (second > 9)
                                          sprintf (buf, "0%d:%d", minute, second); 
                                          else 
                                          sprintf (buf, "0%d:0%d", minute,second);
            
                                          hostskin = get_window_skin (hwnd);
                                          skin_set_item_label (hostskin, SIID_TIMER, buf);
						break;
				              
	 /*case MSG_CLOSE:
           
                       DestroyMainWindow(hwnd);
                       PostQuitMessage(hwnd);
                       return 0;
            */
   
			
    }
    return 1;
}

void callingMainWinCreat(HWND hWnd,char* buf)
{
    MSG msg;
    HWND hWndMain;
	calling_load_skin_bmps (&calling_main_skin, TRUE);    /* 装载位图资源 */

	gprs_init();
	gprs_call(buf,sizeof(buf));
    if ( !skin_init (&calling_main_skin, calling_main_event_cb, calling_msg_event_cb) ){    /* 初始化皮肤 */
        printf ("skin init fail !\n");
    }
    else{
        hWndMain = create_skin_main_window (&calling_main_skin,
                        hWnd, 0, 0, 200, 100,
                        FALSE);

        while (GetMessage (&msg, hWndMain)) {
            TranslateMessage (&msg);
            DispatchMessage (&msg);
        }
		

        MainWindowCleanup (hWndMain);
        skin_deinit (&calling_main_skin);        /* 撤销皮肤 */
    }

    calling_load_skin_bmps (&calling_main_skin, FALSE);    /* 卸载位图资源 */
    MiniGUIExtCleanUp ();


}

#endif

⌨️ 快捷键说明

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