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

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

?? showdib6.c

?? widows編程例題程序13-18章
?? C
字號:
/*------------------------------------------------
   SHOWDIB6.C -- Display DIB with palette indices
                 (c) Charles Petzold, 1998
  ------------------------------------------------*/

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

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

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

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 #6: Palette Indices"),
                          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 BITMAPINFO * pPackedDib ;
     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") ;
     HDC                 hdc ;
     int                 i, iNumColors ;
     PAINTSTRUCT         ps ;
     WORD              * pwIndex ;

     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 (pPackedDib)
               {
                    free (pPackedDib) ;
                    pPackedDib = 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 palette from the DIB color table

                    hPalette = PackedDibCreatePalette (pPackedDib) ;

                         // Replace DIB color table with indices

                    if (hPalette)
                    {
                         iNumColors = PackedDibGetNumColors (pPackedDib) ;
                         pwIndex = (WORD *) 
                                        PackedDibGetColorTablePtr (pPackedDib) ;

                         for (i = 0 ; i < iNumColors ; i++)
                              pwIndex[i] = (WORD) i ;
                    }
               }
               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 (pPackedDib)
               SetDIBitsToDevice (hdc, 
                                  0,   
                                  0,   
                                  PackedDibGetWidth (pPackedDib), 
                                  PackedDibGetHeight (pPackedDib),
                                  0,                            
                                  0,                            
                                  0,                            
                                  PackedDibGetHeight (pPackedDib),  
                                  PackedDibGetBitsPtr (pPackedDib), 
                                  pPackedDib, 
                                  DIB_PAL_COLORS) ;
          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 (pPackedDib)
               free (pPackedDib) ;

          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一区二区三区免费野_久草精品视频
99re66热这里只有精品3直播| 欧美精品xxxxbbbb| 综合久久久久久| thepron国产精品| 亚洲愉拍自拍另类高清精品| 91无套直看片红桃| 亚洲一区二区欧美激情| 欧美精品123区| 日本91福利区| 国产精品免费观看视频| 欧美在线观看视频一区二区 | 欧美va在线播放| va亚洲va日韩不卡在线观看| 一区二区三区日韩精品视频| 日韩免费观看高清完整版| 国内精品久久久久影院色| 亚洲欧美日韩国产综合| 5月丁香婷婷综合| 色哟哟在线观看一区二区三区| 午夜电影网一区| 国产精品网站在线| 国产人成一区二区三区影院| 欧美色精品在线视频| 成人精品国产福利| 精品一区二区三区久久| 蜜桃视频在线观看一区二区| 午夜成人免费视频| 亚洲精品高清视频在线观看| 亚洲国产精品高清| 国产日韩av一区| 久久嫩草精品久久久精品一| 337p粉嫩大胆色噜噜噜噜亚洲| 91欧美一区二区| 粉嫩av一区二区三区| 国产精品资源站在线| 免费不卡在线视频| 琪琪一区二区三区| 青青国产91久久久久久| 性感美女久久精品| 日韩黄色片在线观看| 亚洲成人自拍偷拍| 久久国产精品99久久久久久老狼 | 欧美日韩在线三级| 欧美一区二区播放| 欧美激情一区二区三区蜜桃视频| 国产精品久久久99| 视频一区视频二区中文字幕| 香蕉av福利精品导航| 国产亚洲欧美在线| 美女视频一区在线观看| 欧美一级欧美一级在线播放| 日韩电影一二三区| 日韩精品一区二区三区四区视频| 国产午夜亚洲精品理论片色戒| 日韩中文字幕av电影| 91福利区一区二区三区| 国产色综合久久| 懂色av一区二区三区免费观看| 欧美日韩一区视频| 亚洲综合久久久久| 国产馆精品极品| 精品乱人伦小说| 久久99精品国产91久久来源 | 久久99精品久久久久婷婷| 在线亚洲欧美专区二区| 亚洲女人小视频在线观看| 成人v精品蜜桃久久一区| 亚洲色图在线播放| 欧美日韩在线免费视频| 香蕉影视欧美成人| 欧美日韩免费一区二区三区| 亚洲精品美国一| youjizz国产精品| 中文字幕一区二区5566日韩| 一本色道a无线码一区v| 亚洲成人福利片| 久久中文娱乐网| 国产成人在线电影| 国产精品福利一区二区三区| 欧美日韩精品一区二区| 亚洲成av人片一区二区| 欧美电影免费观看高清完整版在线| 无码av免费一区二区三区试看 | www.欧美日韩国产在线| 欧美极品少妇xxxxⅹ高跟鞋| 国内精品免费**视频| 亚洲蜜臀av乱码久久精品蜜桃| 精品久久久久久久久久久久久久久久久 | 欧美另类z0zxhd电影| 五月激情丁香一区二区三区| 91精品午夜视频| 国产精品中文字幕日韩精品 | 9久草视频在线视频精品| 天堂va蜜桃一区二区三区| 久久久久久麻豆| 在线中文字幕不卡| 丁香婷婷综合网| 喷水一区二区三区| 午夜一区二区三区视频| 成人欧美一区二区三区小说| 欧美福利电影网| 国产不卡视频在线观看| 国产成人综合自拍| 亚洲精选在线视频| 日韩理论电影院| 精品日韩在线观看| 91麻豆精品国产91久久久久久 | 国产一区二区主播在线| 亚洲成人综合视频| 丝瓜av网站精品一区二区| 亚洲图片自拍偷拍| 午夜伊人狠狠久久| 日本欧美一区二区三区乱码| 国产精品天美传媒| 综合久久久久久久| 亚洲国产精品ⅴa在线观看| 一区二区三区日韩精品视频| 国产一区二区三区日韩| 成人av中文字幕| 欧美电影精品一区二区| 亚洲精品国产成人久久av盗摄| 日韩av二区在线播放| 色又黄又爽网站www久久| 一本久久综合亚洲鲁鲁五月天| 久久久久久久久久久久久夜| 欧美午夜寂寞影院| 久久亚洲精华国产精华液| 成人精品免费视频| 国产福利精品一区二区| 欧美久久一二三四区| 日韩av在线播放中文字幕| 欧美日韩精品电影| 图片区日韩欧美亚洲| 97se亚洲国产综合在线| 91精品国产免费久久综合| 亚洲午夜三级在线| 99国产精品久久久久久久久久久| 日韩欧美一级二级三级久久久| 日韩av在线播放中文字幕| 日本韩国一区二区三区视频| 国产欧美日韩在线| 黄色小说综合网站| 日韩视频一区二区在线观看| 亚洲黄色录像片| 色婷婷综合久久| 亚洲精品五月天| 欧美群妇大交群的观看方式 | 91.com在线观看| 亚洲动漫第一页| 精品久久久久久最新网址| 狠狠色丁香久久婷婷综| 国产精品毛片无遮挡高清| 国产成人三级在线观看| 国产欧美精品一区二区色综合| 国产精品99久久久| 久久精品水蜜桃av综合天堂| 国产乱对白刺激视频不卡| 久久久一区二区三区捆绑**| 国产毛片精品国产一区二区三区| 欧美不卡一区二区三区| 久久99精品国产麻豆婷婷| 欧美不卡一区二区三区| 91在线视频播放| 亚洲成va人在线观看| 欧美国产日韩亚洲一区| 91麻豆精品国产91| 成人激情小说网站| 韩国v欧美v亚洲v日本v| 激情偷乱视频一区二区三区| 天堂在线一区二区| 亚洲成人午夜影院| 亚洲图片欧美一区| 亚洲午夜精品在线| 欧美一区二区在线看| 国产高清不卡二三区| 亚洲成人av福利| 欧美国产禁国产网站cc| 69av一区二区三区| 91精品1区2区| 99精品久久免费看蜜臀剧情介绍| 日本午夜精品视频在线观看 | 成人app软件下载大全免费| 亚洲h在线观看| 亚洲欧美日韩在线| 国产精品天干天干在观线| 欧美一卡在线观看| 欧美日韩成人一区二区| 欧美午夜精品免费| 欧美在线观看18| 欧美亚洲高清一区| 色欧美片视频在线观看在线视频| 成人精品小蝌蚪| 国产不卡视频一区| 国产精品影视天天线| 国产成人精品一区二| 成人在线一区二区三区| 粉嫩av一区二区三区在线播放| 国产成人在线网站| 不卡的电影网站| 欧美丝袜丝交足nylons图片|