MFC改變視窗尺寸之後視窗重畫

時間 2025-06-16 15:25:09

1樓:網友

就得在ondraw()函式里寫的啊:

void cyourview::ondraw(cdc* pdc)cyourdoc* pdoc = getdocument();

assert_valid(pdoc);

todo: add draw code for native data here

cstring str;

點選了%d次",;

pdc->textout(100,100,str);

2樓:網友

1、在cchildframe::precreatewindow(createstruct& cs)函式中,加了,可以實現了。

2、響應子視窗的wm_size訊息,在訊息中呼叫 invalidate()

3、if(invalidate();

mfc如何保證在視窗上畫的東西在重畫時畫上去, 就是像畫圖一樣即使改變視窗大小, 也保留字跡.

3樓:來自月岩儀態萬千的比目魚

要把繪圖資料儲存起來(或者在變數中),當改變視窗大小時,會重繪。或者手動呼叫重繪。

mfc視窗大小改變裡面內容沒了

4樓:網友

windows程式設計是訊息響應式的,要想mfc程式繪圖不消失,必須響應wm_paint訊息,在view類中,也就是必須在ondraw裡面繪圖,沒有別的辦法。

一般來說,要麼是在ondraw裡面呼叫你的繪圖函式,要麼,修改你的繪圖函式為變數設定,然後在ondraw裡面完成繪圖。

mfc視窗中繪製的影象在改變視窗的大小或者拉動滾動條時會重新繪製,請問如何修改才能讓他不重新繪製?

5樓:網友

思路是錯誤的。不重繪,如果最小化後再回來,就變成空的了。

你要解決的是座標問題,關注函式screentoclient的使用,合理記錄座標,讓重繪在正確的位置就可以了。

自動儲存啥概念?儲存dc,需要在繪製之前匯入乙個空的bitmap,這樣在繪製之後儲存這個點陣圖就可以了。

6樓:歸悅欣

重繪是正常的,關鍵是在重繪的時候個點位置座標不變。

7樓:小陸仁

2次隨機的位置不同導致的,設定個變數去控制下。

8樓:icesword冰刃

看看孫鑫的教程吧,好久不寫vc了。裡面寫的很清楚,還有例項。

mfc 中使用gdi+繪圖,剛開始不顯示,改變視窗大小或者最小化再還原後才顯示,請問是為什麼?

9樓:匿名使用者

這個情況偶也不知道啦。不過按你說的應該是你設定斷點之後又發生了什麼使直線沒儲存住。

當改變視窗大小或者最小化視窗再還原後才顯示,也就是說程式發生重繪後才會正常顯示繪製的內容》那就是斷點之後沒有呼叫到重繪,仔細找一找吧。

mfc 雖然invalidate可以重繪視窗,但是它是先把螢幕弄白再重畫

10樓:網友

出現閃爍的原因不是因為弄白再畫。

而是一毫秒內重新整理次數過多。

防止閃爍的方法是用雙緩衝。

既先把所有物件畫到dc2上,全部畫好後再一次從dc2畫到dc上。

cpaintdc dc(this);

cdc dc2;/;

11樓:網友

把背景設定成其他顏色。

雙緩衝繪製。

mfc 怎麼顯示視窗

這樣的需求還是比較一般的,直接使用模態對話方塊就可以了 include cdialog1dlg onbutton1 能吧問題描述的清楚點嗎,什麼是 顯示文字的那個視窗。不是對話方塊 補充 建立乙個工程的時候,直接執行看到的視窗其實也是對話方塊。新增背景 1.使用picture control控制項,...

MFC中如何改變STATIC TEXT的大小

我說個簡單的方法 加個成員變數cfont font 在oninitdialog中font.createpointfont 120,l 楷體 120表示12號字型 當然static 的id要改,idc stagetdlgitem idc sta setfont font 字型大小還是視窗大小?mfc ...

MFC如何改變訊息框按鈕的文字屬性

messagebox 上的按鈕文字並不能直接修改,一種方法可以使用鉤子,間接修改按鈕上的文字,另一種就是自己做乙個類似 messagebox 功能的對話方塊。下面的例子是使用鉤子做的,關鍵 如下 定義乙個鉤子控制代碼 hhook hmsgboxhook 定義cbt鉤子過程 lresult callb...