BROWSEINFO問題,BROWSEINFO的物件成員hwndOwner指的是對話方塊的所有者,這個所有者代表什麼

時間 2022-10-10 13:40:06

1樓:匿名使用者

你好。windows的視窗大致有三類,對應的術語是:層疊視窗(layered window)、彈出式視窗(popup window)和子視窗(child window)。

另外有兩個術語:父視窗(parent window)和所有者視窗(owner window)

父視窗是相對於子視窗而言的。

所有者視窗是相對於彈出式視窗而言的。

你說的hwndowner就是指目錄對話方塊的所有者視窗是誰,因為目錄對話方塊是彈出式對話方塊,因此它所使用的術語是所有者視窗而不是父視窗。

行為表現:

1)子視窗只能活動與父視窗的客戶區中,絕對不可能跑出客戶區。

2)相對於子視窗而言的父視窗,如果他的上面沒有其他父視窗了,那麼他就是一種層疊視窗。顧名思義,層疊視窗之間是可以互相疊在一起的。

3)彈出式視窗其實就是一種模式對話方塊,如果他有所有者視窗的話,那麼當彈出式視窗沒有被關閉時,所有者視窗是無法被我們啟用的(即你點一下視窗中的按鈕沒反應,標題欄是淺色的)。當彈出式視窗未指定所有者視窗的話,那它的行為表現和層疊視窗差不多。就是彈出式視窗沒有被關閉的話,也不會影響到其他視窗的活動。

因此,當browseinfo結構的hwndowner等於null的話,你可以看下目錄對話方塊開啟後,並不會影響到我們自己視窗的活動,但如果hwndowner指定了我們自己的視窗的話,那麼當目錄對話方塊開啟後,我們的視窗是無法活動的。

由此,**lpbi.hwndowner = getdlgitem(idc_button)->getsafehwnd();其實是錯的,

要制定也必定是這樣:

lpbi.hwndowner = getsafehwnd();//把對話方塊的控制代碼賦給hwndowner,不是按鈕的控制代碼。

還有是hwndowner一定要指定的,不能用null,否則兩個視窗之間就沒有交流了,至於這個要怎麼解釋有點複雜,不多說了。和執行緒掛起、函式阻塞等概念有關。沒有所有者視窗,2個視窗之間的交流必須完全靠程式設計師自己來負責。

另外,你這裡的**還是沒有初始化lpbi啊。

c++問題??高手來下啊~

selenium webdriver 執行測試常見問題

關於mfc程式設計,選擇資料夾對話方塊問題求大神幫助

2樓:朱牙

這個browserinfo就是選擇對話方塊的資訊(比如要選擇檔案的型別,起始目錄,還有就是儲存路徑的字串等等)lpitemidlist這個暫時沒看出有什麼用。

工作問題問題,工作問題中的問題

既然知道是自己性格的問題,太好說話,老好人當的久了,別人就會習慣成自然,把使喚你當成理所當然。所以最根本的就是要改變自己,從學會說不開始,可以試一試哦。馬善被人騎,人善被人欺。一建議觀察平時別人是怎麼說話辦事的 跟誰關係好 和誰關係不好 想一下這是為什麼利益鏈是什麼。這些東西很多都要靠自己去領悟 一...

電腦問題問題,獎勵100分,電腦問題 配件 問題,獎勵100分

貌似你的是支援533的吧,沒有577這個頻率。理論上667是可以向下相容的,你開機的時候主機板有叫沒?請說具體點 ps 533的記憶體2手商有售 一直都沒有ddr577和ddr667記憶體,只有ddr2 533和ddr2 667,現在要買,基本上買800或1066。那你買條單面的試試吧,估計是雙面的...

心理問題性格問題,性格心理問題?

你身處激烈的商場中拼搏,精神高度緊張,就會產生這樣的心理反應。這是心理問題,與性格沒有多大關係。解決的辦法主要是 自己解放自己 解放自己有兩個內容 1 必須自己給自己減壓 怕什麼?事情不都是人做的,為什麼我就這麼緊張,自己給自己過不去?2 主動去迎接困難。工作遇到困難,要告誡自己 別緊張,總有辦法解...