Win32學習(第八天)gdi最後一彈

2021-09-16 13:27:19 字數 2103 閱讀 6324

通過這三天的學習使我對gdi有了進一步的認識,但由於我個人智慧型的有限導致了認識和理解的造成的片面和不足,還請假見諒。

當位圖的資源在在處理主視窗訊息的區域進行響應時,可以採用wm_paint後面新增**的方式,還可以選用按鍵或者滑鼠響應的方法,如下面就是採用滑鼠響應的方法

case wm_lbuttondown:

break;

但是採用這種方式,如果將視窗進入無效區域,位圖資源將會消失,無法進行保持,這時可以通過將其**書寫區域的改變,使其達到不斷重繪位圖,這時需將**放置主函式區域,並將主訊息迴圈改為peekmessage()函式的方式,已達到不斷重繪的效果

//hdc hdc = getdc(g_hwnd);

雙緩衝//hdc hbuffdc = createcompatibledc(hdc);

//hbitmap hbuffbitmap = createcompatiblebitmap(hdc, 1024, 768);//乙個緩衝相容dc

//selectobject(hbuffdc, hbuffbitmap);

資源的載入

//hdc hbkdc = createcompatibledc(hdc);

//hbitmap hbkbitmap = (hbitmap)loadimage(hinst, _t("bk.bmp"), image_bitmap, 0, 0, lr_loadfromfile);//從檔案載入了資源

//selectobject(hbkdc, hbkbitmap);

//hdc hherodc = createcompatibledc(hdc);

//hbitmap hherobitmap = (hbitmap)loadimage(hinst, _t("hero.bmp"), image_bitmap, 0, 0, lr_loadfromfile);//從檔案載入了資源

//selectobject(hherodc, hherobitmap);

//releasedc(g_hwnd, hdc);

//zeromemory(&msg, sizeof(msg));

//while (msg.message != wm_quit)

// // }

// //邏輯

// static int index = 0;

// static float begintimer = timegettime() / 1000.0f;

// float endtimer = timegettime() / 1000.0f;

// static float speed = 0.3f;

// //不管有沒有訊息,都進行迴圈繪製

// hdc = getdc(g_hwnd);

// rect r = ;

// hbrush hr = createsolidbrush(0x00);

// fillrect(hbuffdc, &r, hr);

// bitblt(hbuffdc, 0, 0, 960, 600, hbkdc, 0, 0, srccopy);

//transparentblt(hbuffdc, 0, 0, 90, 88,

// hherodc, 90*index, 88,

// 90,88,

// rgb(255, 255, 255));//把資源畫到目標,可以處理背景色為透明

// if (endtimer - begintimer >= speed)

// // //最後一次把緩衝dc的內容拷貝到主dc

// bitblt(hdc, 0, 0, 1024, 768, hbuffdc, 0, 0, srccopy);

// deleteobject(hr);

// releasedc(g_hwnd, hdc);

//}//deleteobject(hherobitmap);

//deleteobject(hbkbitmap);

//deleteobject(hbuffbitmap);

//deletedc(hherodc);

//deletedc(hbkdc);

//deletedc(hbuffdc);

C 學習第八天

介面 inte ce c 中介面定義的規則 1 介面本身的預設訪問級別為internal,即程式集本身訪問級別 2 介面中方法不能使用任何訪問修飾符 例如 public private internal protected 等修飾。系統自動為其設定為public 3 不能使用virtual修飾 4 ...

JS學習第八天

7.4 for in 使 更加的簡潔 7.5 陣列的應用 1.查詢 a.順序查詢 var a 3,7,11,43,87,5,99,56,82,16 var num number prompt 請輸入要查詢的值 var index 1 最初認為要找的值不在陣列中 for var i in a aler...

Linux C學習第八天

一 運算子與表示式 1.優先順序與結合性 優先順序 運算子的運算順序,優先順序低的先運算 結合性 優先順序相等的情況下,運算子按運算順序計算 2.基本算術運算子 取餘運算,結果的符號取決於運算子左邊那個數。3.型別轉換 強制轉換 在變數前使用括號進行轉換 int a int 1.2 隱式轉換 系統自...