VC 中獲取DC的四種方法

2021-06-13 12:54:32 字數 1496 閱讀 2170

一:

hdc hdc;

hdc=::getdc(m_hwnd);加兩個冒號表示我們用的是全域性sdk的函式,否則表示我們有的是cwnd中的函式

::releasedc(m_hwnd,hdc);

二:cdc *pdc=getdc();

releasedc(pdc);

三:cclientdc dc(this);不需要我們去釋放,自己會去釋放;

四:cwindowdc dc(this);阤不需要我們去釋放,好處是可以訪問整個螢幕區域;

關於dc操作的一段**:

cpen pen(ps_solid,1,rgb(255,0,0));

cpen *penold;

penold=dc->selectobject(&pen);

dc->selectobject(penold);

//設定字型

cfont font;

verify(font.createfont(

12, // nheight

0, // nwidth

0, // nescapement

0, // norientation

fw_normal, // nweight

false, // bitalic

false, // bunderline

0, // cstrikeout

ansi_charset, // ncharset

out_default_precis, // noutprecision

clip_default_precis, // nclipprecision

default_quality, // nquality

default_pitch | ff_swiss, // npitchandfamily

"arial")); // lpszfacename

dc->selectobject(&font);

dc->setbkmode(transparent);

dc->setbkcolor(colorref(rgb(0,0,0)));

dc->settextcolor(colorref(rgb(0,123,0)));

dc->textout(targetpoint.x+5,targetpoint.y+5,modecode);

另一些**:

cclientdc dc(pstatusbar);//pstatusbar是乙個狀態條的視窗

cfont *poldfont = dc.selectobject(pstatusbar->getfont());

csize size = dc.gettextextent(m_strmessage); // length of text,獲取了字串的寬度和高度(在目前這種字型下)

int margin = dc.gettextextent(_t(" ")).cx * 2; // text margin,乙個空格的寬度乘以2

dc.selectobject(poldfont);

獲取Class例項的四種方法

獲取class例項有四種方法,前三種方法比較常用,具體描述如下 以下示例都假設運動時類為string類。1 通過執行時類本身的.class屬性 class c1 string.class 2 通過執行時類的物件獲得 string str new string class c2 str.getclas...

獲取手機螢幕的四種方法

android獲取螢幕寬度的4種方法,android4種 方法一 windowmanager wm windowmanager this getsystemservice context.window service int width wm.getdefaultdisplay getwidth i...

JS 獲取元素的四種方法

console.log this.refs.mapcontainer.clientheight content padding 536 console.log this.refs.mapcontainer.offsetheight content padding border 536 console...