|
こんにちは。
私の場合はこんな感じでやっていますが、識者ではありませんので
逆に識者の方に問題ないかを聞きたいくらいですw
ちなみにプリンタ名からHDCをとっているので、プリンタ設定の
デフォルト値(コンパネのプリンタの設定値)になると思います。
# プリンタダイアログなどで解像度の設定をいぢられると
# この方法ではその値を取得できません。
[DllImport("gdi32.dll")]
private static extern IntPtr CreateDC(string lpszDriver,
string lpszDevice, string lpszOutput, IntPtr lpInitData);
[DllImport("gdi32.dll")]
private static extern bool DeleteDC(IntPtr hdc);
private void test()
{
PrintDocument pd = new PrintDocument();
string name = pd.PrinterSettings.PrinterName;
try
{
//HDC取得
hDC = CreateDC(@"WINSPOOL", name, null, IntPtr.Zero);
}
finally
{
DeleteDC(hDC);
}
}
|