久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: windows 窗口創建 [打印本頁]

作者: liuyy    時間: 2015-1-11 19:24
標題: windows 窗口創建
1、設計窗口類
2、注冊窗口
3、創建窗口
4、顯示窗口與更新窗口
5、消息循環
6、窗口函數




1.設計窗口
typedef struct tagWNDCLASS {
    UINT        style;                              //窗口的樣式
    WNDPROC     lpfnWndProc;        //名回調函數的名字
    int         cbClsExtra;                     //窗口類無擴展
    int         cbWndExtra;                  //窗口實例無擴展
    HINSTANCE   hInstance;            //當前實例句柄
    HICON       hIcon;                              //窗口的圖標   
    HCURSOR     hCursor;                    //光標的形狀與類型
    HBRUSH      hbrBackground;         //窗口的背景
    LPCSTR      lpszMenuName;       //設定菜單
    LPCSTR      lpszClassName;      //設定窗口名字(類名)
} WNDCLASS, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;

注:以上是設計窗口的一個結構體 ,
       作用是確定窗口的 。
       圖標、窗口樣式、回調函數、背景、光標、類名等屬性


2.注冊窗口

RegisterClass(&XXX);

注:XXX代表  某某某設計窗口的結構體名+“&”是取地址
       作用是導入內存


3.創建窗口

CreaeWindow 創建窗口函數原型
HWND CreateWindow(

LPCTSTR lpClassName, //窗口類名(與設計函數的類名相同)

LPCTSTR lpWindowName,  //窗口標題

DWORD dwStyle,       //窗口樣式,多種樣式
int x,    //x坐標 (屏幕坐標)
int y,              //Y坐標(屏幕坐標

int nWidth,   //寬

int nHeight,       //高

HWND hWndParent,   //父窗口

HMENU hMenu,       //加載菜單的句柄

HANDLE hlnstance,  //創建此窗口的應用程序的當前句柄(PID)(也是設計窗口中的.hInstance)

LPVOID lpParam    // 這個一般是NULL。不用的

);


注:以上是一個創建窗口的函數 <CreaeWindow>創建窗口后
       函數會返回一個句柄 這時要用一個 窗口句柄類型(HWND)
       的變量來接收這個返回值。
       作用是確定:
       窗口的 標題、窗口樣式、窗口位置、窗口大小、菜單、父窗口等等。



4、顯示窗口與更新窗口
      顯示窗口
ShowWindow(XXXX,         //第一個參數是 窗口句柄(HWND)
                      SW_SHOW  //指定窗口如何顯示
                      );


     更新窗口
UpdateWindow(hWnd   //窗口句柄
                        );



5、消息循環
下面是代碼:
       MSG msg; //聲明消息結構

while(GetMessage(&msg,NULL,0,0)) //消息循環
{
TranslateMessage(&msg);     //讓Windows為與鍵盤相關的消息做一些轉換
DispatchMessage(&msg);      //分派消息到窗口過程函數中對消息處理
}

6、窗口函數

//窗口過程函數的實現(消息處理函數)
LRESULT CALLBACK MyWindowProc(
       HWND hwnd,      // handle to window 窗口句柄
       UINT uMsg,      // message identifier消息標識
       WPARAM wParam,  // first message parameter
       LPARAM lParam   // second message parameter
      )
{

   switch(uMsg)
   {
   case WM_PAINT:
   {
   TCHAR str[] = _T("這是一個Windows的SDK程序!");
   HDC hDc;//聲明HDC數據結構
   PAINTSTRUCT  Ps;
   hDc = BeginPaint(hwnd,&Ps); //獲取設備環境句柄
   SetTextColor(hDc,RGB(13,25,200)); //設置文本顏色
   TextOut(hDc,0,0,str,18); //輸出文字
   EndPaint(hwnd,&Ps); //釋放資源
   break;
   }
   case WM_CLOSE: //點擊"X"按鈕時發送此消息,使消息循環停止
   if(IDYES == MessageBox(hwnd,_T("是否要退出?"),_T("提示"),MB_YESNO))
   {
             DestroyWindow(hwnd); //銷毀窗口,發送WM_DESTROY消息,注意程序進程還沒退出
   }   
   break;
   case WM_DESTROY:
   PostQuitMessage(NULL); //進程結束,完全退出程序
   break;
   case WM_LBUTTONDOWN:
   MessageBox(hwnd,_T("鼠標左鍵按下"),_T("提示"),MB_OK);
   break;
   default:
   return DefWindowProc(hwnd,uMsg,wParam,lParam); //處理未處理的消息
   break;
   }

   return 0;

}




作者: yyxtj    時間: 2015-4-18 16:15
好東西,學習一下




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久大陆| 日韩亚洲欧美一区 | 91精品国产91久久久久游泳池 | 久久久久亚洲av毛片大全 | 午夜视频免费网站 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 日韩高清黄色 | 欧美日韩久久精品 | 精品国产91亚洲一区二区三区www | 激情欧美一区二区三区中文字幕 | 亚洲九色 | 一区二区三区四区毛片 | 91视频91| 亚洲一区av在线 | 亚洲欧美日韩精品久久亚洲区 | 综合久久久 | 免费一区二区三区 | 亚洲综合字幕 | 久久久精品一区二区三区 | 男人天堂国产 | 天天爽夜夜操 | 国产一区在线免费观看视频 | 欧美高清视频一区 | 国产精品久久久久久久久图文区 | 日韩亚洲视频 | 成人夜晚看av| 成人免费看片网 | 精品国产精品三级精品av网址 | 91视频在线 | 精品国产乱码久久久久久蜜臀 | 亚洲一视频| 国产98色在线 | 日韩 | 欧美国产日韩在线观看 | 小h片免费观看久久久久 | 欧美一级高潮片免费的 | 日日操av| 一区二区中文 | 国产一区二区免费 | 一区二区三区不卡视频 | 亚洲国产高清在线观看 | 91一区二区三区在线观看 |