给你段代码。 你看看。
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
Global $PI=3.1415926 ,$Graphic_Circle=0,$R=0 ,$Hwnd ;全局变量 π , 图形控件变量 半径R 窗体句柄
Opt("GUIOnEventMode", 1) ;设置为事件驱动模式
; 窗体创建
$Form_Main = GUICreate("根据面积画圆", 267, 315, 192, 124) ;创建窗体
GUISetOnEvent($GUI_EVENT_CLOSE, "FormClose") ;注册窗体关闭事件回调函数
$Hwnd=WinGetHandle($Form_Main) ;读取窗体句柄
$Input_Mianji = GUICtrlCreateInput("输入圆的面积", 8, 8, 150, 21,BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER)) ;创建只能输入数字的输入框
$Input_R = GUICtrlCreateInput("半径:", 8, 32, 150, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_READONLY)) ;创建只读的输入框
$Button_Draw = GUICtrlCreateButton("计算", 170, 8, 60, 25) ;创建计算按钮
GUICtrlSetOnEvent(-1, "DrawCircle") ;注册计算按钮事件回调函数
_GDIPlus_Startup () ;启动GDI库
$Graphic_Circle = _GDIPlus_GraphicsCreateFromHWND ($Hwnd) ;创建图形控件
GUISetState(@SW_SHOW) ;显示窗体
;主循环 防止程序退出
While 1
Sleep(100)
WEnd
;画圆函数
Func DrawCircle()
Local $Mianji=GUICtrlRead($Input_Mianji) ;读取面积框的数字
$R=Sqrt($Mianji/$PI) ;计算半径 S=π*R*R ==> R=√S/π
GUICtrlSetData($Input_R,"半径:"&$R) ;将半径显示到输入框
_GDIPlus_GraphicsClear($Graphic_Circle,0xFFFFFFFF) ;清除图形控件. 防止画多次出现杂乱的图形
_WinAPI_RedrawWindow($Hwnd) ;由于清除的是整个窗体的的背景, 所以在窗体上的控件都会被"清除", 调用窗体重绘函数重新绘制即可.
_GDIPlus_GraphicsDrawEllipse ($Graphic_Circle, 0, 54, $R*2, $R*2) ;画椭圆. 将椭圆的长短两轴设置一样 就是圆了.
EndFunc
;窗体关闭函数
Func FormClose()
_GDIPlus_GraphicsDispose ($Graphic_Circle) ;清除资源
_GDIPlus_Shutdown () ;关闭GDI库
Exit ;退出
EndFunc
|