Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MFC一問

0 views
Skip to first unread message

~ 永不喪志 ~

unread,
Oct 16, 2002, 6:00:14 AM10/16/02
to
無論是視窗重疊, 大小改變, 或最小最大化...都會引發WM_PAINT的視窗訊息...
它會去呼叫CView衍生類別中的OnDraw()...來進行視窗client window區域中
的重繪動作...你必須將重繪的程式碼寫在OnDraw()中...要不然show出來的圖
被對話視窗重疊的部分就會變成底色...如果繼續移動它...就會像橡板擦的效果
把其他view中的區域都抹去....
另外MFC中並沒有DIB的類別...但一些VC++的書會教你去建立一個CDib的類別
來顯示點陣圖...
還是一點就是一般系統內建的FileDialog都是屬於Modal的型態..也就是會有
內建的OK, Cancel的按鈕 , 無論你是選擇檔案後按ok, 或是在檔案上double click
或是按cancel...都會使對話視窗關閉才對...並不會像你所說選完檔案後仍存在的
現象...
附帶一點..秀點陣圖檔一般都會用Windows API的 StrechDIBits(...)函式...
就不用去set pixels...而且它可用參數選擇顯示區域與位置...甚至讓秀出來的圖
Resize...可至MSDN光碟上查閱詳細說明...

【 在 nomo...@kkcity.com.tw (沉睡的雨...) 的大作中提到: 】
: 我使用MFC開發秀圖程式,使用DIB類別秀圖
: 現在有個很麻煩的疑惑點.....
: 就是我呼叫CFileDialog讓使用者選擇圖檔後
: 我馬上要緊接著把圖Show在我的程式上......
: 可是我Show圖的時候,圖出現後,和FileDialog重疊的地方卻變成空白
: (出現完整的圖後,FileDialog未完全消失,但有一半被覆蓋在圖下)
: 然後FileDialog消失後,我的那片重疊的區域也變成空白....
: 還有只要我的程式縮小後放大,這張圖也會不見....
: 我的直覺是我寫入的DC可能不是真的文件上..所以才會降子...
: 因為用SetPixel就不會發生這種情況(可是他太沒效率了...)
: 附上顯示的片段程式碼
: 這段程式碼是寫在View裡,但是非OnDraw區...
: 我在想是不是我呼叫到的Device並不是我要的呢...
: 請教一下我該如何解決這個棘手的問題...麻煩一下了~
: CClientDC dc(this);
: CDIB *image_show;
: image_show->Draw(&dc, 0, 0);


--
[m [1;33m※來源 : [1;36m 台北科大計中紅樓資訊站 [1;35mredbbs.cc.ntut.edu.tw
[1;32m※FROM : [1;37m140.116.163.110 [m

...蠹書蟲...

unread,
Oct 17, 2002, 6:26:22 AM10/17/02
to
※ 引述《nomo...@kkcity.com.tw (沉睡的雨...)》之銘言:

> 我使用MFC開發秀圖程式,使用DIB類別秀圖
> 現在有個很麻煩的疑惑點.....
> 就是我呼叫CFileDialog讓使用者選擇圖檔後
> 我馬上要緊接著把圖Show在我的程式上......
> 可是我Show圖的時候,圖出現後,和FileDialog重疊的地方卻變成空白
> (出現完整的圖後,FileDialog未完全消失,但有一半被覆蓋在圖下)
> 然後FileDialog消失後,我的那片重疊的區域也變成空白....
> 還有只要我的程式縮小後放大,這張圖也會不見....
> 我的直覺是我寫入的DC可能不是真的文件上..所以才會降子...
> 因為用SetPixel就不會發生這種情況(可是他太沒效率了...)
> 附上顯示的片段程式碼
> 這段程式碼是寫在View裡,但是非OnDraw區...
> 我在想是不是我呼叫到的Device並不是我要的呢...
> 請教一下我該如何解決這個棘手的問題...麻煩一下了~
> CClientDC dc(this);
> CDIB *image_show;
> image_show->Draw(&dc, 0, 0);

建議你將 image_show->Draw(...); 放進 OnDraw()中
那完成fileDialog後一定會去執行OnDraw()
圖就不會被蓋掉了
--
[1;32m※ Origin: [33m交大資工鳳凰城資訊站 [37m<bbs.csie.nctu.edu.tw> [m
[1;31m◆ From: [36mHost5-204-14.pagic.net [m

0 new messages