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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? showdib4.c

?? widows編程例題程序13-18章
?? C
字號:
/*-------------------------------------------------------
   SHOWDIB4.C -- Displays DIB with "all-purpose" palette
                 (c) Charles Petzold, 1998
  -------------------------------------------------------*/

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

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

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

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 #4: All-Purpose Palette"),
                          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 ;
}

/*------------------------------------------------------------------------
   CreateAllPurposePalette: Creates a palette suitable for a wide variety
          of images; the palette has 247 entries, but 15 of them are 
          duplicates or match the standard 20 colors.
  ------------------------------------------------------------------------*/

HPALETTE CreateAllPurposePalette (void)
{
     HPALETTE hPalette ;
     int          i, incr, R, G, B ;
     LOGPALETTE * plp ;

     plp = malloc (sizeof (LOGPALETTE) + 246 * sizeof (PALETTEENTRY)) ;

     plp->palVersion    = 0x0300 ;
     plp->palNumEntries = 247 ;

          // The following loop calculates 31 gray shades, but 3 of them
          //        will match the standard 20 colors

     for (i = 0, G = 0, incr = 8 ; G <= 0xFF ; i++, G += incr)
     {
          plp->palPalEntry[i].peRed   = (BYTE) G ;
          plp->palPalEntry[i].peGreen = (BYTE) G ;
          plp->palPalEntry[i].peBlue  = (BYTE) G ;
          plp->palPalEntry[i].peFlags = 0 ;

          incr = (incr == 9 ? 8 : 9) ;
     }

          // The following loop is responsible for 216 entries, but 8 of 
          //        them will match the standard 20 colors, and another
          //        4 of them will match the gray shades above.

     for (R = 0 ; R <= 0xFF ; R += 0x33)
     for (G = 0 ; G <= 0xFF ; G += 0x33)
     for (B = 0 ; B <= 0xFF ; B += 0x33)
     {
          plp->palPalEntry[i].peRed   = (BYTE) R ;
          plp->palPalEntry[i].peGreen = (BYTE) G ;
          plp->palPalEntry[i].peBlue  = (BYTE) B ;
          plp->palPalEntry[i].peFlags = 0 ;

          i++ ;
     }
     hPalette = CreatePalette (plp) ;

     free (plp) ;
     return hPalette ;
}

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 ;
     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 ;

               // Create the All-Purpose Palette

          hPalette = CreateAllPurposePalette () ;
          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 ;
               }
               
                    // 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)
               {
                    MessageBox (hwnd, TEXT ("Cannot load DIB file"), 
                                szAppName, 0) ;
               }
               InvalidateRect (hwnd, NULL, TRUE) ;
               return 0 ;
          }
          break ;

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

          if (pPackedDib)
          {
               SelectPalette (hdc, hPalette, FALSE) ;
               RealizePalette (hdc) ;
          
               SetDIBitsToDevice (hdc, 
                                  0,   
                                  0,   
                                  PackedDibGetWidth (pPackedDib), 
                                  PackedDibGetHeight (pPackedDib),
                                  0,                            
                                  0,                            
                                  0,                            
                                  PackedDibGetHeight (pPackedDib),  
                                  PackedDibGetBitsPtr (pPackedDib), 
                                  pPackedDib, 
                                  DIB_RGB_COLORS) ;
          }
          EndPaint (hwnd, &ps) ;
          return 0 ;

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

          ReleaseDC (hwnd, hdc) ;
          return TRUE ;

     case WM_PALETTECHANGED:
          if ((HWND) wParam != hwnd)

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

          ReleaseDC (hwnd, hdc) ;
          break ;
          
     case WM_DESTROY:
          if (pPackedDib)
               free (pPackedDib) ;

          DeleteObject (hPalette) ;

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品免费视频一区二区| 日本午夜一本久久久综合| 国产精品欧美综合在线| 国产日韩一级二级三级| 久久久www成人免费毛片麻豆 | 国产精品九色蝌蚪自拍| 久久久久久99久久久精品网站| 精品日韩在线观看| 日韩免费高清av| 久久夜色精品一区| 欧美mv日韩mv亚洲| 久久五月婷婷丁香社区| 国产三级欧美三级日产三级99| 久久久久97国产精华液好用吗| 久久久国产精品不卡| 欧美高清在线一区| 成人免费一区二区三区在线观看| 国产精品乱人伦| 中文字幕在线播放不卡一区| 中文字幕亚洲综合久久菠萝蜜| 亚洲色图欧美偷拍| 亚洲国产一区二区三区青草影视| 午夜久久福利影院| 久久不见久久见免费视频1| 黄网站免费久久| 国产大陆精品国产| 色久优优欧美色久优优| 欧美视频第二页| 日韩欧美在线1卡| 国产欧美久久久精品影院| 亚洲欧美aⅴ...| 午夜精品久久久久久久久久| 久久精品久久99精品久久| 国产风韵犹存在线视精品| 99精品视频在线观看免费| 欧美性猛片aaaaaaa做受| 日韩三级在线免费观看| 中文字幕av一区二区三区高| 一区二区国产盗摄色噜噜| 麻豆极品一区二区三区| 国产黑丝在线一区二区三区| 色综合久久综合网欧美综合网| 精品视频123区在线观看| 欧美电影免费观看高清完整版在 | 色婷婷久久99综合精品jk白丝| 欧美日韩精品免费| 久久人人超碰精品| 一区二区三区中文在线| 久久国产欧美日韩精品| 99精品国产99久久久久久白柏| 欧美日韩中文国产| 久久久99久久| 亚洲综合色网站| 国产一区二区在线视频| 91精品1区2区| 久久综合给合久久狠狠狠97色69| 亚洲欧美韩国综合色| 韩日av一区二区| 在线日韩av片| 国产日产欧美一区二区视频| 亚洲成人在线观看视频| 国产91精品在线观看| 欧美久久久久中文字幕| 国产精品久久久久久亚洲毛片| 美女一区二区三区在线观看| 91网站视频在线观看| 国产午夜亚洲精品羞羞网站| 亚洲成人动漫一区| eeuss鲁片一区二区三区在线观看| 欧美一区二区三区啪啪| 亚洲欧美日韩中文播放| 国产.欧美.日韩| 欧美成人国产一区二区| 亚洲国产视频一区二区| 风间由美一区二区三区在线观看| 在线播放欧美女士性生活| 国产精品久久久久精k8| 久久精品国产亚洲一区二区三区| 91久久精品日日躁夜夜躁欧美| 欧美—级在线免费片| 日韩不卡一二三区| 欧美性xxxxx极品少妇| 国产精品成人免费| 国产麻豆精品久久一二三| 91精品国产黑色紧身裤美女| 伊人色综合久久天天人手人婷| 国产大片一区二区| 26uuu亚洲综合色欧美| 青青草原综合久久大伊人精品 | 北条麻妃一区二区三区| 久久婷婷成人综合色| 午夜视频久久久久久| 欧美主播一区二区三区| 亚洲精品日韩专区silk| 成人国产一区二区三区精品| 久久亚洲一区二区三区明星换脸| 奇米影视在线99精品| 8v天堂国产在线一区二区| 亚洲一区二区av电影| 在线亚洲高清视频| 一区二区三区不卡在线观看| 一本大道久久a久久综合婷婷| 亚洲视频香蕉人妖| 91老司机福利 在线| 中文字幕在线不卡国产视频| 成人免费黄色在线| 亚洲欧洲www| 91偷拍与自偷拍精品| 亚洲视频在线一区二区| 一本久久精品一区二区| 一区二区三区四区在线免费观看| 色综合久久久久综合99| 亚洲精品国产一区二区精华液| 色狠狠色噜噜噜综合网| 亚洲欧美另类在线| 欧美日韩在线一区二区| 日韩不卡一区二区| 久久蜜桃av一区精品变态类天堂| 国产成人免费视频一区| 国产精品美女久久久久久| 91麻豆视频网站| 五月天网站亚洲| 日韩视频在线永久播放| 久久9热精品视频| 国产喷白浆一区二区三区| 97久久久精品综合88久久| 一区二区三区在线不卡| 欧美高清视频www夜色资源网| 蜜桃视频在线观看一区二区| 久久影院视频免费| 99视频精品全部免费在线| 亚洲成人高清在线| 欧美成人伊人久久综合网| 国产风韵犹存在线视精品| 亚洲美女屁股眼交3| 欧美嫩在线观看| 国产在线一区二区综合免费视频| 国产精品久久久久影院| 欧美午夜宅男影院| 国产一区视频导航| 亚洲男人天堂av| 欧美一区二区三区日韩视频| 国产高清在线精品| 亚洲一区二区三区在线播放| 337p亚洲精品色噜噜噜| 国产宾馆实践打屁股91| 亚洲午夜激情av| 久久中文娱乐网| 欧美日韩中文另类| 国产激情视频一区二区在线观看| 亚洲激情五月婷婷| 精品国产乱码久久久久久免费| 91麻豆产精品久久久久久 | 日本大香伊一区二区三区| 日韩av成人高清| 国产精品欧美久久久久无广告 | 7777精品伊人久久久大香线蕉超级流畅 | 国产亚洲成年网址在线观看| 色av成人天堂桃色av| 国产精品18久久久久久久久| 亚洲一二三四区不卡| 久久久久久一二三区| 欧美吻胸吃奶大尺度电影 | 久久一二三国产| 欧美日韩国产精选| 成人国产亚洲欧美成人综合网| 免费看欧美女人艹b| 亚洲另类在线一区| 久久毛片高清国产| 欧美一区二区三区喷汁尤物| 色屁屁一区二区| 国产精品一区二区久久不卡| 日韩av网站在线观看| 亚洲日本中文字幕区| 久久精品一区二区三区av| 欧美高清视频在线高清观看mv色露露十八| 成人激情开心网| 黄页网站大全一区二区| 午夜亚洲国产au精品一区二区| 日韩一区二区在线免费观看| 亚洲欧美国产高清| 中文一区二区在线观看| 欧美电影影音先锋| 欧美日韩亚洲国产综合| 风间由美一区二区三区在线观看| 午夜在线电影亚洲一区| 亚洲免费在线播放| 国产色91在线| 8x8x8国产精品| 成人av资源在线观看| 国产精品亚洲第一| 日韩电影在线免费观看| 亚洲欧美二区三区| 亚洲欧美一区二区久久| 日本一区二区视频在线观看| 日韩一区二区三区高清免费看看| 欧美精品在线一区二区三区| 91在线视频观看| 懂色av噜噜一区二区三区av| 精品一区二区三区免费视频|