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

首頁 > 編程 > C++ > 正文

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

2019-09-06 23:33:36
字體:
來源:轉載
供稿:網友

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

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

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

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

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


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


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


3、GetStockObject函數
應用程序通過調用GetStockObject函數來獲取系統提供的背景刷,它的原型為:


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


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

RegisterClass(&wndclass);
//wndclass為窗口的類結構(前面第二篇文章已經介紹過了)


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


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


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

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

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

④顯示窗口
  以上的操作均由函數實現,顯示窗口當然也不例外。窗口類的顯示由ShowWindow和UpdateWindow函數實現。應用程序調用ShowWindow函數在屏幕上顯示窗口,其形式為:


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


nCmdShow共有六個可選值


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

在窗口顯示之后,應用程序應使用UpdateWindow函數更新并繪制用戶區,并發出WM_PAINT消息。它的形式為:


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


(未完待續)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 呼伦贝尔市| 西林县| 华坪县| 墨竹工卡县| 股票| 泌阳县| 合阳县| 长兴县| 建阳市| 竹山县| 申扎县| 安图县| 德格县| 晋城| 天祝| 静海县| 仙居县| 磐石市| 伊金霍洛旗| 星座| 利津县| 乾安县| 昌平区| 左云县| 永川市| 化德县| 宁阳县| 凤冈县| 沾益县| 肥乡县| 东辽县| 迁西县| 金山区| 林口县| 新巴尔虎右旗| 连南| 遵义市| 亚东县| 广丰县| 宁明县| 卓尼县|