// ------------------------------------------------------------------------
HWND init_toolbar_sys(HINSTANCE hinst, HWND hdlgP)
{
	int		idx = 0;

	// Create a toolbar
	gdmgr._htb_sys = CreateWindowEx(0, TOOLBARCLASSNAME, (LPSTR)NULL, 
		WS_CHILD | CCS_ADJUSTABLE | TBSTYLE_TOOLTIPS | TBSTYLE_FLAT | TBSTYLE_CHECK, 0, 0, 0, 0, hdlgP, 
		(HMENU)IDR_SYSMENU, gdmgr._hinst, NULL);

	// Send the TB_BUTTONSTRUCTSIZE message, which is required for backward compatibility
	ToolBar_ButtonStructSize(gdmgr._htb_sys, sizeof(TBBUTTON));

	ToolBar_SetButtonSize(gdmgr._htb_sys, 80, 80);

	gdmgr._tbBtns_sys[idx].iBitmap = MAKELONG(gdmgr._iico_title_sync, 0);
	// 为了工具提示作到简单,IDM_FILE_SAVE最好就是字串,它就是String Table中一个值
	gdmgr._tbBtns_sys[idx].idCommand = IDM_SYS_SYNC;	
	gdmgr._tbBtns_sys[idx].fsState = TBSTATE_ENABLED;
	gdmgr._tbBtns_sys[idx].fsStyle = TBSTYLE_BUTTON;
	gdmgr._tbBtns_sys[idx].dwData = 0L;
	gdmgr._tbBtns_sys[idx].iString = 0;

	idx ++;
	gdmgr._tbBtns_sys[idx].iBitmap = MAKELONG(gdmgr._iico_title_wgen, 0);
	gdmgr._tbBtns_sys[idx].idCommand = IDM_SYS_WGEN;
	gdmgr._tbBtns_sys[idx].fsState = TBSTATE_ENABLED;
	gdmgr._tbBtns_sys[idx].fsStyle = TBSTYLE_BUTTON;
	gdmgr._tbBtns_sys[idx].dwData = 0L;
	gdmgr._tbBtns_sys[idx].iString = 0;

	idx ++;
	gdmgr._tbBtns_sys[idx].iBitmap = MAKELONG(gdmgr._iico_title_xchg, 0);
	gdmgr._tbBtns_sys[idx].idCommand = IDM_SYS_CORE;
	gdmgr._tbBtns_sys[idx].fsState = TBSTATE_ENABLED;
	gdmgr._tbBtns_sys[idx].fsStyle = TBSTYLE_BUTTON;
	gdmgr._tbBtns_sys[idx].dwData = 0L;
	gdmgr._tbBtns_sys[idx].iString = 0;

	idx ++;
	gdmgr._tbBtns_sys[idx].iBitmap = MAKELONG(gdmgr._iico_title_play, 0);
	gdmgr._tbBtns_sys[idx].idCommand = IDM_SYS_PLAY;
	gdmgr._tbBtns_sys[idx].fsState = 0;
	gdmgr._tbBtns_sys[idx].fsStyle = TBSTYLE_BUTTON;
	gdmgr._tbBtns_sys[idx].dwData = 0L;
	gdmgr._tbBtns_sys[idx].iString = 0;

	idx ++;
	gdmgr._tbBtns_sys[idx].iBitmap = MAKELONG(gdmgr._iico_title_update, 0);
	gdmgr._tbBtns_sys[idx].idCommand = IDM_SYS_TBOX;
	gdmgr._tbBtns_sys[idx].fsState = TBSTATE_ENABLED;
	gdmgr._tbBtns_sys[idx].fsStyle = TBSTYLE_BUTTON;
	gdmgr._tbBtns_sys[idx].dwData = 0L;
	gdmgr._tbBtns_sys[idx].iString = 0;

	idx ++;
	gdmgr._tbBtns_sys[idx].iBitmap = MAKELONG(gdmgr._iico_title_about, 0);
	gdmgr._tbBtns_sys[idx].idCommand = IDM_SYS_BUILDER;
	gdmgr._tbBtns_sys[idx].fsState = TBSTATE_ENABLED;
	gdmgr._tbBtns_sys[idx].fsStyle = TBSTYLE_BUTTON;
	gdmgr._tbBtns_sys[idx].dwData = 0L;
	gdmgr._tbBtns_sys[idx].iString = 0;

	ToolBar_AddButtons(gdmgr._htb_sys, TB_BTNS_COUNT_SYS, &gdmgr._tbBtns_sys);

	ToolBar_AutoSize(gdmgr._htb_sys);
	
	ToolBar_SetExtendedStyle(gdmgr._htb_sys, TBSTYLE_EX_DRAWDDARROWS);
	
	ToolBar_SetImageList(gdmgr._htb_sys, gdmgr._himl_80x80, 0);
	ToolBar_SetDisabledImageList(gdmgr._htb_sys, gdmgr._himl_80x80_dis);
	
	ShowWindow(gdmgr._htb_sys, SW_SHOW);

	return gdmgr._htb_sys;
}
Exemple #2
0
void create_subcfg_toolbar(HWND hwndP)
{
	TBBUTTON		tbBtns[5];
	int				cxblank;
	RECT			rc;


	GetClientRect(hwndP, &rc);
	cxblank = (rc.right - rc.left) - 4 * 24 - 6;

	if (gdmgr._htb_subcfg) {
		DestroyWindow(gdmgr._htb_subcfg);
	}

	// Create a toolbar
	gdmgr._htb_subcfg = CreateWindowEx(0, TOOLBARCLASSNAME, (LPSTR)NULL, 
		WS_CHILD | CCS_ADJUSTABLE | TBSTYLE_TOOLTIPS | TBSTYLE_FLAT, 0, 0, 100, 0, hwndP, 
		(HMENU)IDR_WGENMENU, gdmgr._hinst, NULL);

	// Send the TB_BUTTONSTRUCTSIZE message, which is required for backward compatibility
	ToolBar_ButtonStructSize(gdmgr._htb_subcfg, sizeof(TBBUTTON));
	ToolBar_SetButtonSize(gdmgr._htb_subcfg, 30, 30);
	
	tbBtns[0].iBitmap = MAKELONG(gdmgr._iico_reset, 0);
	tbBtns[0].idCommand = IDM_RESET;	
	tbBtns[0].fsState = TBSTATE_ENABLED;
	tbBtns[0].fsStyle = BTNS_BUTTON;
	tbBtns[0].dwData = 0L;
	tbBtns[0].iString = -1;

	ToolBar_AddButtons(gdmgr._htb_subcfg, 1, &tbBtns);
	ToolBar_AutoSize(gdmgr._htb_subcfg);
	ToolBar_SetExtendedStyle(gdmgr._htb_subcfg, TBSTYLE_EX_DRAWDDARROWS);
	ToolBar_SetImageList(gdmgr._htb_subcfg, gdmgr._himl_24x24, 0);
	
	ShowWindow(gdmgr._htb_subcfg, SW_SHOW);

	SetParent(GetDlgItem(hwndP, IDOK), gdmgr._htb_subcfg);
	SetParent(GetDlgItem(hwndP, IDCANCEL), gdmgr._htb_subcfg);

	TOOLINFO	ti;
    RECT		rect;
	// CREATE A TOOLTIP WINDOW for OK
	if (gdmgr._tt_ok) {
		DestroyWindow(gdmgr._tt_ok);
	}
    gdmgr._tt_ok = CreateWindowEx(WS_EX_TOPMOST,
        TOOLTIPS_CLASS,
        NULL,
        WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,		
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        GetDlgItem(gdmgr._htb_subcfg, IDOK),
        NULL,
        gdmgr._hinst,
        NULL
        );
	// SetWindowPos(hwndTT, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
    // GET COORDINATES OF THE MAIN CLIENT AREA
    GetClientRect(GetDlgItem(gdmgr._htb_subcfg, IDOK), &rect);
    // INITIALIZE MEMBERS OF THE TOOLINFO STRUCTURE
    ti.cbSize = sizeof(TOOLINFO);
    ti.uFlags = TTF_SUBCLASS;
    ti.hwnd = GetDlgItem(gdmgr._htb_subcfg, IDOK);
    ti.hinst = gdmgr._hinst;
    ti.uId = 0;
    ti.lpszText = "Save and exit";
    // ToolTip control will cover the whole window
    ti.rect.left = rect.left;    
    ti.rect.top = rect.top;
    ti.rect.right = rect.right;
    ti.rect.bottom = rect.bottom;

    // SEND AN ADDTOOL MESSAGE TO THE TOOLTIP CONTROL WINDOW 
    SendMessage(gdmgr._tt_ok, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);

	// CREATE A TOOLTIP WINDOW for CANCEL
	if (gdmgr._tt_cancel) {
		DestroyWindow(gdmgr._tt_cancel);
	}
    gdmgr._tt_cancel = CreateWindowEx(WS_EX_TOPMOST,
        TOOLTIPS_CLASS,
        NULL,
        WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,		
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        GetDlgItem(gdmgr._htb_subcfg, IDCANCEL),
        NULL,
        gdmgr._hinst,
        NULL
        );
	// SetWindowPos(hwndTT, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
    // GET COORDINATES OF THE MAIN CLIENT AREA
    GetClientRect(GetDlgItem(gdmgr._htb_subcfg, IDCANCEL), &rect);
    // INITIALIZE MEMBERS OF THE TOOLINFO STRUCTURE
    ti.cbSize = sizeof(TOOLINFO);
    ti.uFlags = TTF_SUBCLASS;
    ti.hwnd = GetDlgItem(gdmgr._htb_subcfg, IDCANCEL);
    ti.hinst = gdmgr._hinst;
    ti.uId = 0;
    ti.lpszText = "Discard and exit";
    // ToolTip control will cover the whole window
    ti.rect.left = rect.left;    
    ti.rect.top = rect.top;
    ti.rect.right = rect.right;
    ti.rect.bottom = rect.bottom;

    // SEND AN ADDTOOL MESSAGE TO THE TOOLTIP CONTROL WINDOW 
    SendMessage(gdmgr._tt_cancel, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);

	return;
}