documentation for CDC::SelectObject指出「CFont」版本是虛擬的,但CPen,CBrush,CBitmap和CRgn版本不是。爲什麼CDC :: SelectObject只爲CFont版本虛擬?
CPen* SelectObject(CPen* pPen);
CBrush* SelectObject(CBrush* pBrush);
virtual CFont* SelectObject(CFont* pFont);
CBitmap* SelectObject(CBitmap* pBitmap);
int SelectObject(CRgn* pRgn);
CGdiObject* SelectObject(CGdiObject* pObject);
這對我來說很煩人。
有人知道這個的原因嗎?我可以想象這是出於性能原因,出於兼容性的原因,還是僅僅因爲一些微軟程序員的懶惰?
這就解釋了爲什麼'的CFont * CDC:選擇對象(CFont類* pFont)'是虛擬的,但它並不能解釋爲什麼如'CBrush * CDC :: SelectObject(CBrush * pBrush);'**不是**虛擬的。 –
是的。我會編輯我的答案 – MikMik
謝謝,這聽起來很合理。 –