亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? showdib8.c

?? widows編程例題程序13-18章
?? C
字號:
/*--------------------------------------------------
   SHOWDIB8.C -- Shows DIB converted to DIB section
                 (c) Charles Petzold, 1998
  --------------------------------------------------*/

#include <windows.h>
#include "..\\ShowDib3\\PackeDib.h"
#include "resource.h"

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

TCHAR szAppName[] = TEXT ("ShowDib8") ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     HWND     hwnd ;
     MSG      msg ;
     WNDCLASS wndclass ;

     wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
     wndclass.lpfnWndProc   = WndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = 0 ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
     wndclass.lpszMenuName  = szAppName ;
     wndclass.lpszClassName = szAppName ;

     if (!RegisterClass (&wndclass))
     {
          MessageBox (NULL, TEXT ("This program requires Windows NT!"), 
                      szAppName, MB_ICONERROR) ;
          return 0 ;
     }

     hwnd = CreateWindow (szAppName, TEXT ("Show DIB #8: DIB Section"),
                          WS_OVERLAPPEDWINDOW,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          CW_USEDEFAULT, CW_USEDEFAULT, 
                          NULL, NULL, hInstance, NULL) ;

     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

     while (GetMessage (&msg, NULL, 0, 0))
     {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
     }
     return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
     static HBITMAP      hBitmap ;
     static HPALETTE     hPalette ;
     static int          cxClient, cyClient ;
     static OPENFILENAME ofn ;
     static PBYTE        pBits ;
     static TCHAR        szFileName [MAX_PATH], szTitleName [MAX_PATH] ;
     static TCHAR        szFilter[] = TEXT ("Bitmap Files (*.BMP)\0*.bmp\0")
                                      TEXT ("All Files (*.*)\0*.*\0\0") ;
     BITMAP              bitmap ;
     BITMAPINFO        * pPackedDib ;
     HDC                 hdc, hdcMem ;
     PAINTSTRUCT         ps ;

     switch (message)
     {
     case WM_CREATE:
          ofn.lStructSize       = sizeof (OPENFILENAME) ;
          ofn.hwndOwner         = hwnd ;
          ofn.hInstance         = NULL ;
          ofn.lpstrFilter       = szFilter ;
          ofn.lpstrCustomFilter = NULL ;
          ofn.nMaxCustFilter    = 0 ;
          ofn.nFilterIndex      = 0 ;
          ofn.lpstrFile         = szFileName ;
          ofn.nMaxFile          = MAX_PATH ;
          ofn.lpstrFileTitle    = szTitleName ;
          ofn.nMaxFileTitle     = MAX_PATH ;
          ofn.lpstrInitialDir   = NULL ;
          ofn.lpstrTitle        = NULL ;
          ofn.Flags             = 0 ;
          ofn.nFileOffset       = 0 ;
          ofn.nFileExtension    = 0 ;
          ofn.lpstrDefExt       = TEXT ("bmp") ;
          ofn.lCustData         = 0 ;
          ofn.lpfnHook          = NULL ;
          ofn.lpTemplateName    = NULL ;

          return 0 ;

     case WM_SIZE:
          cxClient = LOWORD (lParam) ;
          cyClient = HIWORD (lParam) ;
          return 0 ;

     case WM_COMMAND:
          switch (LOWORD (wParam))
          {
          case IDM_FILE_OPEN:

                    // Show the File Open dialog box

               if (!GetOpenFileName (&ofn))
                    return 0 ;
               
                    // If there's an existing packed DIB, free the memory

               if (hBitmap)
               {
                    DeleteObject (hBitmap) ;
                    hBitmap = NULL ;
               }
               
                    // If there's an existing logical palette, delete it

               if (hPalette)
               {
                    DeleteObject (hPalette) ;
                    hPalette = NULL ;
               }
               
                    // Load the packed DIB into memory

               SetCursor (LoadCursor (NULL, IDC_WAIT)) ;
               ShowCursor (TRUE) ;

               pPackedDib = PackedDibLoad (szFileName) ;

               ShowCursor (FALSE) ;
               SetCursor (LoadCursor (NULL, IDC_ARROW)) ;

               if (pPackedDib)
               {
                         // Create the DIB section from the DIB

                    hBitmap = CreateDIBSection (NULL,
                                             pPackedDib, 
                                             DIB_RGB_COLORS,
                                             &pBits, 
                                             NULL, 0) ;

                         // Copy the bits

                    CopyMemory (pBits, PackedDibGetBitsPtr  (pPackedDib),
                                       PackedDibGetBitsSize (pPackedDib)) ;

                         // Create palette from the DIB

                    hPalette = PackedDibCreatePalette (pPackedDib) ;

                         // Free the packed-DIB memory

                    free (pPackedDib) ;
               }
               else
               {
                    MessageBox (hwnd, TEXT ("Cannot load DIB file"), 
                                szAppName, 0) ;
               }
               InvalidateRect (hwnd, NULL, TRUE) ;
               return 0 ;
          }
          break ;

     case WM_PAINT:
          hdc = BeginPaint (hwnd, &ps) ;

          if (hPalette)
          {
               SelectPalette (hdc, hPalette, FALSE) ;
               RealizePalette (hdc) ;
          }
          if (hBitmap)
          {
               GetObject (hBitmap, sizeof (BITMAP), &bitmap) ;

               hdcMem = CreateCompatibleDC (hdc) ;
               SelectObject (hdcMem, hBitmap) ;

               BitBlt (hdc,    0, 0, bitmap.bmWidth, bitmap.bmHeight, 
                       hdcMem, 0, 0, SRCCOPY) ;

               DeleteDC (hdcMem) ;
          }
          EndPaint (hwnd, &ps) ;
          return 0 ;

     case WM_QUERYNEWPALETTE:
          if (!hPalette)
               return FALSE ;

          hdc = GetDC (hwnd) ;
          SelectPalette (hdc, hPalette, FALSE) ;
          RealizePalette (hdc) ;
          InvalidateRect (hwnd, NULL, TRUE) ;

          ReleaseDC (hwnd, hdc) ;
          return TRUE ;

     case WM_PALETTECHANGED:
          if (!hPalette || (HWND) wParam == hwnd)
               break ;

          hdc = GetDC (hwnd) ;
          SelectPalette (hdc, hPalette, FALSE) ;
          RealizePalette (hdc) ;
          UpdateColors (hdc) ;

          ReleaseDC (hwnd, hdc) ;
          break ;

          
     case WM_DESTROY:
          if (hBitmap)
               DeleteObject (hBitmap) ;

          if (hPalette)
               DeleteObject (hPalette) ;

          PostQuitMessage (0) ;
          return 0 ;
     }
     return DefWindowProc (hwnd, message, wParam, lParam) ;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线看| 久久精品国产第一区二区三区| 正在播放亚洲一区| 中文字幕+乱码+中文字幕一区| 91精品国产综合久久久久久久久久| 91原创在线视频| 成人免费视频网站在线观看| 国产成人av福利| 成人性生交大片免费看中文网站| 国产一区二区免费在线| 国产精品996| 懂色av噜噜一区二区三区av| av电影天堂一区二区在线| 91在线视频播放| 色系网站成人免费| 色菇凉天天综合网| 国产凹凸在线观看一区二区| 国产老肥熟一区二区三区| 午夜精品成人在线视频| 日韩精品最新网址| 成人国产精品免费网站| 久久国产三级精品| 久久成人麻豆午夜电影| 国产一区二区三区日韩| www.久久精品| 欧美在线一区二区| 久久欧美一区二区| 国产精品传媒入口麻豆| 亚洲va欧美va天堂v国产综合| 亚洲一区二区三区在线看| 免费在线看一区| 大桥未久av一区二区三区中文| 欧美在线观看禁18| 精品久久久久久久人人人人传媒| 国产精品久久久久久久第一福利 | 欧日韩精品视频| 国产一区欧美二区| 9人人澡人人爽人人精品| 欧洲av在线精品| 26uuu欧美日本| 成人欧美一区二区三区小说| 天天影视色香欲综合网老头| 国产一区二区三区| 欧美一区二区在线播放| 国产精品久久久久久久久动漫 | 久久你懂得1024| 亚洲在线免费播放| 成人午夜免费av| 91精品国产手机| 亚洲精品国产a| 成人性视频免费网站| 日韩欧美一区在线| 日本va欧美va瓶| 91麻豆成人久久精品二区三区| 日韩欧美电影一区| 亚洲五月六月丁香激情| 成人午夜伦理影院| 精品国产乱码久久久久久夜甘婷婷 | 日韩一级免费一区| 日韩美女视频一区二区| 国产精品一区二区无线| 欧美精三区欧美精三区| 夜夜嗨av一区二区三区网页 | 日韩av网站免费在线| 色综合久久六月婷婷中文字幕| 国产三级欧美三级日产三级99| 日韩二区三区四区| 欧美喷水一区二区| 一区二区三区影院| 一本色道久久综合狠狠躁的推荐| 亚洲国产高清aⅴ视频| 国产精品一级在线| 久久久久国产免费免费| 国产精品自在在线| 国产调教视频一区| 东方aⅴ免费观看久久av| 久久午夜电影网| 成人午夜在线免费| 中文字幕综合网| 欧美在线制服丝袜| 日韩av一区二区三区四区| 欧美日韩在线观看一区二区 | 日韩福利电影在线| 欧美一区二区高清| 六月婷婷色综合| 国产人妖乱国产精品人妖| 成人av中文字幕| 亚洲品质自拍视频| 51午夜精品国产| 国产乱码精品一品二品| 中文字幕在线一区二区三区| 91在线国产福利| 五月天婷婷综合| 欧美xxxx老人做受| 成人黄色大片在线观看| 一区二区三区资源| 666欧美在线视频| 国产99久久久久久免费看农村| 国产精品久久久久影院亚瑟| 色综合久久九月婷婷色综合| 亚洲午夜精品网| 久久无码av三级| 欧美专区日韩专区| 国产自产高清不卡| 亚洲欧美aⅴ...| www久久精品| 色综合色综合色综合色综合色综合 | 欧美精选一区二区| 国产91富婆露脸刺激对白| 亚洲午夜羞羞片| 久久久久久久免费视频了| 99久久国产综合精品色伊 | 久久久久9999亚洲精品| 欧洲人成人精品| 国产在线播放一区三区四| 国产精品福利一区| 欧美日韩在线播放| 国产成人精品亚洲日本在线桃色| 亚洲高清免费一级二级三级| 久久婷婷色综合| 欧美裸体bbwbbwbbw| 成人不卡免费av| 麻豆精品视频在线观看视频| 亚洲欧美在线另类| 久久亚洲精品国产精品紫薇| 欧美日韩mp4| 在线观看区一区二| 成人美女视频在线看| 日韩激情视频在线观看| 亚洲日本一区二区| 中文字幕一区日韩精品欧美| 欧美www视频| 91精品国产综合久久久久久漫画| 日本高清成人免费播放| 国产成人精品三级| 国产中文字幕一区| 蜜桃视频免费观看一区| 午夜精品福利在线| 一区二区在线免费| 亚洲免费观看高清完整版在线 | ...av二区三区久久精品| 亚洲精品一区二区三区四区高清| 欧美日韩电影在线播放| 欧美三日本三级三级在线播放| 91视频免费看| 91在线免费视频观看| 91网站在线播放| 99久久免费国产| 成av人片一区二区| 不卡的电影网站| 成人av电影免费在线播放| jvid福利写真一区二区三区| 粉嫩嫩av羞羞动漫久久久 | 日韩视频免费观看高清完整版 | 午夜精品久久久久久久久久久| 亚洲综合久久久久| 亚洲成人自拍偷拍| 日产精品久久久久久久性色| 日日摸夜夜添夜夜添精品视频| 午夜精品久久久久影视| 美腿丝袜在线亚洲一区 | 国产精品免费av| 综合色中文字幕| 亚洲综合色成人| 天堂久久久久va久久久久| 日日夜夜免费精品视频| 国内成+人亚洲+欧美+综合在线| 国产一区二区三区香蕉| 成人黄色软件下载| 欧美综合一区二区| 欧美一级xxx| 久久久噜噜噜久久中文字幕色伊伊| 久久久久久久久久久久电影 | 亚洲欧美另类在线| 婷婷六月综合网| 韩国欧美国产1区| 不卡av免费在线观看| 欧美午夜在线观看| 久久综合久久久久88| 1024成人网| 免费亚洲电影在线| 懂色av中文字幕一区二区三区 | 国产精品另类一区| 亚洲综合免费观看高清完整版在线 | 亚洲精品美腿丝袜| 国产精品三级视频| 亚洲电影在线播放| 免费看日韩精品| av不卡一区二区三区| 欧美一区二区三区四区在线观看| www日韩大片| 亚洲国产综合在线| 国产不卡视频在线观看| 欧美日韩国产成人在线免费| 国产欧美1区2区3区| 午夜国产精品一区| 福利电影一区二区三区| 6080午夜不卡| 一区二区三区四区激情| 国产精品一二三四五|