void SetLayeredTaskbar(HWND hwndClock) { LONG exstyle; HWND hwnd; int alpha; alpha = GetMyRegLongEx("Taskbar", "AlphaTaskbar", 0); bClearTaskbar = GetMyRegLongEx("Taskbar", "ClearTaskbar", FALSE); alpha = 255 - (alpha * 255 / 100); if(alpha < 8) alpha = 8; else if(alpha > 255) alpha = 255; if(!pSetLayeredWindowAttributes && (alpha < 255 || bClearTaskbar)) InitLayeredWindow(); if(!pSetLayeredWindowAttributes) return; hwnd = GetParent(GetParent(hwndClock)); exstyle = GetWindowLong(hwnd, GWL_EXSTYLE); if(alpha < 255 || bClearTaskbar) exstyle |= WS_EX_LAYERED; else exstyle &= ~WS_EX_LAYERED; SetWindowLong(hwnd, GWL_EXSTYLE, exstyle); if(bRefreshClearTaskbar) { bRefreshClearTaskbar = FALSE; RefreshUs(); } RefreshRebar(hwnd); if(alpha < 255 && !bClearTaskbar) pSetLayeredWindowAttributes(hwnd, 0, (BYTE)alpha, LWA_ALPHA); else if(bClearTaskbar) pSetLayeredWindowAttributes(hwnd, GetSysColor(COLOR_3DFACE), (BYTE)alpha, LWA_COLORKEY|LWA_ALPHA); }
//================================================================================================ //----------------------------------+++--> Retrieve HotKey Configuration Information From Registry: void GetHotKeyInfo(HWND hWnd) { char subkey[TNY_BUFF] = {0}; TCHOTKEY *hk = NULL; int i; hk = malloc(sizeof(TCHOTKEY) * 6); for(i = 0; i <= 5; i++) { wsprintf(subkey, "%s\\HK%d", szHotKeySubKey, i); hk[i].bValid = GetMyRegLongEx(subkey, "bValid", 0); hk[i].fsMod = GetMyRegLongEx(subkey, "fsMod", 0); hk[i].vk = GetMyRegLongEx(subkey, "vk", 0); } if(hk[0].bValid) RegisterHotKey(hWnd, HOT_TIMER, hk[0].fsMod, hk[0].vk); // Add/Edit Timer if(hk[1].bValid) RegisterHotKey(hWnd, HOT_STOPW, hk[1].fsMod, hk[1].vk); // StopWatch Dialog if(hk[2].bValid) RegisterHotKey(hWnd, HOT_WATCH, hk[2].fsMod, hk[2].vk); // Timer Watch List if(hk[3].bValid) RegisterHotKey(hWnd, HOT_PROPR, hk[3].fsMod, hk[3].vk); // T-Clock Properties if(hk[4].bValid) RegisterHotKey(hWnd, HOT_CALEN, hk[4].fsMod, hk[4].vk); // T-Clock Calendar if(hk[5].bValid) RegisterHotKey(hWnd, HOT_TSYNC, hk[5].fsMod, hk[5].vk); // Synchronize Time if(hk) { free(hk); // Free, and...? (Crash Unless You Include the Next Line) hk = NULL; //<--+++--> Thank You Don Beusee for reminding me to do this. } }
void TooltipReadData(void) { char fontname[80]; int fontsize; LONG weight, italic; GetMyRegStrEx(NULL, "TipFont", fontname, 80, "", gConfigNo); if (fontname[0] == 0) { HFONT hfont; hfont = (HFONT)GetStockObject(DEFAULT_GUI_FONT); if(hfont) { LOGFONT lf; GetObject(hfont, sizeof(lf),(LPVOID)&lf); strcpy(fontname, lf.lfFaceName); } } fontsize = GetMyRegLongEx(NULL, "TipFontSize", 9, gConfigNo); weight = GetMyRegLongEx(NULL, "TipBold", 0, gConfigNo); if(weight) weight = FW_BOLD; else weight = 0; italic = GetMyRegLongEx(NULL, "TipItalic", 0, gConfigNo); if(hFonTooltip) DeleteObject(hFonTooltip); hFonTooltip = CreateMyFont(fontname, fontsize, weight, italic); dwTooltipType = GetMyRegLong(NULL, "BalloonFlg", 0); alphaTooltip = (int)(short)GetMyRegLongEx(NULL, "AlphaTip", 0, gConfigNo); iTooltipDispTime = (int)(short)GetMyRegLong(NULL, "TipDispTime", 5); bTooltipCustomDrawDisable = GetMyRegLong("Tooltip", "TipDisableCustomDraw", TRUE); bTooltipUpdateEnable[0] = GetMyRegLong("Tooltip", "Tip1Update", 0); bTooltipUpdateEnable[1] = GetMyRegLong("Tooltip", "Tip2Update", 0); bTooltipUpdateEnable[2] = GetMyRegLong("Tooltip", "Tip3Update", 0); dwTooltipFonCol = GetMyRegLongEx(NULL, "TipFonColor", 0x80000000 | COLOR_INFOTEXT, gConfigNo); dwTooltipBakCol = GetMyRegLongEx(NULL, "TipBakColor", 0x80000000 | COLOR_INFOBK, gConfigNo); bTooltipEnableDoubleBuffering = GetMyRegLong("Tooltip", "TipEnableDoubleBuffering", FALSE); nTooltipIcon = GetMyRegLongEx("", "TipIcon", 0, gConfigNo); iTooltipDispInterval = (int)(short)GetMyRegLong("Tooltip", "TipDispInterval", 1); if (iTooltipDispInterval > 30) iTooltipDispInterval = 30; if (iTooltipDispInterval < 1) iTooltipDispInterval = 1; iTooltipSizeX = GetMyRegLong("Tooltip", "HTMLTipDispSizeX", 200); iTooltipSizeY = GetMyRegLong("Tooltip", "HTMLTipDispSizeY", 200); }
/*------------------------------------------------ ツールチップの表示内容取得 --------------------------------------------------*/ static void TooltipUpdateText(void) { const static char * const aszRegEntry[3] = { "Tooltip", "Tooltip2", "Tooltip3", }; SYSTEMTIME t; int beat100; char fmt[LEN_TOOLTIP], s[LEN_TOOLTIP], tiptitle[300], tipt[300], ini_key[10]; DWORD dw; RECT rcClock; int clLen, mPos; BOOL bTooltip2, bTooltip3, bTooltipTate; bTooltipUpdated = TRUE; bTooltip2 = GetMyRegLongEx("Tooltip", "Tip2Use", FALSE, gConfigNo); if (bTooltip2) { bTooltip3 = GetMyRegLongEx("Tooltip", "Tip3Use", FALSE, gConfigNo); bTooltipTate = GetMyRegLongEx("Tooltip", "TipTateFlg", FALSE, gConfigNo); GetWindowRect(hwndClock, &rcClock); dw = GetMessagePos(); if (bTooltipTate) { clLen = rcClock.bottom - rcClock.top; mPos = GET_Y_LPARAM(dw) - rcClock.top; } else { clLen = rcClock.right - rcClock.left; mPos = GET_X_LPARAM(dw) - rcClock.left; } if (bTooltip3) { if ( mPos > (2*clLen/3) ) iTooltipSelected = 2; if ( mPos <= (2*clLen/3) && mPos >= (clLen/3) ) iTooltipSelected = 1; if ( mPos < (clLen/3) ) iTooltipSelected = 0; } else { if ( mPos > (clLen/2) ) iTooltipSelected = 1; if ( mPos <= (clLen/2) ) iTooltipSelected = 0; } } else { iTooltipSelected = 0; } strcpy(ini_key, aszRegEntry[iTooltipSelected]); GetMyRegStrEx("Tooltip", ini_key, fmt, sizeof(fmt), "", gConfigNo); if(fmt[0] == 'f' && fmt[1] == 'i' && fmt[2] == 'l' && fmt[3] == 'e' && fmt[4] == ':') { memmove( fmt, fmt + 5, (size_t)((strchr(fmt,'\0')-1)-fmt)); if(!GetTooltipText(fmt)){ strcpy(fmt, "ファイル取得失敗"); } } if(fmt[0] == 0) { strcpy(fmt, "TClock <%LDATE%>"); } GetDisplayTime(&t, &beat100); MakeFormat(s, &t, beat100, fmt); strcpy(formatTooltip, s); //635@p5 GetMyRegStrEx("", "TipTitle", tiptitle, 300, "", gConfigNo); if(tiptitle[0] != 0) { MakeFormat(tipt, &t, beat100, tiptitle); strcpy(titleTooltip, tipt); } else { titleTooltip[0] = 0; } }