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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2706|回復: 1
打印 上一主題 下一主題
收起左側

windows 窗口創建

[復制鏈接]
跳轉到指定樓層
樓主
ID:72008 發表于 2015-1-11 19:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
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;

}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:28571 發表于 2015-4-18 16:15 | 只看該作者
好東西,學習一下
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩一区二区三区在线看 | 久久精品网 | 欧美黄 片免费观看 | 国产亚洲精品精品国产亚洲综合 | 久久久久久99 | 美人の美乳で授乳プレイ | 国产精品夜夜夜一区二区三区尤 | 一级做a爰片性色毛片视频停止 | 狠狠干av| 亚洲一区av在线 | 日韩和的一区二在线 | 国产午夜视频 | 国产中文视频 | 国产一区二区三区免费观看在线 | 久久中文字幕电影 | 精品欧美一区二区三区免费观看 | 在线观看a视频 | 精品视频一区二区三区在线观看 | 在线看免费的a | 精品成人av| 在线播放中文 | 国产a级黄色录像 | 97色在线观看免费视频 | 激情av| 国产精品一区二区三区在线播放 | 国产精品视频一区二区三区不卡 | 免费观看一级特黄欧美大片 | 日韩一级电影免费观看 | 亚洲精品国产a久久久久久 午夜影院网站 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 91免费观看国产 | 亚洲午夜精品 | 欧洲尺码日本国产精品 | 日中文字幕在线 | 最近免费日本视频在线 | 欧美13videosex性极品 | 亚洲国产区 | 成人在线免费视频 | 精品成人佐山爱一区二区 | 日韩欧美国产精品一区二区三区 | 成人高潮片免费视频欧美 |