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

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

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這個暫時沒看出有什麼用。

問題問題 !煩惱! 問題問題!!

呵呵,應該有點好感吧,談不喜歡哦!但我覺得你放棄他的好,他如果真的喜歡你會反過來追你的。談到利用,這男人就不會對你是單純的愛了,放棄吧小妹妹,這種男人要不得,還是找個純純的小男生初戀一番吧,在你向他表白的時候他的態度已經看得出來在你說出來以前他可能沒喜歡過你,不過有人向他表白,他會有些驚喜吧,可能就...

問題,問題

如果是大面積的,建議到 知道意見社 置頂帖跟帖反饋,o o樓主您好,有以下幾種情況會許可權。系統抽風 提問者設定 回答者範圍 只有在範圍之內的使用者,才可以回答 未登入及4級以下 包括4級 使用者,無法回答已有采納答案 包括提問者採納和採納 的提問。短時間內大量回答同一方面的提問 提問中帶有多個連線...

戀愛問題 愛情問題 痛苦問題

愛情不需要回報,只需要付出就足夠了.愛她就相信她.其實你們倆都該調整下心態.你說的那個 晴天霹靂 我覺得沒什麼,她的前男友是誰,無關緊要吧,你應該想,這麼好的女孩子他都不要,是他不懂得珍惜,只要自己能好好珍惜就可以了.不要為了這點事,而成為今後的悔恨,不要等失去了才懂得珍惜.既然這樣的話 你可以找一...