浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » EDA/PLD

vc中如何使用設(shè)備描述表

發(fā)布時間:2008/8/23 0:00:00 訪問次數(shù):919

  windows 程序在屏幕、打印機或其它設(shè)備上畫圖時,它并不是將像素直接輸出到設(shè)備上,而是將圖繪制到由設(shè)備描述表表示的邏輯意義上的"顯示平面"上去。設(shè)備描述表(dc)是windows中的一種數(shù)據(jù)結(jié)構(gòu),它包含gdi需要的所有關(guān)于顯示界面情況的描述字段,包括相連的物理設(shè)備和各種各樣的狀態(tài)信息。在windows畫圖之前,windows程序從gdi獲取設(shè)備描述表句柄(hdc),并在每次調(diào)用完gdi輸出函數(shù)后將句柄返回給gdi。本文將對如何獲得和釋放 hdc以及 cdc及其派生類的使用方法進行演示說明。

下載示例工程 dcdemo 具體說明:

1、按鈕 idc_getdc_apinull的函數(shù)

void cdcdemodlg::ongetdcapinull()
{ hdc hdc=::getdc(null);
::movetoex(hdc,0,0,null);
lineto(hdc,200,20);
::releasedc(null,hdc); }  

  該段代碼具體演示了如何使用api 函數(shù)getdc(null),取得屏幕的hdc.并進行畫圖。 hdc getdc(hwnd hwnd); //功能:取得hwnd窗口的設(shè)備描述表句柄。當hwnd參數(shù)為null時,取得整個屏幕的設(shè)備描述表句柄。 movetoex和lineto演示在dc上畫一條直線記住,最后調(diào)用releasedc釋放hdc資源。 int releasedc ( hwnd hwnd,//你要控制的那個窗口的句柄,如果你在getdc函數(shù)傳遞的是null,現(xiàn)在還要傳遞null。 hdc hdc //dc的句柄 ); 編譯運行程序,按下按鈕,發(fā)現(xiàn)屏幕的左上角處畫了一條直線。

2、按鈕 idc_getdc_api的函數(shù)

void cdcdemodlg
::ongetdcapi()
{ hdc hdc=::getdc(m_hwnd);
::movetoex(hdc,0,0,null);
lineto(hdc,200,50);
::releasedc(m_hwnd,hdc); }
 
  這段代碼與前一段代碼唯一的區(qū)別是getdc的參數(shù)不再是null,而改為cwnd的成員變量m_hwnd,即對話框窗口的句柄。對比兩段代碼運行結(jié)果,深入體會api函數(shù) getdc。

3、按鈕idc_getdc_cwnd的函數(shù)

void cdcdemodlg::ongetdccwnd()
{ cdc *pdc=getdc();
pdc->moveto(0,0);
pdc->lineto(200,100);
releasedc(pdc); }   

  該段代碼演示使用mfc cwnd類的 getdc函數(shù)和releasedc的方法,使用該方法在程序窗口中畫圖非常方便。為了避免獲取和釋放設(shè)備描述表所帶來的麻煩,mfc提供了一些cdc派生類,如cpaintdc,cclientdc,cwindowdc,這些類被設(shè)計為可直接進行實例化。各個類的構(gòu)造函數(shù)和析構(gòu)函數(shù)調(diào)用相應(yīng)的函數(shù)捕獲和釋放設(shè)備描述表,從而使得更加方便簡捷。

4、按鈕idc_cclientdc的函數(shù)

void cdcdemodlg::oncclientdc() {  
 cclientdc dc(this);  
 cbrush brush(rgb(255,0,0));  
 dc.fillrect(crect(0,0,100,100),&brush); }
 
  該段代碼演示了 cclientdc的具體使用方法,通過測試可以看出和 cclientdc對象相對應(yīng)的設(shè)備描述表是窗口的客戶區(qū) 。 cpaintdc類是從cdc類派生出來的,在構(gòu)造時自動調(diào)用cwnd::beginpaint,析構(gòu)時調(diào)用cwnd::endpaint。通常cpaintdc用來響應(yīng)wm_paint消息,一般應(yīng)用在onpaint函數(shù),對窗口的客戶區(qū)進行操作。

5、按鈕idc_cwindowdc的函數(shù)

void cdcdemodlg::oncwindowdc()
{ cwindowdc dc(this);
cpen pen(ps_solid,3,rgb(0,255,0));
cpen *poldpen=dc.selectobject(&pen);
dc.moveto(0,0);
dc.lineto(200,200);
dc.selectobject(poldpen); }

  運行并觀察畫線的起始位置?梢钥闯鯿windowdc對象和整個窗口相對應(yīng)。

6、按鈕idc_pointer的函數(shù)

void cdcdemodlg::onpointer()
{ cwindowdc *pdc;
pdc=new cwindowdc(this);
pdc->moveto(0,0);
pdc->lineto(200,250);
delete pdc; }   

  這段代碼演示了如何在堆中創(chuàng)建指向cdc派生類的指針,再利用該指針進行畫圖,最后請使用delete pdc; 釋放指針。

  歡迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)(www.dzsc.com)



  windows 程序在屏幕、打印機或其它設(shè)備上畫圖時,它并不是將像素直接輸出到設(shè)備上,而是將圖繪制到由設(shè)備描述表表示的邏輯意義上的"顯示平面"上去。設(shè)備描述表(dc)是windows中的一種數(shù)據(jù)結(jié)構(gòu),它包含gdi需要的所有關(guān)于顯示界面情況的描述字段,包括相連的物理設(shè)備和各種各樣的狀態(tài)信息。在windows畫圖之前,windows程序從gdi獲取設(shè)備描述表句柄(hdc),并在每次調(diào)用完gdi輸出函數(shù)后將句柄返回給gdi。本文將對如何獲得和釋放 hdc以及 cdc及其派生類的使用方法進行演示說明。

下載示例工程 dcdemo 具體說明:

1、按鈕 idc_getdc_apinull的函數(shù)

void cdcdemodlg::ongetdcapinull()
{ hdc hdc=::getdc(null);
::movetoex(hdc,0,0,null);
lineto(hdc,200,20);
::releasedc(null,hdc); }  

  該段代碼具體演示了如何使用api 函數(shù)getdc(null),取得屏幕的hdc.并進行畫圖。 hdc getdc(hwnd hwnd); //功能:取得hwnd窗口的設(shè)備描述表句柄。當hwnd參數(shù)為null時,取得整個屏幕的設(shè)備描述表句柄。 movetoex和lineto演示在dc上畫一條直線記住,最后調(diào)用releasedc釋放hdc資源。 int releasedc ( hwnd hwnd,//你要控制的那個窗口的句柄,如果你在getdc函數(shù)傳遞的是null,現(xiàn)在還要傳遞null。 hdc hdc //dc的句柄 ); 編譯運行程序,按下按鈕,發(fā)現(xiàn)屏幕的左上角處畫了一條直線。

2、按鈕 idc_getdc_api的函數(shù)

void cdcdemodlg
::ongetdcapi()
{ hdc hdc=::getdc(m_hwnd);
::movetoex(hdc,0,0,null);
lineto(hdc,200,50);
::releasedc(m_hwnd,hdc); }
 
  這段代碼與前一段代碼唯一的區(qū)別是getdc的參數(shù)不再是null,而改為cwnd的成員變量m_hwnd,即對話框窗口的句柄。對比兩段代碼運行結(jié)果,深入體會api函數(shù) getdc。

3、按鈕idc_getdc_cwnd的函數(shù)

void cdcdemodlg::ongetdccwnd()
{ cdc *pdc=getdc();
pdc->moveto(0,0);
pdc->lineto(200,100);
releasedc(pdc); }   

  該段代碼演示使用mfc cwnd類的 getdc函數(shù)和releasedc的方法,使用該方法在程序窗口中畫圖非常方便。為了避免獲取和釋放設(shè)備描述表所帶來的麻煩,mfc提供了一些cdc派生類,如cpaintdc,cclientdc,cwindowdc,這些類被設(shè)計為可直接進行實例化。各個類的構(gòu)造函數(shù)和析構(gòu)函數(shù)調(diào)用相應(yīng)的函數(shù)捕獲和釋放設(shè)備描述表,從而使得更加方便簡捷。

4、按鈕idc_cclientdc的函數(shù)

void cdcdemodlg::oncclientdc() {  
 cclientdc dc(this);  
 cbrush brush(rgb(255,0,0));  
 dc.fillrect(crect(0,0,100,100),&brush); }
 
  該段代碼演示了 cclientdc的具體使用方法,通過測試可以看出和 cclientdc對象相對應(yīng)的設(shè)備描述表是窗口的客戶區(qū) 。 cpaintdc類是從cdc類派生出來的,在構(gòu)造時自動調(diào)用cwnd::beginpaint,析構(gòu)時調(diào)用cwnd::endpaint。通常cpaintdc用來響應(yīng)wm_paint消息,一般應(yīng)用在onpaint函數(shù),對窗口的客戶區(qū)進行操作。

5、按鈕idc_cwindowdc的函數(shù)

void cdcdemodlg::oncwindowdc()
{ cwindowdc dc(this);
cpen pen(ps_solid,3,rgb(0,255,0));
cpen *poldpen=dc.selectobject(&pen);
dc.moveto(0,0);
dc.lineto(200,200);
dc.selectobject(poldpen); }

  運行并觀察畫線的起始位置?梢钥闯鯿windowdc對象和整個窗口相對應(yīng)。

6、按鈕idc_pointer的函數(shù)

void cdcdemodlg::onpointer()
{ cwindowdc *pdc;
pdc=new cwindowdc(this);
pdc->moveto(0,0);
pdc->lineto(200,250);
delete pdc; }   

  這段代碼演示了如何在堆中創(chuàng)建指向cdc派生類的指針,再利用該指針進行畫圖,最后請使用delete pdc; 釋放指針。

  歡迎轉(zhuǎn)載,信息來自維庫電子市場網(wǎng)(www.dzsc.com)



相關(guān)IC型號

熱門點擊

 

推薦技術(shù)資料

聲道前級設(shè)計特點
    與通常的Hi-Fi前級不同,EP9307-CRZ這臺分... [詳細]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!