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

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

?? showdib7.c

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

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

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

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

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 #7: Converted to DDB"),
                          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 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 palette from the DIB and select it into DC

                    hPalette = PackedDibCreatePalette (pPackedDib) ;

                    hdc = GetDC (hwnd) ;
                    
                    if (hPalette)
                    {
                         SelectPalette (hdc, hPalette, FALSE) ;
                         RealizePalette (hdc) ;
                    }
                         // Create the DDB from the DIB

                    hBitmap = CreateDIBitmap (hdc,
                                              (PBITMAPINFOHEADER) pPackedDib,
                                              CBM_INIT,
                                              PackedDibGetBitsPtr (pPackedDib),
                                              pPackedDib,
                                              DIB_RGB_COLORS) ;
                    ReleaseDC (hwnd, hdc) ;

                         // 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一区二区三区免费野_久草精品视频
国产免费观看久久| 国内精品伊人久久久久av一坑| 欧美日本在线观看| 国产精品99久久久久久久vr| 亚洲自拍偷拍av| 久久久综合网站| 欧美一区三区四区| 色拍拍在线精品视频8848| 激情综合色播激情啊| 一区二区三区免费在线观看| 国产三级一区二区三区| 3d动漫精品啪啪一区二区竹菊| 99久久精品免费看国产 | 亚洲mv在线观看| 国产精品久久久久久久久动漫| 欧美岛国在线观看| 欧美日韩国产一级| 91国产精品成人| 国v精品久久久网| 国内精品国产成人| 日韩国产欧美视频| 亚洲国产成人精品视频| 亚洲免费资源在线播放| 中文字幕av一区二区三区免费看| 91精品国产综合久久香蕉的特点 | 另类欧美日韩国产在线| 91精品国产91热久久久做人人| 天堂影院一区二区| 亚洲影院理伦片| 亚洲码国产岛国毛片在线| 国产欧美日韩在线视频| 久久亚洲春色中文字幕久久久| 欧美一区在线视频| 日韩一区二区影院| 欧美一区二区福利在线| 9191成人精品久久| 91精品国产乱| 日韩欧美国产三级| 欧美成人vps| 日韩精品一区二区在线| 欧美一区二区视频在线观看2020 | 国产网站一区二区| 久久久午夜电影| 久久亚洲二区三区| 国产欧美日韩在线看| 国产精品美女www爽爽爽| 国产欧美一区二区精品久导航| 国产视频911| 国产精品毛片大码女人| 中文字幕一区av| 亚洲欧洲性图库| 亚洲人成人一区二区在线观看| 一区二区中文视频| 亚洲综合在线免费观看| 午夜影院在线观看欧美| 免费美女久久99| 国产麻豆日韩欧美久久| 成人免费av在线| 欧美在线free| 欧美一区二区三区视频| 欧美变态口味重另类| 久久久久久久久免费| 亚洲丝袜自拍清纯另类| 亚洲第一久久影院| 久久国产精品99精品国产| 国产麻豆精品在线| 色婷婷久久久综合中文字幕| 欧美嫩在线观看| 亚洲精品一区二区精华| 亚洲欧美综合色| 首页欧美精品中文字幕| 激情小说亚洲一区| aaa亚洲精品一二三区| 精品视频全国免费看| 日韩欧美一级片| 国产精品嫩草久久久久| 亚洲第一综合色| 国产一区二区福利视频| 91丨九色丨尤物| 天涯成人国产亚洲精品一区av| 亚洲第一综合色| 日韩—二三区免费观看av| 免费成人在线视频观看| 色天天综合色天天久久| 欧美日韩国产高清一区| 一区二区免费视频| 日本一二三不卡| 国产亚洲综合av| 欧美亚洲免费在线一区| 国产日韩精品一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 亚洲成人自拍偷拍| 国内精品久久久久影院一蜜桃| 国产精品视频你懂的| caoporen国产精品视频| 国产三级一区二区三区| 亚洲欧美日韩国产一区二区三区| 亚洲蜜臀av乱码久久精品| 毛片av一区二区| 福利电影一区二区| 在线视频综合导航| 亚洲乱码国产乱码精品精小说| 激情综合色丁香一区二区| 91黄视频在线观看| 亚洲视频在线观看一区| 91丝袜高跟美女视频| 亚洲一区二区三区美女| 欧美久久久久免费| 久久影院视频免费| 91免费看片在线观看| 亚洲自拍偷拍欧美| 欧美日免费三级在线| 亚洲18色成人| 欧美一级免费观看| 亚洲另类色综合网站| av不卡在线播放| 亚洲精品视频在线观看网站| 成人性生交大片免费看在线播放| 日韩欧美国产电影| 美女在线视频一区| 亚洲国产成人自拍| 国产成人精品综合在线观看| 欧美一区二区三区色| 青青草伊人久久| 日韩三级精品电影久久久| 婷婷综合久久一区二区三区| 成人三级在线视频| 亚洲综合激情小说| 欧美日韩国产片| 成人开心网精品视频| 国产视频亚洲色图| 国产成人av电影在线| 亚洲一区二区三区在线| 91香蕉视频污| 久久 天天综合| 国产精品婷婷午夜在线观看| 成人国产精品免费观看| 狠狠色狠狠色综合| 国产日韩欧美亚洲| 欧美日韩国产综合一区二区| 99久久精品99国产精品| 日韩激情在线观看| 国内精品免费**视频| 91免费在线视频观看| 日本一区二区三级电影在线观看 | 欧美天天综合网| 一区二区不卡在线播放 | 国产精品1区二区.| 国产日韩精品一区二区三区| 国产91精品欧美| 中文av一区二区| 色综合久久88色综合天天6| 亚洲色图丝袜美腿| 欧美日韩国产影片| 热久久免费视频| 国产欧美精品一区二区三区四区| 国产福利精品导航| 亚洲人成在线播放网站岛国| 欧美色精品天天在线观看视频| 午夜影院久久久| 欧美mv日韩mv| 岛国一区二区在线观看| 亚洲男同性恋视频| 91精品国产91久久久久久最新毛片| 精品在线视频一区| 中文字幕日本乱码精品影院| 色就色 综合激情| 欧美年轻男男videosbes| 麻豆精品在线看| 国产亚洲综合av| 91黄色免费版| 黄网站免费久久| 专区另类欧美日韩| 91精品国产综合久久精品| 韩国精品主播一区二区在线观看| 亚洲色欲色欲www| 日韩视频一区二区三区| av网站一区二区三区| 日韩影视精彩在线| 中文字幕欧美三区| 666欧美在线视频| 国产大陆a不卡| 午夜精品久久久久久久99樱桃| 26uuu精品一区二区在线观看| 91色porny| 国产一区二区三区综合| 亚洲精品欧美二区三区中文字幕| 欧美久久一二三四区| 成人免费视频视频在线观看免费| 日韩精品一二三| 国产精品乱人伦中文| 欧美一级高清片| 91美女蜜桃在线| 国产精品一区二区男女羞羞无遮挡 | 色综合久久久久久久| 开心九九激情九九欧美日韩精美视频电影| 国产精品色婷婷| 91精品国产欧美日韩| 欧洲av一区二区嗯嗯嗯啊| 福利一区二区在线|