關於對映模式和雙緩衝的一些細節

2021-07-07 01:35:21 字數 1412 閱讀 2124

正常使用對映模式的話會是這樣

setmapmode( hdc, mm_anisotropic );

setviewportextex( hdc, 1, 1, null );

setwindowextex( hdc, 1, -1, null );

setviewportorgex( hdc, rc.right/2, rc.bottom/2, null );

::rectangle(hdc,-20, 20, 20,-20) ;

setmapmode( hdc, mm_anisotropic );

setviewportextex( hdc, 1, 1, null );

setwindowextex( hdc, 1, 1, null );

setviewportorgex( hdc, 0, 0, null );

結果:

按照上面的**執行,可以看到,矩形是全部顯示在正中間,如果用到雙緩衝的話會怎麼樣?

::bitblt(hdcbackbuffer, 0,0,rc.right, rc.bottom, null, 0,0, whiteness) ;

setmapmode( hdc, mm_anisotropic );

setviewportextex( hdc, 1, 1, null );

setwindowextex( hdc, 1, -1, null );

setviewportorgex( hdc, rc.right/2, rc.bottom/2, null );

::rectangle(hdcbackbuffer,-20, 20, 20,-20) ;

::bitblt(hdc, 0,0,rc.right, rc.bottom, hdcbackbuffer, 0,0, srccopy) ;

setmapmode( hdc, mm_anisotropic );

setviewportextex( hdc, 1, 1, null );

setwindowextex( hdc, 1, 1, null );

setviewportorgex( hdc, 0, 0, null );

結果:

可以看到只顯示了四分之一

為什麼會只顯示四分之一呢?

原因:hdcbackbuffer對應的點陣圖大小是有限的,在這個裝置上繪製矩形時是在左上角進行的,只能畫四分之一,多餘的部分直接被捨棄了,當把這個裝置上的影象之間srccopy到hdc這個裝置上時,這四分之一個矩形就被座標對映到中間了

關於textfield的一些細節

我們有時需要定製化uitextfield物件的風格,可以新增許多不同的重寫方法,來改變文字欄位的顯示行為。這些方法都會返回乙個cgrect結構,制定了文字字段每個部件的邊界範圍,甚至修改placeholder顏色,字型。1.textview textfield游標顏色可通過設定tintcolor屬性...

關於溝通的一些細節

1 當你不同意對方的觀點時,我們通常會說 我認為 我覺得 其實你可以說 我們從另外乙個個角度 一下 2 影響溝通效果三要素 文字語言 傳達資訊 聲音語言 傳達感覺 肢體語言 傳達態度 3 問問題的技巧 問簡單慣性問題 問對方無抗拒點問題 問對對方有好處的問題 讓對方說是的問題 讓對方連續說是的問題 ...

關於溝通的一些細節

1 當你不同意對方的觀點時,我們通常會說 我認為 我覺得 其實你可以說 我們從另外乙個個角度 一下 2 影響溝通效果三要素 文字語言 傳達資訊 聲音語言 傳達感覺 肢體語言 傳達態度 3 問問題的技巧 問簡單慣性問題 問對方無抗拒點問題 問對對方有好處的問題 讓對方說是的問題 讓對方連續說是的問題 ...