看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《EdisonX (閉上眼的魚)》之銘言: : 為避免誤會愈積愈深,回個文。 : 另我知一直重覆引用、針對推文者的每句話做過度解讀是不禮貌之事, : 唯此篇我認為只有這麼做,才可撥雲見日, : 若有得罪,先行道歉。 何需道歉?討論區本來就是討論用的,針對每句話表示您做學問很認真謹慎,應該的啊。 論禮貌嘛,老實說這個版最有禮貌的人應該就是你了。 有時候看到有些人的文章,剛好是我能幫忙的,但看到對方一副高高在上,好像大老闆 出題要給手下機會表現的這種,我通常不太想理; 但每每看到前輩發文的風采時,哪怕小弟再怎樣沒把握,也想略獻棉薄之力。 == 其實我覺得前面 E 大您講得那些,沒什麼問題,主要是這邊有爭議吧:
Ting1024:1. Dialog跟Form要處理的情境不一樣。不能混為一談04/25 03:42
fanntone:T大說的沒錯 這兩種情況不一樣,所以在創專案時特別分成04/25 23:36
fanntone:consloe Dialog Formview這三種(VC6)04/25 23:38
我比較武斷,我覺得原討論串的發文者應該是在做練習,還停留在 WndClass、WndProc 的 學習階段,很多名詞、東西都搞不清楚,就好像一個客戶太外行,不知道我們可以 替他寫出什麼東西一樣,無法給出具體的需求,今天說好的,也許明天就要否決。 所以建議他用 Dialog 沒有錯,告訴他可以用 MFC CFormView 也沒有錯,這只是一個提供 菜單給客人的過程,我不認為哪邊說的有問題。 當然如果絕對不用 MFC,那一開始就不必考慮 CFormView。 如果可以用 MFC,那要用哪種,只能原 PO 自己決定,不是說你要寫瀏覽器就一定 要用 CFormView,不能用 CDialog,只是多數情況用 CFormView 會比較好, 也不是說你要寫小算盤,就一定要用 CDialog,這沒有強制規定的。 == 另外 CreateWindow 那邊是我的錯,當時一看到 E 大說用 CreateWindow("buttton",..) 我反射想到的是 Popup window,這類視窗建立後出現的位置,不會像 child window 一樣,一定要限制在 hWndParent 的客戶區內。整個桌面哪個位置都可以出現,那我 以為 E 大正在說這個東西,所以形容它是剛好建立在 hWndParent 上空而已。 當然也不是說一個程式客戶區內的視覺元件,就一定是 WS_POPUP 或 WS_CHILD, 不是一定要寫成子視窗,比如 MFC 有一類控件 (Control) 叫 CControlBar (工具列、 狀態列...),他們平常待在程式裡面,這時候是 WS_CHILD,為停駐狀態 (Docking), 那你可以把他拉到程式外面,變成獨立的 floating 視窗,此時又 變成 WS_POPUP 狀態,座標位置可以隨便移動。 所以完整的講法是,你用 CreateWindow 建立控制項時,有可能是 WS_CHILD (子視窗) 也有可能是 WS_POPUP,端看你希望該控件是 floating 或 docking 狀態。 == 補充一下,前面推文我說只有部份 WndClass 裡面可以放東西,這講得太簡陋, 本來懶得詳細說明,大家跳過我裝死就好,但都回文了就重新解釋。 普通自己寫的 WndClass 所建立出來的視窗,他客戶區裡面一片空白,你可以用 CreateWindow 放一些東西進去客戶區,但這不是它原本直接支援的。 而 dialog、rebar、staus bar、dialog bar、list view 這類東西才是我想說的,他們 有直接支援一些介面,讓你放一些東西進去,而不必使用 CreateWindow 來自己 設定座標位置去建立。 我是想讓原發文者,自己去看看有哪些 contorl 有支援放東西的介面,而不要什麼 東西都 CreateWindow 去土法煉鋼。 == 在補充一個 resource 那邊,在 Dialog 裡面是可以使用部份資源表裡的東西, 主要就是底層的 CreateDialog 函數會依造資源的內容來建立視窗,但是像 字串資源,你不是 Dialog 也可以用,畢竟 resource 只是跟 PE 檔掛勾,只要用 resource 相關的 Windows API 就可以讀取,甚至你的程式不是 GUI 也無所謂。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.128.199 ※ 編輯: purpose 來自: 124.8.128.199 (04/26 03:18) ※ 編輯: purpose 來自: 124.8.128.199 (04/26 03:19)
EdisonX:感謝指教 ^^ 04/26 15:02
s3748679:有股熱血的感覺~~~ 04/26 19:53
yoll522:謝謝你的說明,這幾天我在網路上學的那篇api,我已經大概 05/01 20:23
yoll522:知道該怎麼做了 05/01 20:23