[問題] 用windowsDC作圖如何清空

看板C_and_CPP作者 (天霜凝月)時間12年前 (2011/11/26 11:49), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++2010 問題(Question): 不知道GetWindowDC作圖要怎麼清掉圖案 程式碼大概像下面這樣 隨便畫些圖出來 不過不知道怎麼樣清空畫面 他這個好像是直接畫在windows視窗上 所以用cls好像沒有用 不知道要用哪種方法才能把圖弄掉 謝謝 程式碼(Code):(請善用置底文網頁, 記得排版) #include <conio.h> #include <stdio.h> #include <stdlib.h> #include<time.h> #include<windows.h> #include <iomanip> using namespace std; void main() { int i,j; // 獲取一個可供畫圖的DC HDC hdc = GetWindowDC( GetForegroundWindow() ); // 實線畫筆 HPEN hpen1 = CreatePen( PS_SOLID, 4, RGB(0,0,255) ); // 破折畫筆 HPEN hpen2 = CreatePen( PS_DASH, 5, RGB(0,255,0) ); // 實體畫刷 HBRUSH hbrush1 = CreateSolidBrush( RGB(255,0,0)); HBRUSH hbrush2 = (HBRUSH)GetStockObject( NULL_BRUSH ); HBRUSH hbrush3 = CreateSolidBrush( RGB(200,55,0)); HBRUSH hbrush4 = CreateSolidBrush( RGB(150,55,50)); HBRUSH hbrush5 = CreateSolidBrush( RGB(100,105,50)); HBRUSH hbrush6 = CreateSolidBrush( RGB(50,155,50)); HBRUSH hbrush7 = CreateSolidBrush( RGB(100,100,55)); SelectObject( hdc, hpen1 );//選擇筆刷 SelectObject( hdc, hpen1 );//選擇筆刷 SelectObject( hdc, hpen2 ); for(i=0;i<350;i=i+50) for(j=0;j<350;j=j+50) { MoveToEx( hdc, j,350, NULL ); LineTo( hdc,i,0); Sleep(30); MoveToEx( hdc,350 ,j, NULL ); LineTo( hdc,0,i); Sleep(30); } cout<<"程式結束\n"; system("pause"); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.237.62

11/26 11:51, , 1F
簡單的辦法:重新畫一塊同底色的矩型上去...XD
11/26 11:51, 1F

11/26 14:25, , 2F
不就是erase background嗎? 應該是可以透過RedrawWindow()
11/26 14:25, 2F
文章代碼(AID): #1Eq66_5R (C_and_CPP)