??? 何為對話框。就是用來和你對話的框框。既然是和你對話。自然要得到一個對話的結(jié)果。哈……
?
??? Windows的對話框是一個經(jīng)過一定封裝的窗口。(這個封裝了不得,你連消息都要IsDialogMessage^_^)。
?
??? 對話框在你點擊關(guān)閉按鈕的時候會產(chǎn)生一個 菜單事件(也有稱呼為命令事件) 反正就是 WM_COMMAND里的。LOWORD(wParam) 值為2 這個2就是 IDCANCEL。
?
??? 對話框創(chuàng)建,并不立即顯示。因為你還要決定它是用模態(tài)顯示,還是用非模態(tài)…………。至于非模態(tài),我看和窗口差不了多少。
?
??? 在我的設(shè)計里面,模態(tài)對話框有自己的消息循環(huán)。模態(tài)對話框點擊關(guān)閉按鈕不會關(guān)閉窗口而僅僅產(chǎn)生一個 IDCANCEL事件。所有的東西都必須你的程序確認里,顯式關(guān)閉它。調(diào)用 對話框.顯示模態(tài)()。會有一個模態(tài)對話框出來。程序會在這里停頓(不要問我為啥。哈哈。因為進入了一個新的消息循環(huán)……)模態(tài)對話框關(guān)閉的時候??梢詡鬟f一個返回值。這就是我們告訴對話框?qū)υ捊Y(jié)果的途徑。哈哈…….如下:
?
??? ? 對話框返回值=對話框.顯示模態(tài)();
????? 對話框關(guān)閉后,這里的返回值就是你要得到的“對話結(jié)果了”
?
????? 對話框不能銷毀,當然。你也可以銷毀它。但是 自從創(chuàng)建后,。你用 顯示() 關(guān)閉模態(tài)()。對話框都不會銷毀。所以對話框你只需要創(chuàng)建1次??梢远啻问褂谩?/p>
?
????? 易語言的一個bug,。繼承類顯式調(diào)用被覆蓋的基類的方法的時候。如果這個類封裝在模塊里。則無論如何也只能調(diào)用到類自身。重復調(diào)用一個函數(shù)的后果很嚴重。無限遞歸。直到棧溢出!
?
????? 這個bug讓我很受傷。意味著我的庫因為易的一個bug而無法發(fā)布。永遠停留在調(diào)試版階段。希望公司有關(guān)方面能夠重視起來。