有沒有辦法讓 FillRect() 函式生成的矩形留在螢屏上?我正在呼叫這個函式,但它只在螢屏上停留了幾分之一秒就消失了。將其保留在螢屏上的唯一方法是在一個看起來非常低效的 while (true) 回圈中運行它。
void DrawRect(int x, int y, int w, int h, HBRUSH brushColor)
{
RECT rect = { x, y, x w, y h };
FillRect(HDC_Desktop, &rect, brushColor);
}
我不得不問是什么讓這個函式的結果框消失了?我注意到即使在 while (true) 回圈中運行,它有時仍會閃爍。當您的顯示幕重繪 時它會消失還是消失不是此功能所固有的?我的目標是制作一個在螢屏上停留一段時間的矩形。無論是我為它設定一個持續時間還是必須手動洗掉它,但無論是運行一個while(true)回圈以連續在我的螢屏上列印一個矩形的方式都非常低效。
uj5u.com熱心網友回復:
你不應該直接在螢屏 DC 上繪畫!自 Vista (DWM) 以來,這一直無法正常作業,甚至在此之前它也不是一件好事。
您應該創建一個具有WS_POPUP樣式的視窗并在收到訊息時在那里繪制WM_PAINT(不要忘記呼叫BeginPaint/ EndPaint)...
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/530251.html
標籤:C视窗绘画
上一篇:使用串列作為條件洗掉字典的專案
