我想知道畫布的寬度和高度,但我只知道它的HDC。如何通過只知道它的句柄來確定畫布的尺寸?
我已經試過與此代碼:
procedure TForm92.Button1Click(Sender: TObject);
var
hBitmap: HGDIOBJ;
Header: TBitmapInfoHeader;
begin
hBitmap := GetCurrentObject(PaintBox1.Canvas.Handle, OBJ_BITMAP);
GetObject(hBitmap, sizeof(TBitmapInfoHeader), @Header);
ShowMessage(IntToStr(Header.biWidth));
end;
但是它不會返回我PaintBox1畫布的尺寸,而是我得到在其上PaintBox1
放置在窗體的尺寸。
我在做什麼錯?
然後你的結果是正確的。一個窗口的檢索DC的句柄,其餘部分是VCL的詭計。 –
[如何找出DC的維度?](http:// stackoverflow。com/questions/3154620/how-to-find-out-dcs-dimensions) –
@David - 問題詢問TCanvas的維度,並且問題中的案例展示了差異。 –