• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            千張筆記

            Email:rain_qian830@163.com
            posts - 28, comments - 42, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            <1>.入口函數(shù)WinMain中的代碼

            1.窗口類WNDCLASS
              設(shè)置窗口的各個參數(shù)
              WNDCLASS wndcls;
              wndcls.cbClsExtra=0;
              wndcls.cbWndExtra=0;
              wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);   //指定窗體的顏色。(畫刷)
              wndcls.hCursor=LoadCursor(0,IDC_IBEAM);
              wndcls.hIcon=LoadIcon(0,IDI_WARNING);
              wndcls.hInstance=hInstance;
              wndcls.lpfnWndProc=WinSunProc;
              wndcls.lpszClassName="myfirst2006";
              wndcls.lpszMenuName=NULL;
              wndcls.style=CS_HREDRAW | CS_VREDRAW;
            2.注冊窗口函數(shù)
              RegisterClass(&wndcls);
            3.產(chǎn)生窗口
              HWND hwnd;
              hwnd=CreateWindow("myfirst2006","我的第一個窗口!",WS_OVERLAPPEDWINDOW,
                                               100,100,600,400,NULL,NULL,hInstance,NULL);
            4.顯示窗口
              ShowWindow(hwnd,SW_SHOWNORMAL);
            5.更新窗口
              UpdateWindow(hwnd);
            6.消息循環(huán)
              MSG msg;
              while(GetMessage(&msg,NULL,0,0))
              {
                     TranslateMessage(&msg);
                     DispatchMessage(&msg);
              }
              TranslateMessage轉(zhuǎn)換消息,轉(zhuǎn)換WM_CHAR消息,若不用,則不能收到WM_CHAR消息。
              DispatchMessage將消息分發(fā)出去,將收到的消息傳到操作系統(tǒng),然后操作系統(tǒng)調(diào)用窗口過程函數(shù),也就是對 設(shè)計窗口時的回調(diào)函數(shù)進(jìn)行處理。
             
            <2>.回調(diào)函數(shù)WinSunProc中的代碼:
               舉個例子:
               switch(uMsg)
               {
                     case WM_CHAR:
                                        char szchar[20];
                                        sprintf(szchar,"char is %d",wParam);
                                        MessageBox(hwnd,szchar,"myfirst2006",0);
                                        break;
                     case WM_LBUTTONDOWN:
                                        MessageBox(hwnd,"mouse click","myfirst",0);
                                        HDC hdc;
                                        hdc=GetDC(hwnd);
                                        TextOut(hdc,100,100,"這是我的第一個窗口,哈哈!",strlen("這是我的第一個窗口,哈哈!"));
                                        ReleaseDC(hwnd,hdc);
                                        break;
                     case WM_PAINT:
                                        HDC hDc;
                                        PAINTSTRUCT ps;
                                        hDc=BeginPaint(hwnd,&ps);
                                        TextOut(hDc,50,50,"hello my windows!",strlen("hello my windows!"));
                                        EndPaint(hwnd,&ps);
                                        break;
                     case WM_CLOSE:
                                        if(IDYES==MessageBox(hwnd,"是否真的退出程序?","myfirst",MB_YESNO))
                                       {
                                                DestroyWindow(hwnd);
                                       }
                                        break;
                     case WM_DESTROY:
                                      PostQuitMessage(0);
                                      break;
                                     default:
                                     return DefWindowProc(hwnd,uMsg,wParam,lParam);
               }
                  uMsg為消息標(biāo)識符
                  WM_CHAR消息為字符類消息
                  WM_LBUTTONDOWN為鼠標(biāo)消息,WM_PAINT為窗口重繪消息,當(dāng)窗口大小發(fā)生變化時,點鼠標(biāo)左鍵出來的那行文字又沒有了,因為窗口又重新粉刷了一遍
                  WM_CLOSE為關(guān)閉窗口的消息
                  WM_DESTROY為銷毀窗口的消息。

                 HDC是一個DC的句柄,它將窗口與GDI(Graphics Device Interface圖像設(shè)備接口)連接起來,如果程序需要在窗 口上繪制圖形,則需要建立一個DC設(shè)備,即定義一個HDC變量。
                在生成窗口時,HWND使操作系統(tǒng)分配的句柄與我的窗口相關(guān)并保存。
                HINSTANCE產(chǎn)生了一個與我們的程序相關(guān)的實例,HINSTANCE變量是操作系統(tǒng)給其賦值。

            Feedback

            # re: 【原】產(chǎn)生一個窗口的過程(win32應(yīng)用程序)  回復(fù)  更多評論   

            2008-10-18 15:57 by tanguo
            樂于分享,偶的http://blog.csdn.net/tanguofu
            国产精品久久久久久五月尺| 久久精品这里热有精品| 久久综合久久综合亚洲| 亚洲精品国产自在久久| 久久久久99精品成人片| 久久精品国产精品亚洲人人 | 99久久99久久精品国产片果冻| 香蕉久久一区二区不卡无毒影院| 无码人妻久久一区二区三区蜜桃| 久久偷看各类wc女厕嘘嘘| 久久精品成人影院| 99久久精品国产麻豆| 久久久这里有精品中文字幕| 国产精品一区二区久久国产| 久久久久久青草大香综合精品| 久久综合给合久久狠狠狠97色69| 久久精品二区| 久久电影网2021| 亚洲色欲久久久综合网| 久久国产三级无码一区二区| 99久久99这里只有免费费精品| 亚洲精品成人网久久久久久| 国产香蕉97碰碰久久人人| 久久亚洲高清观看| 久久精品www人人爽人人| 日韩美女18网站久久精品| 久久国产免费直播| 久久久久一级精品亚洲国产成人综合AV区 | 无码国产69精品久久久久网站| 久久久久亚洲?V成人无码| 99久久婷婷国产一区二区| 97久久综合精品久久久综合| 欧美喷潮久久久XXXXx| 丁香色欲久久久久久综合网| 精品久久久无码21p发布| 久久亚洲精品国产精品婷婷| 国产精品久久久香蕉| 国产免费久久精品99re丫y| 久久笫一福利免费导航 | 久久人人爽人人爽人人片AV不| 亚洲日本va中文字幕久久|