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

📄 splash.c

📁 有关zip的一个开发实例。主要包括图片和程序源代码。
💻 C
字号:
#include <windows.h>#include "wiz.h"#ifdef WIN32HWND hSplashScreen;HBITMAP LoadResourceBitmap(HINSTANCE hInstance, LPSTR lpString,                           HPALETTE FAR* lphPalette);HPALETTE CreateDIBPalette (LPBITMAPINFO lpbmi, LPINT lpiNumColors);HPALETTE CreateDIBPalette (LPBITMAPINFO lpbmi, LPINT lpiNumColors){   LPBITMAPINFOHEADER  lpbi;   LPLOGPALETTE     lpPal;   HANDLE           hLogPal;   HPALETTE         hPal = NULL;   int              i;   lpbi = (LPBITMAPINFOHEADER)lpbmi;   if (lpbi->biBitCount <= 8)       *lpiNumColors = (1 << lpbi->biBitCount);   else       *lpiNumColors = 0;  // No palette needed for 24 BPP DIB   if (*lpiNumColors)      {      hLogPal = GlobalAlloc (GHND, sizeof (LOGPALETTE) +                             sizeof (PALETTEENTRY) * (*lpiNumColors));      lpPal = (LPLOGPALETTE) GlobalLock (hLogPal);      lpPal->palVersion    = 0x300;      lpPal->palNumEntries = (WORD)*lpiNumColors;      for (i = 0;  i < *lpiNumColors;  i++)         {         lpPal->palPalEntry[i].peRed   = lpbmi->bmiColors[i].rgbRed;         lpPal->palPalEntry[i].peGreen = lpbmi->bmiColors[i].rgbGreen;         lpPal->palPalEntry[i].peBlue  = lpbmi->bmiColors[i].rgbBlue;         lpPal->palPalEntry[i].peFlags = 0;         }      hPal = CreatePalette (lpPal);      GlobalUnlock (hLogPal);      GlobalFree   (hLogPal);   }   return hPal;}HBITMAP LoadResourceBitmap(HINSTANCE hInstance, LPSTR lpString,                           HPALETTE FAR* lphPalette){    HRSRC  hRsrc;    HGLOBAL hGlobal, hTemp;    DWORD dwSize;    HBITMAP hBitmapFinal = NULL;    LPBITMAPINFOHEADER  lpbi;    LPSTR lpRes, lpNew;    HDC hdc;    int iNumColors;    if ((hRsrc = FindResource(hInstance, lpString, RT_BITMAP)) != NULL)    {       hTemp = LoadResource(hInstance, hRsrc);       dwSize = SizeofResource(hInstance, hRsrc);       lpRes = LockResource(hTemp);       hGlobal = GlobalAlloc(GHND, dwSize);       lpNew = GlobalLock(hGlobal);       memcpy(lpNew, lpRes, dwSize);       FreeResource(hTemp);       lpbi = (LPBITMAPINFOHEADER)lpNew;       hdc = GetDC(NULL);       *lphPalette =  CreateDIBPalette ((LPBITMAPINFO)lpbi, &iNumColors);       if (*lphPalette)       {          SelectPalette(hdc,*lphPalette,FALSE);          RealizePalette(hdc);       }       hBitmapFinal = CreateDIBitmap(hdc,                 (LPBITMAPINFOHEADER)lpbi,                 (LONG)CBM_INIT,                 (LPSTR)lpbi + lpbi->biSize + iNumColors * sizeof(RGBQUAD),                 (LPBITMAPINFO)lpbi,                 DIB_RGB_COLORS );       ReleaseDC(NULL,hdc);       GlobalUnlock(hGlobal);       GlobalFree(hGlobal);    }    return (hBitmapFinal);}void ShowSplashScreen(void){HWND hWndDesktop;RECT rc;HBITMAP hBitmap,hOldBitmap;HPALETTE hPalette;HDC hMemDC, hdc;BITMAP bm;hBitmap = LoadResourceBitmap(hInst,"splash", &hPalette);GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&bm);hWndDesktop = GetDesktopWindow();GetClientRect(hWndDesktop, &rc);rc.left = (rc.right-bm.bmWidth)/2;rc.top  = (rc.bottom-bm.bmHeight)/2;hSplashScreen = CreateWindow("STATIC", NULL,        WS_CHILD|WS_VISIBLE | WS_DLGFRAME |        WS_EX_TOPMOST,        rc.left,        rc.top,        bm.bmWidth+(2*GetSystemMetrics(SM_CXFIXEDFRAME)),        bm.bmHeight+(2*GetSystemMetrics(SM_CYFIXEDFRAME)),        hWndDesktop,        NULL, /* Use class menu */        (HANDLE)GetWindowLong (hWndDesktop, GWL_HINSTANCE),        NULL);SetWindowPos(hSplashScreen,             HWND_TOP,             rc.left,             rc.top,             bm.bmWidth+(2*GetSystemMetrics(SM_CXFIXEDFRAME)),             bm.bmHeight+(2*GetSystemMetrics(SM_CYFIXEDFRAME)),             SWP_SHOWWINDOW);hdc = GetDC(hSplashScreen);hMemDC = CreateCompatibleDC(hdc);SelectPalette(hdc,hPalette,FALSE);RealizePalette(hdc);SelectPalette(hMemDC,hPalette,FALSE);RealizePalette(hMemDC);hOldBitmap = SelectObject(hMemDC,hBitmap);BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hMemDC,0,0,SRCCOPY);DeleteObject(SelectObject(hMemDC,hOldBitmap));DeleteDC(hMemDC);ReleaseDC(hSplashScreen,hdc);DeleteObject(hPalette);UpdateWindow(hWndDesktop);}#endif /* ?WIN32 */

⌨️ 快捷键说明

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