看板 C_and_CPP 關於我們 聯絡資訊
請教各位 我一直很不解 假如我有個"主視窗" 和一個 "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)
johnhmj:CreateWindow只要呼叫一次就好了呀~ =_=||| 12/28 20:57
johnhmj:利用 ShowWindow 顯示視窗~ 12/28 20:58
johnhmj:GetMessage 跑迴圈收訊息~ 12/28 20:59
johnhmj:編譯軟體可以產生視窗程式碼,請參考那個就可以了。 12/28 21:02
johnhmj:RegisterClass 告知作業系統有這個視窗的存在~ 12/28 21:07
johnhmj:CreateWindow 是視窗本身的部分~ 12/28 21:07
johnhmj:所以還要再設定一次 name~ 12/28 21:08