精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C++如何創建窗口程序?Windows API永不過時

系統 Windows
當Windows操作系統啟動一個程序時,它調用的就是該程序的WinMain函數( 實際是由插入到可執行文件中的啟動代碼調用的)。 WinMain是Windows程序的入口點函數,與DOS程序的入口點函數main的作用相同,當WinMain 函數結束或返回時,Windows應用程序結束。

什么是Windows API編程

  • 應用編程接口
  • Application Programming Interface

WinMain函數

當Windows操作系統啟動一個程序時,它調用的就是該程序的WinMain函數( 實際是由插入到可執行文件中的啟動代碼調用的)。 WinMain是Windows程序的入口點函數,與DOS程序的入口點函數main的作用相同,當WinMain 函數結束或返回時,Windows應用程序結束。

int WINAPI WinMain(
HINSTANCE hInstance, //應用程序實例
HINSTANCE hPrevInstance, //上一個應用程序實例
LPSTR lpCmdLine, //命令行參數
int nShowCmd //窗口顯示的樣式
);
  • WINAPI:是一個宏,它代表的是__stdcall(注意是兩個下劃線),表示的是參數傳遞的順序:從右往左入棧,同時在函數返回前自動清空堆棧。
  • hInstance:表示該程序當前運行的實例的句柄,這是一個數值。當程序在Windows下運行時,它唯一標識運行中的實例(注意,只有運行中的程序實例, 才有實例句柄)。一個應用程序可以運行多個實例,每運行一個實例,系統都會給該實例分配一個句柄值,并通過hInstance參數傳遞給 WinMain 函數。
  • hPrevInstance:表示當前實例的前一個實例的句柄。在Win32環境下,這個參數總是NULL,即在Win32環境下,這個參數不再起作用。
  • lpCmdLine:是一個以空終止的字符串, 指定傳遞給應用程序的命令行參數,相當于C或C++中的main函數中的參數char *argv[]
  • nShowCmd:表示一個窗口的顯示,表示它是要最大化顯示、最小化顯示、正常大小顯示還是隱藏顯示。
#include <Windows.h>
#include <cstdio>
#pragma comment(linker, "/subsystem:\"console\" /entry:\"WinMainCRTStartup\"")

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow) {

printf("%p %p %p\n", hInstance, hPrevInstance, GetModuleHandleA(NULL));
printf("%d %d\n", nCmdShow, SW_SHOWNORMAL);

printf("%s\n", lpCmdLine);

MessageBoxA(NULL, TEXT("第一個 Windows API 程序"), TEXT("黑貓編程"), MB_OK);

return 0;
}

字符集

#include <Windows.h>
#include <cstdio>
#include <cstring>
#include <clocale>

int main() {

const char* str1 = "Abc中國";
printf("%s %d\n", str1, strlen(str1));

_wsetlocale(LC_ALL, L"chs");
const wchar_t* str2 = L"ABC中國文字";
wprintf(L"%s %d\n", str2, wcslen(str2));

MessageBoxW(NULL, TEXT("hello cat."), L"coding", MB_OK);

return 0;
}

Windows 編程模型

一個完整的Win32程序(#include <windows.h>),該程序實現的功能是創建一個窗口,并在該窗口中響應鍵盤及鼠標消息,程序的實現步驟為:

  • WinMain函數的定義
  • 創建一個窗口
  • 進行消息循環
  • 編寫窗口過程函數

項目創建

窗口程序模板代碼

#include <Windows.h>

// 自定義窗口過程回調函數
LRESULT CALLBACK MyWindowProc(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) {

switch (Msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}

return DefWindowProcA(hwnd, Msg, wParam, lParam);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {

// 注冊窗口類
WNDCLASS wnd;

wnd.cbClsExtra = 0;
wnd.cbWndExtra = 0;

wnd.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));
wnd.hCursor = LoadIcon(NULL, IDC_ARROW);
wnd.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wnd.lpfnWndProc = MyWindowProc;
wnd.lpszClassName = TEXT("blackcat");
wnd.lpszMenuName = NULL;
wnd.style = CS_HREDRAW;
wnd.hInstance = hInstance;

RegisterClassA(&wnd);

// 創建窗口 返回之前發送 VW_CREATE
HWND hwnd = CreateWindowA(
TEXT("blackcat"),
TEXT("黑貓編程"),
WS_OVERLAPPEDWINDOW,
100, 100, 300, 300, NULL, NULL, hInstance, NULL
);

// 顯示窗口
ShowWindow(hwnd, nShowCmd);

// 更新窗口
UpdateWindow(hwnd);

// 消息循環 收到 VM_QUIT 退出
MSG msg;
while (GetMessageA(&msg, hwnd, 0, 0)) {
TranslateMessage(&msg);
DispatchMessageA(&msg);
}

return 0;
}

線程和窗口

在WIN32中,消息隊列是與線程(Thread)相關的,一個線程只能有一個消息隊列(queue)與之相對應。當一個線程里面首次調用User32.dll或GDI32.dll中的函數時,系統會為該線程創建一個消息隊列,否則就沒有消息隊列。

在一個線程中可以產生多個窗口,所以每個窗口課共用一個線程消息隊列,所有產生給某個窗口的消息,都先由創建這個窗口的線程處理,窗口在任何線程中都可以創建,但消息循環必須要和創建窗口在同一線程,否則窗口將無法從DispatchMessage()獲取任何消息,為了使窗口接受這些消息,線程必須有自己的循環。

消息分類

  • 標準消息:所有以WM_開頭的消息,除了WM_COMMAND
  • 命令消息:來自菜單欄、工具欄、按鈕或者快捷鍵的消息。WM_COMMAND
  • 通告消息:由控件產生的消息,例如按鈕單擊、列表項的選擇等,為了向其父窗口通知事件的發生。

SendMessage和PostMessage

PostThreadMessage


責任編輯:華軒 來源: 今日頭條
相關推薦

2020-10-09 11:06:38

C語言桌面語法

2020-02-17 11:35:34

工程師技術程序員

2012-12-10 13:53:55

ITCIOGartner

2021-09-08 09:27:52

軟件工程師技能算法

2023-09-27 23:24:50

C++鏈表

2020-12-11 17:42:13

混合多云

2015-04-27 09:33:02

2010-01-28 10:33:10

C++開發程序

2025-09-10 09:10:00

2009-08-14 11:00:16

C#創建Windows

2010-01-25 13:31:27

C++程序

2015-02-04 10:49:13

Visual C++C++Windows API

2010-01-28 09:44:08

C++應用程序

2010-01-15 17:18:57

C++源程序

2009-08-25 09:39:21

創建C# Window

2010-01-22 14:28:24

使用C++

2020-05-26 13:25:00

語言編譯代碼

2011-07-20 17:23:29

C++持久對象

2010-01-26 15:51:06

C++變量

2010-01-25 16:41:08

C++應用程序
點贊
收藏

51CTO技術棧公眾號

国产对白叫床清晰在线播放| 国产精品视频久久久久久久| 91麻豆精品国产综合久久久| 亚洲欧美成人一区二区三区| 国产精品一区在线播放| 91video| 成人激情诱惑| 欧美精品一区二| 免费看污黄网站| 在线不卡日本v二区707| 久久久精品免费免费| 91中文字幕在线| 国产又黄又猛又粗又爽| 小说区亚洲自拍另类图片专区 | 欧美自拍视频在线| 国产美女久久久久久| 欧美性生活一级片| 欧美一区二区三区四区高清| 成人综合视频在线| 日p在线观看| 久久久噜噜噜久久中文字幕色伊伊| 91系列在线播放| 国产美女www| 999亚洲国产精| 久久久精品在线| www.av天天| 免费萌白酱国产一区二区三区| 欧美日韩国产美| 国产精品亚洲a| 波多野结依一区| 尤物视频一区二区| 亚洲春色在线| 伦理片一区二区三区| 高清免费成人av| 91久久精品美女高潮| 国产偷人爽久久久久久老妇app| 日韩图片一区| 欧美夫妻性视频| 曰本女人与公拘交酡| 欧美激情777| 亚洲色图35p| 魔女鞋交玉足榨精调教| 林ゆな中文字幕一区二区| 欧美一区二区视频在线观看2020| 91蝌蚪视频在线观看| 是的av在线| 欧美日韩精品中文字幕| 热99这里只有精品| www.九色在线| 亚洲国产综合色| 成人免费观看在线| 国产丝袜在线观看视频| 一区二区激情小说| 欧美视频在线观看视频| 欧美人与牲禽动交com| 一区二区三区国产精品| 免费cad大片在线观看| av网址在线看| 一区二区三区四区视频精品免费| 国产精品h视频| a级网站在线播放| 亚洲一区二区三区精品在线| 一二三四视频社区在线| 国模精品视频| 色偷偷久久一区二区三区| 日韩在线xxx| 久久国内精品| 欧美一区二区三区喷汁尤物| 国产又黄又嫩又滑又白| 韩国女主播一区二区三区| 亚洲国产精品久久久久久| 国产一卡二卡三卡四卡| 婷婷亚洲精品| 尤物精品国产第一福利三区| 国产午夜精品理论片| 欧美日韩调教| 91av网站在线播放| 波多野结衣在线观看视频| 美女在线观看视频一区二区| 91啪国产在线| 色婷婷综合视频| 9l国产精品久久久久麻豆| 欧美另类一区| 国产网站在线免费观看| 亚洲一级不卡视频| 国产精品免费成人| 亚洲男人在线| 亚洲精品99999| 国产性猛交xx乱| 欧美日本精品| 国产精品va在线播放| 国产不卡精品视频| 久久综合av免费| 亚洲一区二区三区欧美| 大香伊人久久| 欧美无乱码久久久免费午夜一区| 无人码人妻一区二区三区免费| 美女一区二区在线观看| 日韩在线观看免费全集电视剧网站| 全程偷拍露脸中年夫妇| 国产偷自视频区视频一区二区| 国产精品视频成人| 亚洲国产精品一| 中文字幕免费不卡在线| 男人插女人视频在线观看| 粉嫩91精品久久久久久久99蜜桃| 精品日韩在线观看| 成人在线手机视频| 亚洲欧洲一级| 亚洲伊人久久综合| 国产精品二线| 亚洲mv大片欧洲mv大片精品| 一区二区在线免费看| 日本亚洲不卡| 欧美国产日本高清在线| 国产精品成人久久久| av资源网一区| 国产成人亚洲综合无码| 不卡亚洲精品| 亚洲人成免费电影| 国产无遮挡又黄又爽又色| 国模少妇一区二区三区| 五月天丁香综合久久国产| 深夜福利视频一区二区| 精品国产一区二区三区久久影院| 很污很黄的网站| 久久人人97超碰国产公开结果| 成人羞羞视频免费| 麻豆网站在线免费观看| 欧美在线免费观看视频| 网站免费在线观看| 国产综合网站| 97在线资源站| 黄色在线观看网站| 欧美日韩和欧美的一区二区| a天堂中文字幕| 久久久蜜桃一区二区人| 久久99精品久久久久久秒播放器 | 91精品国产91久久| 亚洲国产精品国自产拍久久| 亚洲日本在线天堂| 亚洲天堂伊人网| 久久国产综合| 国产欧美韩国高清| 亚洲成人三级| 欧美日韩国产一区二区三区地区| 丁香六月激情综合| 麻豆精品精品国产自在97香蕉| 亚洲欧洲中文| 最新亚洲国产| 久久成人在线视频| 精品久久久久久亚洲综合网站| 亚洲人吸女人奶水| 极品人妻一区二区| 亚洲国产日韩在线| 韩日午夜在线资源一区二区| 色是在线视频| 亚洲精品一区在线观看香蕉| 91porny九色| 国产精品久久久久一区二区三区共| 色噜噜狠狠一区二区| 国产精品久久久久无码av| 91九色综合久久| 午夜成年人在线免费视频| 日韩三级电影网址| 精品91久久久| 久久精品一区二区三区不卡牛牛 | 在线成人免费网站| 中文字幕av资源| 亚洲男同性视频| 无码人妻精品一区二区三| 国产欧美日韩综合一区在线播放| 欧美高清视频一区二区三区在线观看| 午夜精品久久久久久久久久蜜桃| 一色桃子一区二区| 国产suv一区二区三区88区| 亚洲xxxx在线| 国产美女情趣调教h一区二区| 亚洲成年人在线播放| 国产精品男女视频| 中文在线一区二区 | 亚洲欧美视频一区二区三区| 欧美理论一区二区| 国产精品777777在线播放| 久久久久久69| 国产大片在线免费观看| 日韩三级视频在线观看| 欧美a视频在线观看| 国产精品久久国产精麻豆99网站| 久久发布国产伦子伦精品| 国产精品女主播一区二区三区| 日韩一区国产在线观看| 亚洲国产高清在线观看| 欧美一级电影久久| 婷婷在线视频观看| 亚洲国产精品大全| 一级黄色录像大片| 精品成人久久av| 人人澡人人澡人人看| 97se亚洲国产综合自在线观| 午夜国产福利在线观看| 99在线精品免费视频九九视| 中国成人在线视频| 天堂一区二区三区四区| 亚洲综合最新在线| 性高爱久久久久久久久| 欧美肥老妇视频| 日本美女在线中文版| 日韩精品中文字幕视频在线| 国产日韩欧美视频在线观看| 欧美日韩视频在线| 欧美日韩一级在线观看| 欧美国产精品久久| 亚洲中文字幕无码av| 国产一区二区三区在线观看免费| 18岁视频在线观看| 亚洲精品系列| 国产成年人在线观看| 欧洲福利电影| 久久久久久久久四区三区| 婷婷综合国产| 成人国产精品免费视频| 欧美aaa大片视频一二区| 91国产精品视频在线| 图片区小说区亚洲| 久久久精品视频成人| www.中文字幕久久久| 亚洲日韩欧美视频一区| 国产精品国产高清国产| 精品福利视频一区二区三区| 午夜精品久久久久久久99老熟妇| 欧美欧美欧美欧美首页| a片在线免费观看| 在线免费观看日本欧美| 亚洲欧美另类在线视频| 亚洲超碰精品一区二区| 久久久久亚洲av无码专区| 亚洲免费在线播放| 国产高潮流白浆| 亚洲情趣在线观看| 午夜精品久久久久99蜜桃最新版 | 日韩免费电影一区二区| 久久91精品| 欧洲精品在线一区| 国产精品密蕾丝视频下载| 欧美午夜免费| 欧美日韩xxxx| 亚洲不卡中文字幕| 国产区精品区| 亚洲精品一区二区三| 色999国产精品| 黄色www在线观看| 一区二区影视| 国产乱淫av片杨贵妃| 亚洲精品欧洲| 精品久久久久久中文字幕2017| 日本伊人色综合网| 奇米视频7777| 国产精品亚洲а∨天堂免在线| 亚洲精品一区二区18漫画| 成人做爰69片免费看网站| 又黄又爽的网站| 久久人人爽人人爽| youjizz亚洲女人| 亚洲天堂免费看| 久久午夜无码鲁丝片午夜精品| 亚洲国产精品一区二区www在线| 91久久国产视频| 色哟哟日韩精品| 国产一区二区三区四区视频| 日韩欧美国产一区二区在线播放 | 两根大肉大捧一进一出好爽视频| 久久中文字幕一区二区三区| 亚洲 欧美 另类人妖| 国产麻豆精品一区二区| 性欧美丰满熟妇xxxx性久久久| 久久久久久久久久久久久夜| 在线观看天堂av| 亚洲资源在线观看| 一区二区三区在线观看av| 欧美日韩一级片网站| 精品人妻一区二区三区换脸明星 | 午夜综合激情| 日韩av在线中文| 成人av免费网站| 国产性猛交xx乱| 午夜婷婷国产麻豆精品| 久久久久久av无码免费看大片| 日韩亚洲欧美一区| 精品推荐蜜桃传媒| 久久成人亚洲精品| 色尼玛亚洲综合影院| 亚洲www永久成人夜色| 日韩av资源网| 国产成人精品免费看在线播放 | 日本一区高清| 久久成人18免费网站| av高清不卡| av色综合网| 欧美亚洲精品在线| 青青青国产在线观看| 久久9热精品视频| 黄色正能量网站| 一区二区高清免费观看影视大全| 亚洲大片免费观看| 欧美成人精品福利| 伊人在线视频| 日韩美女激情视频| 高清日韩中文字幕| 亚洲自拍偷拍一区二区三区| 久久这里有精品15一区二区三区| 国产精品日日摸夜夜爽| 国产精品福利一区二区三区| 91视频免费网址| 精品88久久久久88久久久| 麻豆视频免费在线观看| 国产99视频精品免视看7| 欧美成a人免费观看久久| www.午夜色| 麻豆免费精品视频| 性欧美精品中出| 欧美日韩另类在线| 少妇人妻一区二区| 欧美激情xxxx性bbbb| 9999精品| 在线播放 亚洲| 精品一区二区国语对白| 丁香激情五月少妇| 日本高清不卡在线观看| 青青草免费观看免费视频在线| 高清亚洲成在人网站天堂| 亚洲三级在线| 伊人情人网综合| 久久精品国产免费看久久精品| 国产jk精品白丝av在线观看| 欧美日韩午夜剧场| 日韩专区一区二区| 欧美一级淫片aaaaaaa视频| 激情小说亚洲图片| 91免费黄视频| 成人18视频日本| 日韩在线视频免费播放| 亚洲激情电影中文字幕| 久草在线资源福利站| 国产一区自拍视频| 99精品视频免费观看| 一级特级黄色片| 欧美天堂在线观看| 欧美成人综合在线| 国产精品国产三级国产专播精品人 | 成人少妇影院yyyy| 国产中文字字幕乱码无限| 欧美zozo另类异族| 高潮在线视频| 欧洲国产精品| 韩国成人在线视频| 精品99久久久久成人网站免费| 精品久久久久av影院| 久久影院午夜精品| 日韩精品一区二区三区色偷偷| 日本色综合中文字幕| 日韩一卡二卡在线观看| 欧美一区二区三区免费在线看 | 国产成人一区二区三区| 欧美肉体xxxx裸体137大胆| 中文字幕在线综合| 亚洲精品国产精华液| 国产成人三级在线观看视频| 欧美亚洲视频在线观看| 不卡一区2区| 老司机av网站| 欧美午夜片在线免费观看| 国产高清自拍视频在线观看| 成人中文字幕在线观看| 欧美午夜一区| 亚洲一级中文字幕| 欧美日韩国产欧美日美国产精品| 日本色护士高潮视频在线观看 | 涩视频在线观看| 日韩欧美中文在线| 日本中文字幕在线观看| 国产精品日韩二区| 日韩福利视频导航| 欧美国产在线看| 精品一区二区电影| 伊人久久综合网另类网站| 一卡二卡三卡视频| 国产精品私人自拍| 欧美性猛交 xxxx| 国产美女精品视频| 91久久夜色精品国产九色| 极品蜜桃臀肥臀-x88av| 精品国产乱码久久久久久久久| 忘忧草在线www成人影院| 毛片av在线播放| 国产蜜臀av在线一区二区三区| 亚洲精品免费在线观看视频| 国产精品99久久久久久久久久久久 | 国产suv精品一区二区33| 欧美日韩国产二区|