www国产黄色_天堂一区二区三区_亚洲图片一区二区_欧美日本不卡

首頁 > 編程 > Java > 正文

WinAPI簡單入門

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

                    不要覺得奇怪,雖然我們擁有眾多“所見即所得”的編程方式來開發眾多界面精美的應
用程序,這些可視化的編程環境提供了大量的類庫和控件,但是在開發者享受方便的同時,
他們的手腳已經不知不覺的受到了限制,有很多深入到Windows內部的操作它們無法完成,
為什么?因為所用的類庫不支持。

  事實上這些類庫與控件都是架構在Window API的基礎上面的,API即 Application
Programming Interface -- 應用編程接口 的縮寫,它不僅為應用程序所調用,同時也是
Windows的一部分,Windows自身的運行也調用這些API函數。要了解如何使用API就必須了
解一些Windows的運行機制。

  簡單地說,Windows是由事件驅動的搶占式多任務操作系統。事件驅動是相對于過程驅
動而言的,它改變了原來文件的順序執行方式;Windows既然是多任務系統,就必須能同時
處理多個事件,系統為應用程序生成一個消息隊列,消息在上面被張貼和發送,應用程序只
要從其消息隊列中取出消息,然后一一執行就可以了。

  現在,我將使用最最基本的范例程序 HelloWin 來說明WIN32 API的運行機制

首先,一個程序一定要有進入點,Win32 App的進入點函數的名稱是WinMain,它的原型如下
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)


hInstance是所謂的“實例句柄”,它是一個數值,當程序在Windows下運行的時候,它被用
來唯一的標示這個程序,雖然用戶可能同時運行多個同一個程序,即運行多個“實例”,我
們可以看到,每一個實例都有不同的hInstance值。

hPrevInstance,簡單地說就是沒用…它是存在于16位Windows程序中的,在編寫
Windows 9x/NT/2000 程序的時候,總應該是NULL。

szCmdLine是一個指針,指向一個以0為終結的字串,里面包含傳給該程序的命令行參數,
如果想要讓程序處理命令行,那么這個參數就有用了。

iCmdShow參數是一個數值,指示窗口將如何被顯示,這個數值由在Windows下運行該程序的
程序所決定,通常是SW_SHOWNORMAL。

接下來是注冊一個窗口類,窗口總是從窗口類的基礎上創建的,窗口類用以標示處理窗口消
息的窗口過程,注冊窗口類時使用 RegisterClassEx() 函數,它只需要一個參數,一個指向
類型為 WNDCLASSEX 的結構指針。

具體注冊初始是這樣的:
WNDCLASSEX wcex;

wcex.cbSize = sizeof(WNDCLASSEX);     //結構的大小

wcex.style = CS_HREDRAW | CS_VREDRAW; //類風格
wcex.lpfnWndProc = (WNDPROC)WndProc;  //窗口類的窗口過程
wcex.cbClsExtra = 0;            //在類結構中預留的空間
wcex.cbWndExtra = 0;           //在Windows內部保存的窗口結構中預留的空間
wcex.hInstance = hInstance;        //程序的實例句柄
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_EXAMPLE);  //程序圖標
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);         //結構的大小
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);    //指定窗口的背景顏色
wcex.lpszMenuName = (LPCSTR)IDC_EXAMPLE;         //菜單
wcex.lpszClassName = szWindowClass;             //類名,和程序名相同
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);    //也是程序圖標

return RegisterClassEx(&wcex);

接下來,定義一個HWND,然后使用 CreateWindow() 函數,原型如下:
HWND CreateWindow(
  LPCTSTR lpClassName,    // 窗口類名
  LPCTSTR lpWindowName,  // 窗口標題
  DWORD dwStyle,       // 窗口風格
  int x,             // 初始x
  int y,             // 初始y
  int nWidth,          // 窗口寬
  int nHeight,         // 窗口高
  HWND hWndParent,     // 父窗口句柄
  HMENU hMenu,       // 菜單句柄
  HINSTANCE hInstance,   // 實例句柄
  LPVOID lpParam       // 創建參數
);

在 CreateWindow() 調用返回之后,Windows內部已經創建了這窗口。但是窗口并為顯示,
還需要兩個調用,一個是 ShowWindow(hwnd, iCmdShow):第一個參數是剛剛創建的窗口
句柄,第二個參數是傳遞給WinMain的nCmdShow;另一個是 UpdateWindow(hwnd) ,導致
客戶區域被繪制。

接下來,程序通過執行一塊被稱為“消息循環”的代碼從消息隊列中取出消息

while (GetMessage(&msg, NULL, 0, 0))
{
  if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
  {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
}

消息循環以 GetMessage 開始,它從消息隊列中取出一條消息,只要從消息隊列中取出消
息的 Message 域不為 WM_QUIT,GetMessage 就返回一個非零值,否則將導致程序退出
消息循環,然后程序中止,返回 msg 結構的 wParam 參數。在循環中,TranslateMessage
將 msg 結構的內容進行修改,而 DispatchMessage 找出準備調用的窗口過程。

上面進行的僅僅是準備性工作:注冊窗口類、創建窗口、顯示窗口、進入消息循環取出消息
而實際的動作都發生在窗口過程中。

LRESULT CALLBACK WndProc(HWND hWnd, //剛剛創建的窗口句柄
  UINT message,           //得到的消息
  WPARAM wParam,
  LPARAM lParam           //消息的進一步詳細的參數
)

在程序中窗口過程通常是命名為 WndProc 的函數,其實窗口過程可以任意的命名,一個
Windows程序可以包含多個窗口過程,一個窗口過程總是與調用了 RegisterClassEx 注冊的
窗口類相關聯,CreateWindow 函數根據窗口類來創建窗口,但是一個窗口類可以被用來創
建多個窗口。


消息收到之后,接下來應該根據消息的不同來進行處理
switch(message)
{
 case …:
 …
 …

HelloWin程序只需要處理兩條消息,即 WM_PAINT 和 WM_DESTROY。

WM_PAINT 消息在Windows程序中的地位極其重要,當窗口客戶區的一部分或者全部變為
“無效”,必須進行刷新的時候,將由這條消息通知程序。

為什么客戶區域會變得無效呢?在創建窗口的時候,整個客戶區都是無效的,因為還沒有畫
任何的東西。第一條 WM_PAINT 消息指示窗口過程在窗口上面畫一些東西;還有在用戶改
變了窗口的大小之后,客戶區域重新變得無效,除此之外最小化窗口之后再還原、窗口的一
部分被覆蓋,都會引發這條消息。

WM_DESTROY消息則是當用戶按下“關閉”按鈕的時候被觸發,標準的處理方法是調用
PostQuitMessage 將一條 WM_QUIT 消息插入消息隊列,這將使得 GetMessage 函數調用
返回0,從而退出消息循環,結束整個程序。

其實,從上面可以看出,Windows程序的這種運行機制并不是很難理解,真正困難的是不知
道調用什么函數去完成想要的操作,以及怎樣調用那些函數,從而靈活的進行底層API程序
開發,這是一個循序漸進的積累過程,沒有捷徑可走的。請各位一定要記住。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

www国产黄色_天堂一区二区三区_亚洲图片一区二区_欧美日本不卡
久久免费视频观看| 伊人婷婷欧美激情| 亚洲国产婷婷香蕉久久久久久99| 国产精品久久国产愉拍| 国产精品美乳在线观看| 黑丝一区二区| 成人黄色免费网站在线观看| 在线高清一区| 91精品国产一区二区三区动漫| 亚洲精品四区| av在线不卡一区| 美女精品自拍一二三四| 欧美精品二区三区四区免费看视频| 免费看精品久久片| 久热这里只精品99re8久 | 神马欧美一区二区| 国产91精品精华液一区二区三区| 国精产品一区一区三区mba桃花| 91精品国产高清| 91麻豆国产自产在线观看亚洲| 91精品国产九九九久久久亚洲| 精品久久久亚洲| 国产精品入口日韩视频大尺度| 在线亚洲欧美| 欧美在线视频二区| 91丨九色丨国产丨porny| 免费无码毛片一区二三区| 亚洲女同女同女同女同女同69| 污污网站免费看| 欧美色图在线观看| 99自拍视频在线| 日韩视频在线免费观看| 青青草成人影院| 成人免费看黄网站| 国产精品一区一区三区| 91黄色在线看| 午夜精品久久久久久久久久| 97人妻精品一区二区三区免| 亚洲国产欧美自拍| 国产精品久久久久久久久久久久久久久 | 日韩在线观看免费网站| 日韩精品水蜜桃| 97免费资源站| 91丨porny丨国产| 女同激情久久av久久| 91精品国产综合久久福利软件 | 91影院在线观看| 精品视频一区二区在线| 欧美影院一区二区| 久久亚洲精精品中文字幕| 欧美野外猛男的大粗鳮| 久久精品国产99国产精品| 欧美黑人经典片免费观看| 精品av在线播放| 五月天婷婷色综合| 日本欧美中文字幕| 国内精品写真在线观看| 亚欧在线免费观看| 亚洲精品一区二区三区福利| 奇米亚洲欧美| 蜜桃麻豆www久久国产精品| 亚洲桃色在线一区| 国产精品国产三级国产专业不| 欧美成人性色生活仑片| 视频一区二区三区入口| 亚洲激情图片| 91久久一区二区| 深夜福利一区| 999热视频| 亚洲欧洲日韩在线| 永久免费看mv网站入口| 手机免费看av网站| 欧美日韩色一区| 国产suv精品一区二区四区视频| 国产精品久久久久久久美男| proumb性欧美在线观看| 一区二区在线免费观看视频| 国产一区二区精品丝袜| 先锋影音久久久| 国产精品少妇在线视频| 亚洲激情中文字幕| 亚洲国产mv| 99热亚洲精品| 日韩电视剧在线观看免费网站| 久久久久蜜桃| youjizz.com在线观看| 91精品国产aⅴ一区二区| 99精品视频精品精品视频 | 影音先锋人妻啪啪av资源网站| 久久这里有精品视频| 久久一区二区三区四区五区| 亚洲一级免费观看| 日韩亚洲综合在线| 激情图区综合网| 韩国一区二区三区四区| 欧美大片网站在线观看| 丁香亚洲综合激情啪啪综合| 巨胸大乳www视频免费观看| 欧美在线视频一区二区| 国产日韩欧美激情| 深夜日韩欧美| 国产一区二区久久久| 日韩欧美在线字幕| 成人羞羞视频播放网站| 91免费版看片| 亚洲国产精品成人精品| 视频一区欧美日韩| 97精品人人妻人人| 国产91在线播放九色快色| 国产精品乱子久久久久| 精品视频在线一区| 日韩午夜视频在线观看| 欧美tickling网站挠脚心| 伊人成人网在线看| 国产探花在线看| 97精品视频在线播放| 国产女人aaa级久久久级| 电影91久久久| 亚洲午夜激情| 亚洲国产天堂久久综合| 久久av资源站| 能直接看的av| 另类欧美小说| 欧美精品一区二区三区很污很色的| 久久精品三级| 素人fc2av清纯18岁| 97超碰最新| 欧美久久高跟鞋激| 日韩成人免费在线| 亚洲女优在线观看| 日产国产精品精品a∨| 亚洲成人av在线播放| 蜜桃av一区二区| 最新日韩免费视频| 日本一区二区三区四区高清视频 | 欧美高清视频一区| 欧美本精品男人aⅴ天堂| 蜜桃视频在线一区| √天堂中文官网8在线| 天堂一区二区三区| 永久免费精品影视网站| 久久一二三国产| 自拍偷拍一区| 我要看一级黄色大片| 国产精品久在线观看| 色婷婷亚洲综合| 天堂蜜桃一区二区三区 | 青草成人免费视频| 欧美性色视频在线| 久久精品道一区二区三区| xxx在线播放| 日本免费高清一区| 日韩中文字幕在线看| 亚洲人成小说网站色在线| 亚洲国产老妈| 免费看污片的网站| 国产日本欧美在线| 久久久亚洲欧洲日产国码aⅴ| 亚洲国产婷婷综合在线精品| 米奇777在线欧美播放| 极品魔鬼身材女神啪啪精品| www插插插无码免费视频网站| 69久久夜色精品国产69乱青草| 日韩欧美第一页| 精品一区二区三区免费视频| 免费一级欧美片在线观看网站| 欧美日韩在线视频一区二区三区| 国产精品爽爽ⅴa在线观看| 日韩一二在线观看| 久久精品男人的天堂| 午夜亚洲福利| 在线观看美女av| 精品久久久久久久免费人妻| 91网站在线看| 国产视频久久久| 一区二区三区中文免费| 首页国产欧美日韩丝袜| 成人h动漫免费观看网站| 午夜一级免费视频| 日本成人看片网址| 韩国v欧美v日本v亚洲| 欧美高清hd18日本| 久久亚洲精品国产精品紫薇| 久久国产影院| 中文乱码人妻一区二区三区视频| 国产成人精品免费看在线播放| 欧美高清视频在线| 在线中文字幕不卡| 国产白丝网站精品污在线入口| 色爱综合网欧美| 老司机福利av| 成人黄色大片网站| 国产免费一区视频观看免费| 亚洲区中文字幕| 亚洲国产精品一区二区www在线 | 手机亚洲手机国产手机日韩| 无码人妻久久一区二区三区蜜桃| 色狠狠久久av五月综合|| 色综合久久88色综合天天看泰| 在线这里只有精品| av网站免费线看精品| 亚洲二区在线| 日韩一区二区三区色| 欧美人与性动交α欧美精品| 亚洲欧美日韩国产yyy| 国产精品自产拍在线观| 亚洲视频在线免费观看| 亚洲国产一区二区三区| 国产呦萝稀缺另类资源| 日韩成人精品一区| 亚洲人与黑人屁股眼交| 亚洲综合欧美在线| 日本一区二区三区免费观看| 欧美一区二三区| 欧美精品在线观看一区二区| 亚洲蜜臀av乱码久久精品| 另类综合日韩欧美亚洲| 欧美日韩一区二区综合| 香蕉视频久久久| 爽爽爽在线观看| 天天想你在线观看完整版电影免费| 国产精品电影在线观看| 日韩中文在线中文网三级| 欧美日本一道本| 亚洲欧洲日韩一区二区三区| 国产精品亚洲一区二区三区在线| 99精品久久| 欧美猛男同性videos| 亚洲熟女少妇一区二区| 在线播放黄色av| 亚洲自偷自拍熟女另类| 日韩久久久久久久久久久久久| 国产精品96久久久久久又黄又硬| 亚洲欧美制服另类日韩| 91精品国产一区二区三区香蕉| 一区二区三区91| aaa欧美日韩| 中文精品在线| 欧美成人日韩| 国内黄色精品| 精品国产亚洲一区二区三区在线| 免费黄色激情视频| 亚洲av网址在线| av噜噜在线观看| 男人和女人啪啪网站| 久久久久久久久影视| 久久久久高清| 久久av免费| 日韩一级特黄| 国产又黄又粗又猛又爽的| 少妇极品熟妇人妻无码| 久久婷婷国产91天堂综合精品| 亚洲午夜精品久久| 任我爽在线视频精品一| 成人黄色在线免费观看| 国产精品极品尤物在线观看| 国产98色在线| 久久久久国产视频| 中文字幕精品—区二区| 精品国产污污免费网站入口| 欧美一区二区三区免费大片| 日本电影亚洲天堂一区| 亚州成人在线电影| 一区二区三区精密机械公司| 一区二区三区视频在线看| 国产欧美日本一区二区三区| 91亚洲永久精品| 久久久久国色av免费看影院| 成人午夜电影小说| 国产老妇另类xxxxx| 另类的小说在线视频另类成人小视频在线 | 亚洲一区二区三区xxx视频| 欧美激情小视频| 欧美激情xxxxx| 欧美成人久久久| 久久91亚洲精品中文字幕| 亚洲一区av在线播放| 国产亚洲人成网站在线观看| 一区二区三区视频网| 亚洲人成毛片在线播放| 精品国产一区二区在线观看| 91精品国产一区二区三区蜜臀| 欧美久久久久久久久久| 51久久夜色精品国产麻豆| 7777女厕盗摄久久久| 欧美电影一区二区三区| 亚洲成人精品久久久| 日韩极品精品视频免费观看| 亚洲欧美国产高清va在线播| 中文字幕国内精品| 久久久91精品| 韩国福利视频一区| 欧美黑人视频一区| 欧美在线视频导航| 国产精品视频大全| 91精品国产综合久久久久久丝袜| 四虎永久国产精品| 超级碰在线观看| 北条麻妃在线观看| 日本少妇xxxx软件| 老司机福利在线观看| 欧美午夜三级| 激情五月色综合国产精品| 99精品在线观看| 国产精品五区| 日韩成人午夜电影| 99久久免费国产| 国产精品不卡视频| 亚洲综合一二区| 欧美一区二区三区四区五区| 精品中文视频在线| 国产综合在线看| av成人午夜| 成年人免费观看的视频| 男插女免费视频| 国产精品探花在线播放| theav精尽人亡av| 亚洲综合资源| 九九久久电影| 国产一级一区二区| 国产高清不卡一区| 国产精品女主播在线观看| 午夜精品一区在线观看| 亚洲在线播放电影| 性欧美videosex高清少妇| 久久人人爽人人爽人人av| 992kp免费看片| 老司机深夜福利网站| 欧美变态挠脚心| 91视频综合| 久久超碰97人人做人人爱| 欧美—级在线免费片| 在线观看网站黄不卡| 亚洲精品视频在线观看视频| 国外成人性视频| 国产一区二区高清视频| av免费观看大全| 三级视频网站在线观看| www.久久东京| 99热精品在线观看| 91蝌蚪porny| 欧美一区二区三区日韩| 欧美大片欧美激情性色a∨久久| 99精品欧美一区二区三区| 日韩国产一级片| 水蜜桃av无码| 久9re热视频这里只有精品| 久久久久综合| 国产精品久久三| 日韩三级中文字幕| 国产精品777| 中文字幕一区二区三区最新| 亚洲欧美激情小说另类| 欧美一二三区精品| 91成人天堂久久成人| 五月婷婷一区| 亚洲熟妇无码av| 久久不见久久见中文字幕免费| 亚洲免费精品| 亚洲一级av无码毛片精品| av网站免费在线播放| 日韩极品在线| 国产成人综合网| 在线观看日韩电影| 欧美大片在线看免费观看| 一区二区三区在线视频看| 性xxxxxxxxx| 精品国产鲁一鲁****| 麻豆国产欧美日韩综合精品二区 | 久久久久毛片免费观看| 奇米影视一区二区三区小说| 亚洲一区二区在线免费看| 日韩精品一区二区三区老鸭窝| 国产精品美女在线观看| 欧美亚洲综合久久| 狠狠躁夜夜躁人人爽超碰91| 美女av一区二区三区| 欧美精品一区二区三区在线四季 | 亚洲午夜精品久久久久久性色| 国产精品成人一区二区三区| 九热视频在线观看| 一区二区三区欧洲区| 国产成人综合自拍| 欧美日韩日日摸| 欧美一区二区.| 黄色成人免费看| 99ri日韩精品视频| 成人午夜免费电影| 欧美成人高清电影在线| 亚洲一区二区三区sesese| 国产999免费视频| 成人婷婷网色偷偷亚洲男人的天堂| 久久69国产一区二区蜜臀| 欧美高清性hdvideosex| 国产美女精品免费电影| 91高清国产视频| 成人区精品一区二区婷婷| 国产亚洲精品资源在线26u| 免费看污黄网站在线观看| 亚洲国产高清视频|