程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 1、win32創建窗口函數(windows程序內部運行機制),win32窗口

1、win32創建窗口函數(windows程序內部運行機制),win32窗口

編輯:C++入門知識

1、win32創建窗口函數(windows程序內部運行機制),win32窗口


利用win32創建窗口函數,主要操作步驟為:

1、設計一個窗口類 2、注冊窗口類 3、創建窗口 4、顯示及窗口更新 5、消息循環 6、窗口過程函數   (1)設計一個窗口類 設計窗口類,這樣的類型已經被windows定義好了,我們只需要像選擇題一樣填滿定義好的結構體(WNDCLASS)即可。 首先有兩個一般設為0的選項:cbClsExtra和cbWndExtra,這兩個是類附加內存和窗口附加內存。 hbrBackground指定窗口類的背景畫刷句柄。可以用來指定一個畫刷的句柄,也可以指定一個標准的系統顏色值。 hCursor指定窗口類的光標句柄 hIcon指定窗口類的圖標句柄 hInstance指定包含窗口過程程序的程序的實例句柄 lpfnWndProc是一個函數指針,指向窗口過程函數 lpszClassName指定窗口類的名字 lpszMenuName指定菜單資源的名字 style指定窗口的樣式   (2)注冊窗口類 RegisterClass( xxx )裡面的參數為指向窗口WNDCLASS的指針 讓操作系統知道這一類型的窗口相關信息   (3)創建窗口 hwnd = CreateWindow(lpClassName,lpWindowName,dwStyle,x,y,nWidth,nHeight,hWndParant,hMenu,hInstance,lpParam) lpClassName指定窗口類的名稱,即窗口類中的lpszClassName lpWindowName指定窗口的名字 dwStyle指定創建的窗口樣式,主要是窗口顯示些什麼東西 x,y,nWidth,nHeight左上角坐標,長、寬 hWndParant指定被創建窗口的父窗口句柄 hMenu指定窗口菜單的句柄 hInstance指定窗口所屬的應用程序實例的句柄 lpParam多數窗口將這個設為NULL   (4)顯示及更新 ShowWindow(hwnd,窗口顯示狀態); UpdateWindow(hwnd);   (5)消息循環 創建、顯示、更新窗口之後,需要有一個消息循環,不斷的從消息隊列中讀取消息。 GetMessage( lpMsg , hWnd , wMsgFilterMin, wMsgFilterMax) lpMsg指向一個消息結構體(MSG) hWnd指定接收哪一個窗口的消息,通常設為NULL,接收屬於調用線程所有窗口的窗口消息 wMsgFilterMin,wMsgFilterMax指定要獲取的消息最小值和最大值,通常設為0 GetMessage函數對於WM_QUIT消息,返回0 TranslateMessage和DispatchMessage對收到的消息進一步處理   (6)窗口過程函數 用於處理發送給窗口的消息     這一章主要通過一個win32編程的例子,講述了windows程序設計,是一種交互式的、事件驅動的程序設計模式,基於消息的。   詳細內容,參考VC++深入講解這本書吧

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved