idea中如何安装窗口绘制工具

idea中如何安装窗口绘制工具,第1张

创建GUIForm。

注意使用这个关闭模式。使用jFrame.pack(),替换jFrame.setSize(800,400)。可以很好的包裹住界面。选择表单布局。使用这种布局需要导入依赖。表格位置的移动。调节表单的每部分的大小。对行列的添加与删除。使用preview查看窗体。字体的选择,设置LabelFor。文本域外边距的设置。调节文本域大小。设置文本域的不可编辑。文本域内容的预先定义。使按钮占满区域。按钮事件。添加manubar组件。菜单的manu和manuItem手动添加,这种只能执行main函数才能看到,使用preview是看不到的。通过卡片Card布局实现界面切换。不使用可视化的代码。card的可替换部分使用可视化进行组装,而主要页面(包括菜单栏和替换部分)使用非可视化,手动进行构建。打成可执行jar包。

方法一:WINDOWS API画法

//获取要绘制的控件句柄

Image img = GetWindow(this.tabPage12.Handle)

//在母容器上创建图形对象 

Graphics gOut = mOut.pnlOut.CreateGraphics()

//在指定位置按指定大小绘出image 

gOut.DrawImage((Image)img, form1.pnlImage.DisplayRectangle, this.tabPage12.DisplayRectangle, GraphicsUnit.Pixel)

//释放图形对象所有资源 

gOut.Dispose() 

img.Dispose() 

GC.Collect() 

form1.pnlImage.BringToFront()

#region 截图函数

[DllImport("gdi32.dll")] 

public static extern IntPtr CreateDC( 

string lpszDriver, // driver name驱动名 

string lpszDevice, // device name设备名 

string lpszOutput, // not usedshould be NULL 

IntPtr lpInitData // optional printer data 

[DllImport("gdi32.dll")] 

public static extern int BitBlt( 

IntPtr hdcDest, // handle to destination DC目标设备的句柄 

int nXDest, // x-coord of destination upper-left corner目标对象的左上角的X坐标 

int nYDest, // y-coord of destination upper-left corner目标对象的左上角的Y坐标 

int nWidth, // width of destination rectangle目标对象的矩形宽度 

int nHeight, // height of destination rectangle目标对象的矩形长度 

IntPtr hdcSrc, // handle to source DC源设备的句柄 

int nXSrc, // x-coordinate of source upper-left corner源对象的左上角的X坐标 

int nYSrc, // y-coordinate of source upper-left corner源对象的左上角的Y坐标 

UInt32 dwRop // raster operation code光栅的 *** 作值 

)

[DllImport("gdi32.dll")] 

public static extern IntPtr CreateCompatibleDC( 

IntPtr hdc // handle to DC 

)

[DllImport("gdi32.dll")] 

public static extern IntPtr CreateCompatibleBitmap( 

IntPtr hdc, // handle to DC 

int nWidth, // width of bitmap, in pixels 

int nHeight // height of bitmap, in pixels 

)

[DllImport("gdi32.dll")] 

public static extern IntPtr SelectObject( 

IntPtr hdc, // handle to DC 

IntPtr hgdiobj // handle to object 

)

[DllImport("gdi32.dll")] 

public static extern int DeleteDC( 

IntPtr hdc // handle to DC 

)

[DllImport("user32.dll")] 

public static extern bool PrintWindow( 

IntPtr hwnd, // Window to copy,Handle to the window that will be copied. 

IntPtr hdcBlt, // HDC to print into,Handle to the device context. 

UInt32 nFlags // Optional flags,Specifies the drawing options. It can be one of the following values. 

)

[DllImport("user32.dll")] 

public static extern IntPtr GetWindowDC( 

IntPtr hwnd 

)

public Bitmap GetWindow(IntPtr hWnd) 

IntPtr hscrdc = GetWindowDC(hWnd) 

Control control = Control.FromHandle(hWnd) 

IntPtr hbitmap = CreateCompatibleBitmap(hscrdc, control.Width, control.Height) 

IntPtr hmemdc = CreateCompatibleDC(hscrdc) 

SelectObject(hmemdc, hbitmap) 

PrintWindow(hWnd, hmemdc, 0) 

Bitmap bmp = Bitmap.FromHbitmap(hbitmap) 

DeleteDC(hscrdc)//删除用过的对象 

DeleteDC(hmemdc)//删除用过的对象 

return bmp 

#endregion

方法二、给background赋值

Bitmap bmp = new Bitmap(this.tabPage12.Width, this.tabPage12.Height)

//将控件区域显呈到指定位图 

this.tabPage12.DrawToBitmap(bmp, this.tabPage12.DisplayRectangle) 

form1.pnlImage.BackgroundImage = (Image)bmp

/* 分屏显示座席 */ 

form1.pnlImage.BackColor = Color.White 

form1.pnlImage.BringToFront()

方法三、将某个屏幕位置拷贝到image

Image img = new Bitmap(tabPage13.Width, tabPage13.Height) 

Graphics g = Graphics.FromImage(img) 

g.CopyFromScreen(Obj.PointToScreen(Point.Empty), Point.Empty, tabPage13.Size) 

IntPtr dc1 = g.GetHdc() 

g.ReleaseHdc(dc1) 

form1.pnlImage.BackgroundImage = img

form1.pnlImage.BringToFront()

Private Sub Command1_Click()

Dim x0 As Integer, y0 As Integer

Dim a(10, 2) As Integer

Dim i As Integer, j As Integer

x0 = 2000

y0 = 1500

For i = 0 To 10

a(i, 1) = 1500 * Cos(36 * i / 180 * 3.14159265)

a(i, 2) = 1500 * Sin(36 * i / 180 * 3.14159265)

Next

For i = 1 To 10

For j = 1 To i - 1

Line (x0 + a(i, 1), y0 + a(i, 2))-(x0 + a(j, 1), y0 + a(j, 2))

Next

Next

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7875359.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存