第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

越想越不明白,到底是怎么回事??該怎么解決?

越想越不明白,到底是怎么回事??該怎么解決?

我很想辦WNDCLASS的設(shè)定 和 WndProc函數(shù)分別放在兩個(gè)文件中但問(wèn)題出來(lái)了 參數(shù)怎么傳遞啊?有人說(shuō)因?yàn)槭腔卣{(diào)函數(shù),所以不必管它,但不管不行啊?還有 第一個(gè)參數(shù)HWND hWnd的hWnd不設(shè)可以不? 設(shè)了好像也沒(méi)什么用?因?yàn)檎Z(yǔ)句HWND hwnd = CreateWindow(...);在WNDCLASS定義之后,而WndProc的調(diào)用是在wndClass.lpfnWndProc = WndProc;語(yǔ)句中,此時(shí)還沒(méi)有窗口句柄呢!參數(shù)中有一個(gè),而后面又定義了一個(gè),不是多此一舉啊?
查看完整描述

3 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

回調(diào)函數(shù)用于異步操作中,就是讓系統(tǒng)等待某個(gè)事件發(fā)生,并且告訴系統(tǒng),事件發(fā)生后用哪個(gè)函數(shù)去處理,這個(gè)函數(shù)就叫回調(diào)函數(shù),事件發(fā)生后,系統(tǒng)自動(dòng)調(diào)用這個(gè)函數(shù)。而程序可以去做其它事件,不用等待事件。
這里WndProc這個(gè)函數(shù)就是告訴系統(tǒng),接收到消息后就這個(gè)函數(shù)來(lái)處理。
HWND hWnd 這個(gè)參數(shù)不能不設(shè),因?yàn)橄到y(tǒng)調(diào)用這個(gè)函數(shù)時(shí)是認(rèn)為有這個(gè)參數(shù)的,你不設(shè),調(diào)用就會(huì)出錯(cuò),這是回調(diào)函數(shù),是系統(tǒng)來(lái)調(diào)用,而不是你自己去調(diào)用。
你不用管這個(gè)問(wèn)題,雖然WNDCLASS定義是在CreateWindow之前,但CreateWindow之前是沒(méi)有消息的,所以不會(huì)調(diào)用WndProc,也就不會(huì)出錯(cuò)。wndClass.lpfnWndProc = WndProc;只是讓系統(tǒng)知道消息函數(shù)的地址在哪里,在沒(méi)有調(diào)用DispatchMessage(&msg); 之前是不會(huì)調(diào)用WndProc的。
這樣解釋不是很好,希望你能理解。

查看完整回答
反對(duì) 回復(fù) 2022-11-08
?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊

你好:
(1)WNDCLASS的設(shè)定 和 WndProc函數(shù)是可以不放在同一文件里的,你在定義wndclss之前聲明一下窗口過(guò)程處理函數(shù)即可,把函數(shù)的定義放在另一個(gè)文件里

(2)定義HWND hwnd;
hwnd=CreateWindow();
這樣你并沒(méi)有重復(fù)定義啊

(3)在wndlass定義的參數(shù)中是不需要定義窗口句柄的,值是定義了一個(gè)你在第一步聲明的過(guò)程函數(shù)地址即可,你可以好好在看看它的參數(shù)

(4)窗口過(guò)程函數(shù)的地址在窗口類注冊(cè)的時(shí)候傳給了操作系統(tǒng),當(dāng)這個(gè)窗口收到消息后,消息dispatch()給了操作系統(tǒng),操作系統(tǒng)根據(jù)窗口過(guò)程的地址就找到了處理函數(shù) ,這就是操作系統(tǒng)的回調(diào):即你定義函數(shù)體,操作系統(tǒng)幫你調(diào)用


查看完整回答
反對(duì) 回復(fù) 2022-11-08
?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

windowproc函數(shù)的四個(gè)參數(shù)分別對(duì)應(yīng)消息的窗口句柄,消息代碼,消息代碼的兩個(gè)參數(shù)。一個(gè)程序可以有多個(gè)窗口,第一個(gè)參數(shù)標(biāo)識(shí)了消息接收的特定窗口。在窗口過(guò)程內(nèi)部使用switch/case語(yǔ)句來(lái)確定窗口過(guò)程接收什么消息,以及怎么處理。代碼如下:
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch(uMsg)
{
case WM_CHAR:
break;
case WM_PAINT:
break;
case WM_CLOSE:
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
這個(gè)函數(shù)是系統(tǒng)調(diào)用的,系統(tǒng)自會(huì)把參數(shù)傳遞過(guò)去的,你就不用考慮了,只要按格式寫(xiě)就行了。


查看完整回答
反對(duì) 回復(fù) 2022-11-08
  • 3 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)