2016/4/22 (金) 06:14:07 Mr.XRAY |
▼ nyさん,どうもです.
> GetDeviceCapsのRASTERCAPSにRC_STRETCHBLTが含まれていないとコピーできません。
>
> 具体的なコードが知りたいですがご教授を・・・・
これは,GetDeviceCaps 関数の使い方ということでよろしいでしょうか ?
でしたら,例えば以下のようになりますね.
[GetDeviceCaps 関数 - MSDN]
https://msdn.microsoft.com/ja-jp/library/cc428670.aspx
procedure TForm1.Button1Click(Sender: TObject);
var
LDeviceCap : Integer;
LCapable : Integer;
begin
LCapable := RC_FLOODFILL;
if PrinterSetupDialog1.Execute then begin
LDeviceCap := GetDeviceCaps(Printer.Handle, RASTERCAPS);
if (LDeviceCap and LCapable) = LCapable then begin
MessageBox(Handle, 'サポートあり', '調査結果', MB_ICONINFORMATION);
end;
end;
end;
ただですね.プリンタでですね.メモリデバイスコンテキストを持っている,
というのは記憶にないですね.
つまり,プリンタには RC_FLOODFILL の機能はないと思います.
あまり自信ないですけど.
地震なら,先日,熊本で大きいのがありましたが (^^;
ディスプレイ (モニタ) でしたら使えますどね.当然ですが,
procedure TForm1.Button4Click(Sender: TObject);
var
LDeviceCap : Integer;
LCapable : Integer;
LDesktopDC : HDC;
begin
LCapable := RC_FLOODFILL;
LDesktopDC := CreateDC('DISPLAY', nil, nil, nil);
try
LDeviceCap := GetDeviceCaps(LDesktopDC, RASTERCAPS);
if (LDeviceCap and LCapable) = LCapable then begin
MessageBox(Handle, 'サポートあり', '調査結果', MB_ICONINFORMATION);
end;
finally
DeleteDC(LDesktopDC);
end;
end;
|
|