[問題] win32 關於proc函式

看板C_and_CPP作者 (我愛阿蓉)時間14年前 (2009/12/28 19:24), 編輯推噓0(007)
留言7則, 1人參與, 最新討論串1/2 (看更多)
請教各位 我一直很不解 假如我有個"主視窗" 和一個 "button" 主視窗我利用wc.lpfnWndProc = MainWndProc; 註冊這callback函式 hWnd = CreateWindowEx(...) <=這邊有個hWndParent參數設定NULL 我理解上應該就是主視窗沒有parent 所以傳入null... 而在button的視窗註冊如以下 wc.lpfnWndProc = BtnWndProc; // Callback function 而我在他的WM_CREATE 會呼叫的函式中寫 CreateWindow(...) 這邊的hWndParent我填上BtnWndProc收到的 hwnd 不解的是 這個hwnd 是哪來的??? 我一直想不透 每個視窗都有Proc 函式 而他是以什麼方式定義說我要呼叫哪一個Proc函式 是哪個函式有跟系統說 我現在這視窗的message是送給哪個proc function 我認為是createWindow(裡面填的hwnd) 但是這hwnd是從 上面講的Proc函式傳進來的(傳 進來是啥??) 讓我百思不解.... 而且為啥createWindow要再WM_CREATE裡面做呢? 如果我填了hWndParent 而沒有標上WS_CHILD又會怎麼樣= = 現在有點混亂~~ 主要就是想問 到底是怎麼知道我該處發哪個Proc函式@@ 另外又有一個疑惑... wc.lpszClassName 有設定class name 可是...CreateWindow( LPCTSTR lpClassName, 怎麼又設定一次class name了..... 整個架構好混亂 請指點迷津... 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.64.222 ※ 編輯: QQ29 來自: 122.147.15.66 (12/28 20:01)

12/28 20:57, , 1F
CreateWindow只要呼叫一次就好了呀~ =_=|||
12/28 20:57, 1F

12/28 20:58, , 2F
利用 ShowWindow 顯示視窗~
12/28 20:58, 2F

12/28 20:59, , 3F
GetMessage 跑迴圈收訊息~
12/28 20:59, 3F

12/28 21:02, , 4F
編譯軟體可以產生視窗程式碼,請參考那個就可以了。
12/28 21:02, 4F

12/28 21:07, , 5F
RegisterClass 告知作業系統有這個視窗的存在~
12/28 21:07, 5F

12/28 21:07, , 6F
CreateWindow 是視窗本身的部分~
12/28 21:07, 6F

12/28 21:08, , 7F
所以還要再設定一次 name~
12/28 21:08, 7F
文章代碼(AID): #1BE9LS4z (C_and_CPP)
文章代碼(AID): #1BE9LS4z (C_and_CPP)