Blogtrottr
Take the Style Quiz Join JustFab and get one pair of extraordinary shoes or bag every month, handpicked for you by our fashion experts.
From our sponsors
Re: [請益] Windows OPENGL 多視窗顯示問題(跪求)
Aug 7th 2013, 22:29, by theone777
作者 theone777 (你想要什麼)
看板 Tech_Job
標題 Re: [請益] Windows OPENGL 多視窗顯示問題(跪求)
時間 Wed Aug 7 22:29:52 2013
上次的PO文非常感謝版友的回應 原PO這幾天稍微改了一下code的架構 也改了呼叫控制項的方式 但還是遇到了一些問題 厚顏上來跪請前輩們不吝賜教!!! 預開發: 在主form中提供"開啟圖檔"的功能 (如連結示意圖:
http://ppt.cc/n-Yj 只是我的開發環境改成XP) 在使用者進到上面連結的那個頁面之後(就是一般的Win OS開檔介面) 旁邊會顯示目前所選取檔案(滑鼠單擊 還沒雙擊開啟)的3D圖檔 而且user可以不斷自由選擇想開哪一個圖檔出來看 在user選定預開啟檔案 點選"開啟"Button後 回到主form 主form必須顯示出user剛剛選的3D檔供user觀看 (所以已知不管在哪個對話框 在跑、畫3D檔的那個控制項都是同一個物件) 開發環境: VB6 目前做法: 原PO在主form中提供一個"使用者自訂控制項"去做3D預覽圖 因此.exe在一開啟時 進到主form中 透過UserControl_Show() 自己就把自己畫到主form上 然後在user點選"開檔"的button後 透過呼叫模組CDCallBack()去畫出我的開啟檔案介面 (也就是第一段所附的連結 但旁邊會跟著一個3D預覽圖) 而非自己再硬幹 再自己畫一個form出來 應該說就是拿Win API來改的 在模組CDCallBack()裡面 我用SetParent傳送.hWnd的方式 將原本在主form顯示3D圖的那個自訂的使用者控制項 "掛到"開檔的那個對話框裡面 由於上次遇到資源沒釋放乾淨的痛 這次我就特別去查了一下相關MSDN M$的MSDN網站表示: 可以透過Visible = True/False 來做 New/Delete (MSDN網站提供的相關圖示說明此邏輯:
http://ppt.cc/AuBz) 只要程式執行到Visible = True 它就會自動去呼叫UserControl_Show() 畫出我要的控制項 只要程式執行到Visible = False 它就會自動去呼叫UserControl_Hide() 關掉/清除掉我要的控制項 基於上述理論 因此我就在控制項"掛到"開檔對話框之前 先執行 MyControl.Visible = False => 執行CDCallBack畫出開檔視窗 => 在CDCallBack裡面 先將3D圖的控制項用SetParent掛上去 => 畫好該控制項後(一段segment執行) => 再執行 MyControl.Visible = True => 程式讀到user已經選好要開的檔案並按下開啟鍵 => 在CDCallBack裡面的Case: OKClick中:(就是按下"開啟"Button時) => 先執行 MyControl.Visible = False => 再來 SetParent 將控制項掛回去給主form (此時控制項已經包含了剛剛user所選的3D圖檔資訊) => 再執行 MyControl.Visible = True => Exit CDCallBack 開檔對話框結束 回到主form 遇到的問題(這周修改code後的問題 跟上次PO文不同): 照理來說 user應該可以不斷的去點"開檔"Button來不斷更換他想看的3D圖檔 但原PO目前寫出來的程式是user可以正常開檔並且在開檔對話框中看到預覽圖 只是當user要再更換檔案 按下"開檔"Button第二次、第三次之後的通通都有問題 程式本身沒有當掉 CDCallBack去叫出來的開檔對話框也正常 但是就3D預覽圖都沒東西 連原本主form的也掛了 選定檔案按下"開啟"鍵回到主form後 也是沒有跑3D圖出來給user看 簡單來說就是我的程式目前只能完全正常的跑一次!! 原PO自己的想法: 用設斷點按F8的方式去debug 發現user在主form中第二次按下"開檔"Button時 我的 MyControl.hWnd 會變成0 無論程式碼執行到哪一行 這個值怎麼樣都不會改變 請問為何會這樣呢?? 如果M$上面MSDN的理論是正確的 怎麼照著執行似乎仍出現資源沒釋放乾淨的問題? 跪求前輩們給個方向了 感恩!!!! --
※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.143.159
※ 編輯: theone777 來自: 59.126.143.159 (08/07 22:30) This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html
nbv6d9vomp1hu
線上遊戲排行榜2013/2014,進擊的巨人線上看,candy crush saga外掛,正妹寫真三圍
nbv6d9vomp1hu 發表在 痞客邦 留言 (0) 人氣( )
留言列表