複製鏈接
請複製以下鏈接發送給好友

SelectObject

鎖定
SelectObject,計算機編程語言函數,該函數選擇一對象到指定的設備上下文環境中,該新對象替換先前的相同類型的對象。
中文名
SelectObject
hdc
設備上下文環境的句柄
hgdiobj
被選擇的對象的句柄
Windows NT
3.1及以上版本
函數功能
該函數選擇一對象到指定的設備上下文環境中,該新對象替換先前的相同類型的對象。
函數原型
HGDIOBJ SelectObject(HDC hdc, HGDIOBJ hgdiobj)
字    體
CreateFont, CreateFontIndirect。
CreatePen, CreatePenIndirect。
SIMPLEREGI
區域由單個矩形組成
COMPLEXREG
區域由多個矩形組成
NULLREGION
區域為空
ICM
如果被選擇的對象是畫筆或筆,那麼就執行顏色管理
3.1及以上版本
Windows
95及以上版本
Windows CE
1.0及以上版
頭文件:wingdi.h
庫文件
gdi32.lib

目錄

SelectObject位圖

CreateBitmap, CreateBitmapIndirect, CreateCompatible Bitmap, CreateDIBitmap, CreateDIBsection(只有內存設備上下文環境可選擇位圖,並且在同一時刻只能一個設備上下文環境選擇位圖)。

SelectObject畫刷

CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush。

SelectObject區域

SelectObject返回值

如果選擇對象不是區域並且函數執行成功,那麼返回值是被取代的對象的句柄;如果選擇對象是區域並且函數執行成功,返回如下一值:
如果發生錯誤並且選擇對象不是一個區域,那麼返回值為NULL,否則返回HGDI_ERROR。

SelectObject註釋

該函數返回先前指定類型的選擇對象,一個應用程序在它使用新對象進行繪製完成之後,應該用原始的缺省的對象替換新對象。
應用程序不能同時選擇一個位圖到多個設備上下文環境中。

SelectObject示例

HDC hdc=GetDC(hwnd);
HDC memdc=CreateCompatibleDC(hdc);
RECT rc;
BITMAP bmp;
HBITMAP holdbmp,hbmp=LoadBitmap(hInstDVBRes,MAKEINTRESOURCE(IDB_CLOCK));//從資源加載位圖
holdbmp=(HBITMAP)SelectObject(memdc,hbmp);//這裏把hbmp的位圖選擇到兼容DC memdc,之後這個兼容DC就擁有和
//hbmp同樣大小的繪圖區域,注意超出位圖返回的GDI輸出都是無效的.
GetObject(hbmp,sizeof(BITMAP),&bmp);//這裏獲取位圖的大小信息,事實上也是兼容DC繪圖輸出的範圍
SetRect(&rc,0,0,bmp.bmWidth,bmp.bmHeight);
DrawText(memdc,"Center Line Text" -1,&rc,DT_VCENTER|DT_SINGLELINE|DT_CENTER);//在兼容DC中間位置輸出字符串
//這樣以來我們就相當於把hbmp這個位圖加上了文字標註,我們可以把這個增加了文字標註的位圖保存起來.一個簡單的圖像處理基本就OK了.
SelectObject(memdc,holdbmp);//復原兼容DC數據.
DeleteDC(memdc);