PDA

View Full Version : آموزش: کمک...توضیح خط به خط کد تابع api



red_nima2010
پنج شنبه 16 آذر 1391, 05:44 صبح
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Drawing.Printing;


namespace WindowsFormsApplication12
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public struct DOCINFO
{
public int cbSize;
public string lpszDocName;
public string lpszOutput;
public string lpszDatatype;
}

public struct POINTAPI
{
public int x;
public int y;

}

[DllImport("gdi32.dll",SetLastError=true ) ]
public static extern int PolyDraw(int hdc, POINTAPI lppt, Byte lpbTypes, int cCount);

[DllImport("gdi32.dll", EntryPoint="StartDocA", SetLastError=true)]
public static extern int StartDoc(int hdc, ref DOCINFO lpdi);

[DllImport("gdi32.dll",SetLastError=true)]
public static extern int StartPage(int hdc);

[DllImport("gdi32.dll",SetLastError=true)]
public static extern int EndPage(int hdc);

[DllImport("gdi32.dll",SetLastError=true)]
public static extern int EndDoc(int hDC);

[DllImport("gdi32.dll", EntryPoint = "CreateDCA")]
public static extern int CreateDC(string lpDriverName, string lpDeviceName, string lpOutput, int lpInitData);



private void Form1_Load(object sender, EventArgs e)
{


}

private void button1_Click(object sender, EventArgs e)
{
int printer = CreateDC("winspool", printDocument1.PrinterSettings.PrinterName, null, 0);
POINTAPI Pt2;
Byte bTypes1;
DOCINFO DI = new DOCINFO();

DI.cbSize = Marshal.SizeOf(DI);
DI.lpszDocName = "API-Guide Code Demonstration";
DI.lpszOutput = null;
DI.lpszDatatype = null;
Pt2.x = 50;
Pt2.y = 30;
bTypes1 = 0x2;
PolyDraw(printer,Pt2,bTypes1,2);
StartDoc(printer, ref DI);
StartPage(printer);
EndPage(printer);
EndDoc(printer);
}
}
}

red_nima2010
پنج شنبه 16 آذر 1391, 22:36 عصر
کمک.شنبه18/9 باید ارائه بدم