国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

初級 Windows API C++語言版 編程(3)

2019-11-17 05:37:41
字體:
供稿:網(wǎng)友

  由于上一章的文章中我沒有向大家介紹清楚初試化的具體實現(xiàn),造成很多的讀者無法很好的理解,這是我的失誤。本人現(xiàn)在補上,請大家原諒。

  一個Windows API程序的初始化主要分為為四個部分。1、窗口類的定義2、窗口類的注冊3、創(chuàng)建窗口實例4、顯示窗口

①窗口類定義
  在Windows應(yīng)用程序中,窗口類定義了窗口的形式與功能。它的定義過程通過給窗口類數(shù)據(jù)結(jié)構(gòu)WNDCLASS賦值來完成,這個數(shù)據(jù)結(jié)構(gòu)包含窗口類的各個屬性。窗口類的定義常用到以下幾個函數(shù),在這里一一介紹。

1、LoadIcon函數(shù)
LoadIcon函數(shù)的作用是在應(yīng)用程序中加載一個窗口圖標。它的原型為:

HICON LoadIcon
(
  HINSTANCE hInstance, //圖標資源所在的模塊句柄;
              //假如使用NULL,就會使用系統(tǒng)預(yù)定義的圖標
  LPCTSTR lpIconName //圖標資源名或系統(tǒng)預(yù)定義的圖標標識名
)


2、LoadCursor函數(shù)
LoadCursor函數(shù)作用是在應(yīng)用程序中加載一個窗口光標。它的原型為:


HCURSOR LoadCursor
(
  HINSTANCE hInstance,//光標資源所在的模塊句柄;
              //假如使用NULL,它就會使用系統(tǒng)預(yù)定義的光標
  LPCTSTR lpCursorName//圖標資源名或系統(tǒng)預(yù)定義的光標標識名
)


3、GetStockObject函數(shù)
應(yīng)用程序通過調(diào)用GetStockObject函數(shù)來獲取系統(tǒng)提供的背景刷,它的原型為:


HBRUSH GetStockObject(int nBrush);
//nBrush 為系統(tǒng)提供的背景刷標示名


②注冊窗口類
  Windows系統(tǒng)本身提供部分預(yù)定義的窗口類,我們也可以自己定義窗口類,窗口類必須先注冊后使用。窗口類注冊使用的函數(shù)是RegisterClass()實現(xiàn)。它的原型為:

RegisterClass(&wndclass);
//wndclass為窗口的類結(jié)構(gòu)(前面第二篇文章已經(jīng)介紹過了)


③創(chuàng)建窗口
  窗口注冊之后就要把它實例化,簡單的說就是創(chuàng)建一個窗口的實例。它是由函數(shù)CreateWindow()實現(xiàn),函數(shù)的原型為:


HWND CreateWindow
(
  LPCTSTR lpszClassName,//窗口實例的類的名字
  LPCTSTR lpszTitle,    //窗口標題名
  DWord dwStyle,    //新創(chuàng)建的窗口的樣式(后面將會具體介紹)
  int x,          //窗口左上角的橫坐標
  int y,          //窗口左上角的縱坐標
  int nWidth,        //窗口的寬度
  int nHeight,       //窗口的高度
  HWND hwndParent,   //該窗口的父窗口的句柄
  HMENU hMenu,     //窗口主菜單句柄
  HINSTANCE hInstance, //創(chuàng)建窗口的應(yīng)用程序當前句柄
  LPVOID lpParam     //指向一個傳遞給窗口的參數(shù)值的指針
)


  那么窗口的樣式有哪些呢?

標識 說明
WS_BORDER 創(chuàng)建一般帶邊框的窗口
WS_CAPTION 創(chuàng)建一個帶標題欄的窗口
WS_HSCROLL 創(chuàng)建一個帶水平滾動條的窗口
WS_MAXIMIZEBOX 創(chuàng)建一個帶最大化按鈕的窗口
WS_MINIMIZEBOX 創(chuàng)建一個帶最小化按鈕的窗口
WS_OVERLAPPED 創(chuàng)建一個帶邊框和標題欄的窗口
WS_OVERLAPPEDWINDOW 創(chuàng)建一個帶邊框、標題欄、系統(tǒng)菜單及最大化、最小化按鈕的窗口
WS_POPUP 創(chuàng)建一彈出式窗口
WS_POPUPWINDOW 創(chuàng)建一帶邊框和系統(tǒng)菜單的彈出式窗口
WS_SYSMENU 創(chuàng)建一帶系統(tǒng)菜單的窗口
WS_VSCROLL 創(chuàng)建一帶垂直滾動條的窗口

  當然為了實現(xiàn)具有多種風格的窗口,WINAPI提供了“”來表示并(∪)的意思。例如我們要實現(xiàn)一個即具有垂直滾動條又具有水平滾動條的彈出式窗口時可以輸入:WS_BSCOLLWS_VSCROLLWM_POPUP

④顯示窗口
  以上的操作均由函數(shù)實現(xiàn),顯示窗口當然也不例外。窗口類的顯示由ShowWindow和UpdateWindow函數(shù)實現(xiàn)。應(yīng)用程序調(diào)用ShowWindow函數(shù)在屏幕上顯示窗口,其形式為:


BOOL ShowWindow(hwnd,nCmdShow)

//其中hwnd為窗口句柄,nCmdShow為窗口顯示形式標識


nCmdShow共有六個可選值


標識 說明
SW_HIDE 隱藏窗口
SW_SHOWNORMAL 顯示并激活窗口
SW_SHOWMINIMIZE 顯示并最小化窗口
SW_SHOWMAXIMIZE 顯示并最大化窗口
SW_SHOWNOACTIVE 顯示但不激活窗口
SW_RESTORE 恢復(fù)窗口原來的位置及尺寸

在窗口顯示之后,應(yīng)用程序應(yīng)使用UpdateWindow函數(shù)更新并繪制用戶區(qū),并發(fā)出WM_PAINT消息。它的形式為:


BOOL UpdataWindow(hwnd);
//hwnd為窗口句柄


(未完待續(xù))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平远县| 沾益县| 福安市| 西城区| 土默特右旗| 湘西| 华亭县| 当阳市| 平顺县| 栾城县| 玉环县| 廉江市| 孙吴县| 赤水市| 墨玉县| 奉节县| 京山县| 栾城县| 盐边县| 赤峰市| 钟山县| 准格尔旗| 古浪县| 汽车| 石渠县| 建瓯市| 余江县| 甘孜| 两当县| 南雄市| 石渠县| 南昌县| 海安县| 岢岚县| 个旧市| 望奎县| 乐业县| 和政县| 刚察县| 和政县| 广平县|