標籤:des style color io 使用 ar 檔案 sp cti
函數功能:該函數檢索指定裝置的裝置指定資訊。
函數原型:int GetDeviceCaps(HDC hdc, int nlndex);
參數:
1、hdc:裝置上下文環境的控制代碼。
2、nIndex:指定返回項,該參數取下列一值。(C++)
DRIVERVERSION:裝置驅動程式版本。
TECHNOLOGY:裝置技術,它可以是下列一值:
DT_PLOTTER:向量繪圖器;DT_RASDISPLAY:光柵顯示器;
DT_RASPRINTER:光柵印表機;DT_RASCAMERA:光柵照相機;
DT_CHARSTREAM:字元流;DT_METAFILE:圖元檔案;
DT_DISPFILE:顯示器檔案。
如果hdc參數指定圖元檔案的裝置上下文環境,則裝置技術就是給CreateEnhMetaFile函
數的引用裝置,使用GetObjectType函數可以確定它是否是一增強元檔案裝置上下文環境。
HORZSIZE:物理螢幕的寬度(毫米);VERTSIZE:物理螢幕的高度(毫米);HORZRES:螢幕的寬度(像素);
VERTRES:螢幕的高度(光柵線);
LOGPIXELSX:沿螢幕寬度每邏輯英寸的像素數,在多顯示器系統中,該值對所顯示器相同;
LOGPIXELSY:沿螢幕高度每邏輯英寸的像素數,在多顯示器系統中,該值對所顯示器相同;
BITSPIXEL:像素相連顏色位元;PLANES:顏色位面數;NUMBRUSHES:裝置指定同畫筆數;
NUMPENS:裝置指定筆數;NUMFONTS:裝置指定字型數;
NUMCOLORS:裝置顏色表的入口數,如果裝置的色深不超過8位像素。對於超過色深的裝置返回-1;
ASPECTX:用於畫線的裝置像素的相對寬度;ASPECTY:用於畫線的裝置像素的相對高度;
ASPECTXY:用於畫線的裝置像素的對角線寬度;PDEVLCESIZE:保留;
CLIDCAPS:顯示裝置支援剪下效能的標誌。如果裝置可剪下為一個長方形,則為1,否則為0;
SIZEPALETTE:系統調色盤中的入口數目,只有在裝置磁碟機在RASTERCAPS索引中設定RC PALETFE位時該索引值才是有效。
且該索引值只能用於16位Windows的磁碟機;
NUMRESERVED:系統調色盤中保留的入口數目,只有在裝置磁碟機在RASTERLAP索引中設定RC PALETFE位時,該索引值才是有
效的且該索引值只有能於16位的Windows磁碟機;
COLORRES:實際位像的實際裝置顏色,只有裝置磁碟機在RASTERLAP索引中設定RCPALETFE位時,該索引值才是有效且該索
引值只能用於16位的Windows磁碟機;
PHYSICALWIDTH:對於列印裝置,為以裝置單位的物理頁面寬度。例如一個在8.5*11紙上設定為600dpi的印表機的裝置物理單
位寬度值為5100,注意物理頁面總是大於可列印的頁面面積,且從不小於;
PHPSICALHEIGHT:為以裝置單位的物理頁面寬度。例如一個在8.5*11紙上設定為600dpi的印表機的裝置物理單位高度值為6600;
PHYSICALOFFSETX:對於列印裝置,從物理頁面左邊到列印頁面右邊的距離,例如,一個在8.5*11紙上設定為600dpi的印表機,
不能在超出左邊0.25處列印,且有一個150備單位的水平物理位移;
PHYSICALOFFSETY;對於列印裝置。從物理頁面上面到列印頁面上邊的距離。例如一個在8.5*11列印紙上設定為的印表機,不能
在超出上邊的地方打處,且有一個裝置單位的物理位移;
VREFRESH:Windows NT:對於顯示裝置。裝置的當前垂直重新整理率以每秒中的迴圈次數為單位0或1重新整理率代表顯示硬體的預設重新整理率,
此預設重新整理率通常通過設定顯卡或主板的跳線來改變,或通過一個不使用Win32顯示函數比如ChangeDisplay Setting的一個配置程式來設定;
DESKTOPHORZRES:Windows NT:可視案頭的以像素為單位的寬度。如果裝置支援一個可視案頭或雙重顯示則此值可能大於VERTRES;
SCALINGFACTORX:印表機x軸的比例係數;SCALINGFACTORY:印表機y軸的比例係數。
BLTALIGNMENT:在Windows NT中作為像素倍數的水平繪圖調整,對於最好的繪圖操作,視窗繪圖應該是水平調整到此值的倍數。
0顯示裝置為加速的,且可用任何調整。
SHADEBLENDCAPS:在Windows 98、Windows NT 5.0和以後版本中此值顯示裝置的陰影和混合特性。
SB_CONST_ALPHA:處理BLENDFUNCTION結構中的Source constantAlpha元素,並通過AlphaBlend數中的blendFunction參數來指定;
SB_GRAD_RECT:進行Gradientfill矩形填充的能力。SB_GRAD_TRI;進行Gradientfill三角形填充的能力;
SB_NONE:裝置不支援這些特性中的任何一個。SB_PIXEL_ALPHA:處理AlphaBlond中每一個像素Alphx;
SB_PREMULT_ALPHA:在Alphablend中對alpha進行預乘;
RASTERCAPS:裝置所支援的光柵效能,可以是下列值的某種組合;
RC_BANDING:需要聯合支援。RC_BITBLT:支援傳送位元影像。
RC_BITMAP64:支援大於64K的位元影像。RC_DI_BITMAP:支援SetDIBits和GetDIBits函數。
RC_DIBTODEV:支援SetDIBits To Device函數;RC_FLOODFILL:支援連續填充
RC_GDI20_OUTPUT:支援16位Windows 2.0特徵;RC_PALETTE:指定一個基於調色盤的裝置。
RC_SCALING:支援縮放;RC_STRETCHBLT:支援StretchBlt函數。
RC_STRETCHDIB:stretchDIBits函數。
CURVECAPS:顯示裝置所支援的曲線效能,可以是下列值的某種組合。
CC_NONE:不支援繪製曲線;CC_CHORD:支援繪製弦;CC_CIRCLES:支援繪製圓。
CC_ELLIPSES:支援繪製橢圓;CC_INTERIORS:支援內部填充;CC_PIE:支援繪製扇形圖。
CC_ROUNDRECT:支援繪製圓角矩形;CC_STYLED:支援繪製帶風格的邊界。
CC_WIDE:支援繪製寬的邊界;CC_WIDESTYLED:支援繪製寬的、帶風格的邊界。
LINECAPS裝置所支援的畫線效能,可以是下列值的某種組合:
LC_NONE:不支援繪製線段;LC_INTERIORS:支援內部填充;LC_MARKER:支援繪製標記符。
LC_POLYLINE:支援折線;LC_POLYMARKER:支援多種標記符;LC_STYLED:帶風格的線段。
LC_WIDE:支援畫寬線;LC_WIDESTYLED:支援寬的帶風格的線段。
POLYGONALCAPS設有所支援的多邊形效能。可以是下列值的某種組合。
PC_NONE:不支援繪製多邊形;PC_INTERIORS:支援內部填充;PC_POLYGON:支援繪製間隔式填充多邊形。
PC_RECTANGLE:支援繪製矩形;PC_SCANLINE:支援繪製掃描線;PC_STYLED:支援繪製帶風格的邊界。
PC_WIDE:支援繪製寬邊界;PC_WIDESTYLED:支援繪製寬的帶風格的邊界。
PC_WINDPOLYGON:支援繪製折線式填充多邊形。
TEXTCAPS裝置所支援的文字效能,可以是下列值的某種組合:
TC_OP_CHARACTER:支援字元輸出精度;TC_OP_STROKE:支援筆畫輸出精度。
TC_CP_STROKE:支援筆畫剪下精度;TC_CR_90:支援字元作90度旋轉;
TC_CR_ANY:支援字元作任意角度旋轉;TC_SF_X_YINDEP:支援x和y方向的獨立縮放。
TC_SA_DOUBLE:支援把字元放大一倍;TC_SA_INTEGER:支援整數倍縮放。
TC_SA_CONTIN:支援以任何倍數的嚴格縮放;TC_EA_DOUBLE:支援字元加重。
TC_IA_ABLE:支援斜字型;TC_UA_ABLE:支援底線;TC_SO_ABLE:支援刪除線。
TC_RA_ABLE:支援點陣字型;TC_VA_ABLE:支援向量字型;TC_RESERVED:保留、必須為零。
TC_SCROLLBLT:不支援用位快傳遞來滾動,注意這可能事與願違。
以上為C++部分參數,下面提供在C#中部分參數的具體值
所有類型均聲明為Int或者INT32即可
DRIVERVERSION = 0
TECHNOLOGY = 2
HORZSIZE = 4
VERTSIZE = 6
HORZRES = 8
VERTRES = 10
BITSPIXEL = 12
PLANES = 14
NUMBRUSHES = 16
NUMPENS = 18
NUMMARKERS = 20
NUMFONTS = 22
NUMCOLORS = 24
PDEVICESIZE = 26
CURVECAPS = 28
LINECAPS = 30
POLYGONALCAPS = 32
TEXTCAPS = 34
CLIPCAPS = 36
RASTERCAPS = 38
ASPECTX = 40
ASPECTY = 42
ASPECTXY = 44
SHADEBLENDCAPS = 45
LOGPIXELSX = 88
LOGPIXELSY = 90
SIZEPALETTE = 104
NUMRESERVED = 106
COLORRES = 108
PHYSICALWIDTH = 110
PHYSICALHEIGHT = 111
PHYSICALOFFSETX = 112
PHYSICALOFFSETY = 113
SCALINGFACTORX = 114
SCALINGFACTORY = 115
VREFRESH = 116
DESKTOPVERTRES = 117
DESKTOPHORZRES = 118
BLTALIGNMENT = 119
傳回值:傳回值指定所需項目的值。
注釋:GetDeviceCaps提供下列六個索引以代替印表機消失。
PHYSICALWIDTH GETPHYSPAGESIZE; PHYSICALHEIGHT GETPHYSPAGESIZE
PHYSICALOFFSETX GETPRINTINGOFFSET;
PHYSICALOFFSETY GETPHYSICALOFFSET;
SCALINGFACTORX GETSCALINGFACTOR;
SCALINGFACTORY GETSCALINGFACTOR;
Windows CE:Windows CE不支援nIndex參數取下列值:
VREFRESH; DESKTOPHORZRES; DESKTOPVERTRES;BLTALIGNMENT
Windows CE 1.0不支援nIndex參數取下列值:
PHYSICALWIDTH; PHYSICALHEIGHT; PHYSICALOFFSETX; PHYSICALOFFSETY
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;標頭檔:wingdi.h;庫檔案:gdi32.lib。
補充:
GetDeviceCaps(HORZSIZE)
HORZSIZE 以毫米為單位的顯示寬度
VERTSIZE 以毫米為單位的顯示高度
HORZRES 以像素為單位的顯示寬度 0~65535
VERTRES 以像素為單位的顯示高度 0~65535
LOGPIXELSX 像素/邏輯英寸(水平)
LOGPIXELSY 像素/邏輯英寸(垂直)
字型函數 -- GetDeviceCaps