Blogtrottr
批踢踢實業坊 Tech_Job 板
 
Madesmith

Modern handmade. New designers every week.
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

You are receiving this email because you subscribed to this feed at blogtrottr.com.

If you no longer wish to receive these emails, you can unsubscribe from this feed, or manage all your subscriptions
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 xals2q 的頭像
    xals2q

    2015花千骨線上看tv 2016花千骨 花千骨線上看drama q 花千骨線上看drama 仙俠奇緣之花千骨線上看 花千骨線上看tv543 電視劇花千骨線上看 花千骨線上看第一集

    xals2q 發表在 痞客邦 留言(0) 人氣()