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

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

?? showdib1.c

?? widows編程例題程序13-18章
?? C
字號:
/*----------------------------------------------
   SHOWDIB1.C -- Shows a DIB in the client area
                 (c) Charles Petzold, 1998
  ----------------------------------------------*/

#include <windows.h>
#include "dibfile.h"
#include "resource.h"

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

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

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
     HACCEL   hAccel ;
     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 #1"),
                          WS_OVERLAPPEDWINDOW,
                          CW_USEDEFAULT, CW_USEDEFAULT,
                          CW_USEDEFAULT, CW_USEDEFAULT, 
                          NULL, NULL, hInstance, NULL) ;

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

     hAccel = LoadAccelerators (hInstance, szAppName) ;

     while (GetMessage (&msg, NULL, 0, 0))
     {
          if (!TranslateAccelerator (hwnd, hAccel, &msg))
          {
               TranslateMessage (&msg) ;
               DispatchMessage (&msg) ;
          }
     }
     return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
     static BITMAPFILEHEADER * pbmfh ;
     static BITMAPINFO       * pbmi ;
     static BYTE             * pBits ;
     static int                cxClient, cyClient, cxDib, cyDib ;
     static TCHAR              szFileName [MAX_PATH], szTitleName [MAX_PATH] ;
     BOOL                      bSuccess ;
     HDC                       hdc ;
     PAINTSTRUCT               ps ;

     switch (message)
     {
     case WM_CREATE:
          DibFileInitialize (hwnd) ;
          return 0 ;

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

     case WM_INITMENUPOPUP:
          EnableMenuItem ((HMENU) wParam, IDM_FILE_SAVE,   
                          pbmfh ? MF_ENABLED : MF_GRAYED) ;
          return 0 ;

     case WM_COMMAND:
          switch (LOWORD (wParam))
          {
          case IDM_FILE_OPEN:
                    // Show the File Open dialog box

               if (!DibFileOpenDlg (hwnd, szFileName, szTitleName))
                    return 0 ;
               
                    // If there's an existing DIB, free the memory

               if (pbmfh)
               {
                    free (pbmfh) ;
                    pbmfh = NULL ;
               }
                    // Load the entire DIB into memory

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

               pbmfh = DibLoadImage (szFileName) ;

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

                    // Invalidate the client area for later update

               InvalidateRect (hwnd, NULL, TRUE) ;

               if (pbmfh == NULL)
               {
                    MessageBox (hwnd, TEXT ("Cannot load DIB file"), 
                                szAppName, 0) ;
                    return 0 ;
               }
                    // Get pointers to the info structure & the bits

               pbmi  = (BITMAPINFO *) (pbmfh + 1) ;
               pBits = (BYTE *) pbmfh + pbmfh->bfOffBits ;

                    // Get the DIB width and height

               if (pbmi->bmiHeader.biSize == sizeof (BITMAPCOREHEADER))
               {
                    cxDib = ((BITMAPCOREHEADER *) pbmi)->bcWidth ;
                    cyDib = ((BITMAPCOREHEADER *) pbmi)->bcHeight ;
               }
               else
               {
                    cxDib =      pbmi->bmiHeader.biWidth ;
                    cyDib = abs (pbmi->bmiHeader.biHeight) ;
               }
               return 0 ;

          case IDM_FILE_SAVE:
                    // Show the File Save dialog box

               if (!DibFileSaveDlg (hwnd, szFileName, szTitleName))
                    return 0 ;
               
                    // Save the DIB to memory

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

               bSuccess = DibSaveImage (szFileName, pbmfh) ;

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

               if (!bSuccess)
                    MessageBox (hwnd, TEXT ("Cannot save DIB file"), 
                                szAppName, 0) ;
               return 0 ;
          }
          break ;

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

          if (pbmfh)
               SetDIBitsToDevice (hdc, 
                                  0,         // xDst
                                  0,         // yDst
                                  cxDib,     // cxSrc
                                  cyDib,     // cySrc
                                  0,         // xSrc
                                  0,         // ySrc
                                  0,         // first scan line
                                  cyDib,     // number of scan lines
                                  pBits, 
                                  pbmi, 
                                  DIB_RGB_COLORS) ;

          EndPaint (hwnd, &ps) ;
          return 0 ;
          
     case WM_DESTROY:
          if (pbmfh)
               free (pbmfh) ;

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品污污网站免费看| 亚洲欧美另类在线| 亚洲精品免费在线播放| 蜜桃一区二区三区在线观看| 国产成人久久精品77777最新版本| 不卡高清视频专区| 26uuu亚洲综合色| 亚洲一区二区欧美日韩| 国产自产v一区二区三区c| 欧美日韩亚洲综合| 亚洲欧美国产高清| 不卡一区二区中文字幕| 精品久久久久久久久久久久久久久久久 | 免费看黄色91| 一本色道亚洲精品aⅴ| 久久影院午夜论| 日韩经典中文字幕一区| 91啦中文在线观看| 中文字幕欧美三区| 久久激情五月激情| 777久久久精品| 图片区小说区区亚洲影院| 91丝袜美女网| 1000精品久久久久久久久| 国产精品一线二线三线| 精品黑人一区二区三区久久| 五月婷婷综合在线| 欧美人与禽zozo性伦| 亚洲夂夂婷婷色拍ww47| 91美女在线视频| 亚洲欧美日韩人成在线播放| jlzzjlzz欧美大全| 亚洲欧美综合色| 99国产精品一区| 亚洲欧美在线观看| 99久久婷婷国产综合精品| 国产精品进线69影院| 成人av在线播放网站| 欧美国产欧美综合| 91网站在线观看视频| 亚洲精品自拍动漫在线| 在线观看免费视频综合| 午夜精品一区二区三区免费视频| 在线免费观看视频一区| 五月天亚洲精品| 精品日韩成人av| 成人免费看片app下载| 国产精品久久免费看| 91亚洲男人天堂| 亚洲图片欧美一区| 日韩欧美中文字幕公布| 国产一区二区三区高清播放| 国产欧美一区二区三区在线看蜜臀 | 日韩亚洲欧美高清| 久久超级碰视频| 国产色产综合色产在线视频| 97se亚洲国产综合自在线观| 亚洲自拍偷拍九九九| 日韩三级高清在线| 成人精品一区二区三区四区| 一区二区三区四区在线播放| 欧美日韩国产高清一区二区三区 | 成人丝袜视频网| 一区二区视频在线| 日韩午夜在线观看视频| 国产91精品精华液一区二区三区| 国产精品不卡在线| 欧美精品一级二级三级| 国产一区二区视频在线| 亚洲精品亚洲人成人网在线播放| 91精品国产综合久久福利软件| 国产在线精品一区二区夜色 | 香蕉av福利精品导航| 精品国产3级a| 欧洲另类一二三四区| 韩国成人在线视频| 亚洲一区二区三区四区的| 欧美一级高清大全免费观看| 成人午夜电影小说| 老司机免费视频一区二区| 亚洲天堂成人网| 亚洲精品一区二区三区四区高清 | 成人av先锋影音| 老色鬼精品视频在线观看播放| 国产精品三级视频| 欧美一级日韩不卡播放免费| 91欧美激情一区二区三区成人| 精品一区二区在线视频| 亚洲午夜免费福利视频| 中文字幕av一区二区三区免费看| 欧美一区二区三区影视| 91激情在线视频| 成人三级在线视频| 国产精品一区不卡| 久久91精品国产91久久小草| 午夜av一区二区三区| 亚洲精品自拍动漫在线| 国产精品麻豆久久久| 久久众筹精品私拍模特| 欧美电视剧在线观看完整版| 欧亚一区二区三区| 91麻豆产精品久久久久久| 福利一区二区在线观看| 极品美女销魂一区二区三区免费| 爽好多水快深点欧美视频| 樱桃视频在线观看一区| 亚洲欧美综合网| 欧美激情综合五月色丁香| 久久丝袜美腿综合| 欧美精品一区二区高清在线观看 | 国产精品美女久久久久久久久| 久久久久久久久久美女| 欧美xxxxxxxxx| 欧美不卡一二三| 欧美成人三级电影在线| 日韩午夜在线播放| 亚洲精品一区二区三区在线观看| 日韩视频免费观看高清完整版 | 奇米一区二区三区av| 日韩精品久久理论片| 日韩高清国产一区在线| 日韩专区欧美专区| 五月天婷婷综合| 久久精品国产一区二区三区免费看| 日本在线不卡视频一二三区| 日韩福利视频导航| 久久国产日韩欧美精品| 激情久久久久久久久久久久久久久久| 久久精品国产精品亚洲红杏| 久久99国产精品免费| 国产成人在线视频免费播放| 成人高清视频在线观看| 91一区二区三区在线播放| 91久久香蕉国产日韩欧美9色| 欧美色男人天堂| 欧美一区二区三区视频免费播放| 日韩精品一区二区三区视频在线观看| 337p日本欧洲亚洲大胆色噜噜| 久久久久久久久久看片| 日韩理论电影院| 午夜精品久久久久久久久久久| 蜜臀精品一区二区三区在线观看| 九九热在线视频观看这里只有精品| 国产麻豆成人精品| 色综合久久久久久久久久久| 欧美三级视频在线观看| 日韩欧美成人激情| 中文字幕亚洲成人| 日本aⅴ免费视频一区二区三区 | 久久久91精品国产一区二区精品 | 午夜精品福利一区二区蜜股av| 日本亚洲欧美天堂免费| 国产成人精品免费在线| 欧美性视频一区二区三区| 欧美一级精品在线| 亚洲视频一区二区在线观看| 老司机精品视频导航| 一本久久a久久精品亚洲| 日韩一区二区高清| 亚洲欧美另类小说视频| 狠狠色伊人亚洲综合成人| 一本大道av一区二区在线播放| 日韩视频一区二区| 亚洲制服丝袜av| 成人天堂资源www在线| 欧美一区二区三区免费观看视频| 国产精品视频一二三| 日日欢夜夜爽一区| 91麻豆高清视频| 中国色在线观看另类| 午夜一区二区三区在线观看| 成人免费看片app下载| 欧美精品一区二区久久婷婷| 亚洲成人一区在线| 不卡av电影在线播放| 精品国产91久久久久久久妲己| 亚洲 欧美综合在线网络| 99视频有精品| 国产日韩欧美精品一区| 看电视剧不卡顿的网站| 欧美熟乱第一页| 综合久久一区二区三区| 国产成人午夜视频| 欧美精品一区二区蜜臀亚洲| 日本v片在线高清不卡在线观看| 日本高清不卡视频| 中文字幕一区二区三区av| 国产精品资源在线看| 日韩精品一区二| 蜜桃视频一区二区| 91精品中文字幕一区二区三区| 亚洲综合男人的天堂| 99久久久国产精品| 国产精品国产馆在线真实露脸| 国产成人午夜99999| 久久久久99精品一区| 国产呦萝稀缺另类资源| 精品免费国产一区二区三区四区| 日韩精品亚洲专区| 欧美一区二区成人6969|