<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來(lái),開(kāi)創(chuàng)未來(lái)!
    隨筆 - 160, 文章 - 0, 評(píng)論 - 40, 引用 - 0
    數(shù)據(jù)加載中……

    Windows程序運(yùn)行原理及程序編寫(xiě)流程

    #include "windows.h"
    #include "stdio.h"

    //定義窗口過(guò)程函數(shù);
    LRESULT CALLBACK MyWndProc(
     HWND hwnd,      // handle to window
     UINT uMsg,      // message identifier
     WPARAM wParam,  // first message parameter
     LPARAM lParam   // second message parameter
    );

    int WINAPI WinMain(
     HINSTANCE hInstance,  // handle to current instance
     HINSTANCE hPrevInstance,  // handle to previous instance
     LPSTR lpCmdLine,      // pointer to command line
     int nCmdShow          // show state of window
    )
    {
     //設(shè)計(jì)一個(gè)窗口類(lèi);
     WNDCLASS wndcls;
     wndcls.cbClsExtra=0;
     wndcls.cbWndExtra=0;
     wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
     wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
     wndcls.hIcon=LoadIcon(NULL,IDI_INFORMATION);
     wndcls.hInstance=hInstance;
     wndcls.lpfnWndProc=MyWndProc;
     wndcls.lpszClassName="Bacoo";
     wndcls.lpszMenuName=NULL;
     wndcls.style=CS_VREDRAW | CS_HREDRAW;

     //注冊(cè)窗口類(lèi);
     RegisterClass(&wndcls);

     //創(chuàng)建窗口;
     HWND hwnd;
     hwnd=CreateWindow("Bacoo","A Simple SingleDocument derived from own code",
      WS_OVERLAPPEDWINDOW,0,0,600,400,
      NULL,NULL,hInstance,NULL);

     //顯示及更新窗口。
     ShowWindow(hwnd,SW_SHOWNORMAL);
     UpdateWindow(hwnd);

     //消息循環(huán)
     MSG msg;
     while(GetMessage(&msg,NULL,0,0))
     {
      //簡(jiǎn)單的說(shuō),函數(shù)TranslateMessage就是把WM_KEYDOWN和WM_KEYUP翻譯成WM_CHAR消息,沒(méi)有該函數(shù)就不能產(chǎn)生WM_CHAR消息。
      TranslateMessage(&msg);
      ::DispatchMessage(&msg);
     }

     return 0;
    }

    LRESULT CALLBACK MyWndProc(
     HWND hwnd,      // handle to window
     UINT uMsg,      // message identifier
     WPARAM wParam,  // first message parameter
     LPARAM lParam   // second message parameter
    )
    {
     switch(uMsg)
     {
     case WM_CHAR:
      char buf[20];
      sprintf(buf,"char is %d",wParam);
      MessageBox(hwnd,buf,"bacoo",0);
      break;
     case WM_LBUTTONDOWN:
      //GetDC和ReleaseDC是一對(duì),只要不是響應(yīng)WM_PAINT消息,都用這一對(duì)函數(shù)。
      MessageBox(hwnd,"mouse clicked","bacoo",0);
      HDC hdc;
      hdc=GetDC(hwnd);
      TextOut(hdc,0,50,"I'm Bacoo",strlen("I'm Bacoo"));
      ReleaseDC(hwnd,hdc);
      break;
     case WM_PAINT:
      //BeginPaint和EndPaint也是一對(duì),它們只用在響應(yīng)WM_PAINT消息中。
      HDC hdc2;
      PAINTSTRUCT ps;
      hdc2=BeginPaint(hwnd,&ps);
      TextOut(hdc2,0,0,"Hello",strlen("Hello"));
      EndPaint(hwnd,&ps);
      break;
     case WM_CLOSE:
      //把常量放在前面可以防止誤寫(xiě)為“=”時(shí)產(chǎn)生的錯(cuò)誤,這是一個(gè)很不錯(cuò)的小技巧
      if(IDYES==MessageBox(hwnd,"Are you ready to close this window?","Bacoo",MB_YESNO))
      {
       DestroyWindow(hwnd);
      }
      break;
     case WM_DESTROY:
      PostQuitMessage(0);
      break;
     default:
      //注意:這里必須使用return DefWindowProc(hwnd,uMsg,wParam,lParam);而不能僅僅使用DefWindowProc(hwnd,uMsg,wParam,lParam);
      //否則窗口不能正確顯示,其實(shí)該回調(diào)函數(shù)的返回值表征了消息相應(yīng)的結(jié)果,因此是有意義的,不能一概返回0。
      LRESULT lr=DefWindowProc(hwnd,uMsg,wParam,lParam);
    //   if(lr!=NULL)
    //   {
    //    MessageBox(NULL,"NULL!=DefWindowProc(hwnd,uMsg,wParam,lParam)","Try",0);
    //    PostQuitMessage(0);
    //   }
      return lr;
     }
     return 0;
    }

     

    posted on 2008-02-23 19:15 so true 閱讀(383) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): C&C++

    主站蜘蛛池模板: 99在线观看免费视频| 一本大道一卡二大卡三卡免费| 无码国产精品一区二区免费模式| 亚洲AV无码一区二区三区国产| 亚洲欧美成人综合久久久| 四虎www成人影院免费观看| 亚洲熟妇AV一区二区三区浪潮 | 亚洲深深色噜噜狠狠爱网站| 国产午夜亚洲精品不卡电影| 国产一区在线观看免费| 日本特黄特色AAA大片免费| 亚洲片一区二区三区| 久久久久久久国产免费看 | 免费看一级做a爰片久久| 性色av极品无码专区亚洲| 野花视频在线官网免费1| 九月婷婷亚洲综合在线| caoporm超免费公开视频| 国产亚洲欧洲精品| 91短视频在线免费观看| 亚洲国产美女在线观看| 免费看少妇作爱视频| 日韩精品视频在线观看免费| 亚洲乱码中文字幕综合| 久久A级毛片免费观看| 亚洲伊人久久大香线蕉AV| 亚洲AⅤ永久无码精品AA| 你懂得的在线观看免费视频| 亚洲成人福利网站| 在线日韩av永久免费观看| 国产成人无码精品久久久久免费 | 亚洲精品色婷婷在线影院 | 一级女人18毛片免费| 亚洲AV日韩AV永久无码色欲| 国产亚洲精午夜久久久久久| 95老司机免费福利| 国产成人不卡亚洲精品91| 久久亚洲精品中文字幕三区| 久久久久国色AV免费观看性色| 男人免费视频一区二区在线观看 | 特黄特色的大片观看免费视频|