久久久久久久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://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 91中文在线 | 亚洲天堂男人天堂 | 久久国产一区二区三区 | 伊人久久艹 | 久久精品国产一区 | 日本久久久久久 | 亚洲一区二区三区中文字幕 | 久久精品欧美一区二区 | 一本久| 国产日本在线 | 亚洲精品一区二区三 | 成人香蕉网 | 一区二区三区国产 | 男人操女人的网站 | 明日边缘 | 精品视频免费在线观看 | 在线成人免费视频 | 国产黄网| 好色影院 | 日批视频网站 | 黄色影视在线观看 | 国产精品美女在线 | 男人影院在线观看 | 日韩黄色网址 | 日韩激情一区二区 | 日韩伊人 | 在线观看黄色小视频 | 天天综合天天做天天综合 | 国产精品网站在线观看 | 91日韩在线| 欧美综合一区二区 | 欧美在线免费观看 | 亚洲在线一区二区 | 黄色免费小视频 | 中文字幕在线免费观看视频 | 免费网站观看www在线观 | 成人做受黄大片 | 18成人免费观看网站 | 欧美午夜精品 | 麻豆精品一区 | 天天草天天 |