点击菜单弹出对话框设定参数,然后在原窗体绘图,要使用哪些函数?

问题描述

比如:菜单--数值微分(DDA)法点击菜单项“数值微分(DDA)法”时,弹出对话框,通过该对话框用户可以选择“自由划线(通过鼠标来画线),精确划线(通过对话框来输入相应的值)如直线要求输入两端点的xy坐标,然后画出直线。

解决方案

解决方案二:
gdi,gdiplus
解决方案三:
我怎么看不到jinjazz的回帖!!!!!
解决方案四:
to:jinjazz这个我知道的关键是要设计的函数的有哪些
解决方案五:
再弱弱问一句,这个容易实现不?重载的函数涉及哪些?
解决方案六:
一个最简单的例子usingSystem;usingSystem.ComponentModel;usingSystem.Windows.Forms;usingSystem.Drawing;namespaceWindowsApplication4{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatebooldrawing;privatePointpStart;privatevoidForm1_MouseUp(objectsender,MouseEventArgse){this.drawing=!this.drawing;pStart=e.Location;}privatevoidForm1_MouseMove(objectsender,MouseEventArgse){if(this.drawing){using(Graphicsg=this.CreateGraphics()){g.Clear(this.BackColor);g.DrawLine(Pens.Blue,pStart,e.Location);}}}}}

解决方案七:
画图方式:先声明画笔Penmypen=newPen(Color.Black,1);再声明画图的地方:Graphicsgraph=this.CreateGraphics;(this指你要画图的控件,可以使窗体,也可以是别的,很对空间都有CreateGraphics方法)最后画上就行了:graph.DrawLine(mypen,point1,point2);(point是坐标类,也可以用pointf)
解决方案八:
谢谢jinjazz,你给的这个简单例子很像我要实现的“自由画图”的功能。我遇到的问题是弹出对话框的参数进行传递后,如何实现窗体的”精确划线“的功能。具体要调用什么函数?还是感谢jinjazz!!!
解决方案九:
把参数传进来直接g.DrawLine(Pens.Blue,pStart,e.Location)就可以了,你如果理解前面的代码了就不会问这个问题了
解决方案十:
tojinjazz:感谢你耐心回复。我在描述问题方面可能不清楚。参数传递我理解的也能实现。问题是,我不清楚在点击对话框中的确定按钮后,如何在窗体上实现绘制一条直线的功能。也许问题我可以说的更简洁些:点击窗体1中的菜单后窗体2(我说的对话框)出现,点击窗体2的某按钮后,窗体2消失并在窗体1上绘制一条直线。如何设计窗体2的点击事件使得在窗体1上绘制直线呢?
解决方案十一:
你应该先学会基础的窗体交互再去做复杂的事情form1privatevoidbutton1_Click(objectsender,EventArgse){Form2frm=newForm2();if(frm.ShowDialog()==DialogResult.OK){using(Graphicsg=this.CreateGraphics()){g.DrawLine(Pens.Blue,frm.pStart,frm.pEnd);}}}

form2usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespaceWindowsApplication4{publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}publicPointpStart;publicPointpEnd;privatevoidbutton1_Click(objectsender,EventArgse){pStart=newPoint(100,100);pEnd=newPoint(300,300);this.DialogResult=DialogResult.OK;this.Close();}}}

解决方案十二:
tojinjazz:c#的窗体交互的基础知识哪边有详细介绍?请推荐下c#的好教材。谢谢
解决方案十三:
PublicClassForm1PrivatemMenuAsContextMenuStripPrivatep1,p2AsPointPrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadmMenu=NewContextMenuStripmMenu.Items.Add("自由画线",Nothing,AddressOfMenuItemClick)mMenu.Items.Add("精确画线",Nothing,AddressOfMenuItemClick)Me.ContextMenuStrip=mMenuEndSubPrivateSubMenuItemClick(ByValsenderAsObject,ByValeAsSystem.EventArgs)DimitemAsToolStripMenuItem=CType(sender,ToolStripMenuItem)SelectCaseitem.TextCase"自由画线"CType(mMenu.Items(0),ToolStripMenuItem).Checked=TrueCType(mMenu.Items(1),ToolStripMenuItem).Checked=FalseCase"精确画线"CType(mMenu.Items(0),ToolStripMenuItem).Checked=FalseCType(mMenu.Items(1),ToolStripMenuItem).Checked=TrueDimValueAsString=InputBox("请输入精确画线的两点坐标,格式为:x1,y1-x2,y2","精确画线","10,10-100,100")IfValue<>""ThenDimp()AsString=Value.Split("-")p1=NewPoint(CInt(p(0).Split(",")(0)),CInt(p(0).Split(",")(1)))p2=NewPoint(CInt(p(1).Split(",")(0)),CInt(p(1).Split(",")(1)))Me.CreateGraphics.DrawLine(Pens.Red,p1,p2)EndIfEndSelectEndSubPrivateSubForm1_MouseDown(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesMe.MouseDownIfCType(mMenu.Items(0),ToolStripMenuItem).CheckedThenIfe.Button=Windows.Forms.MouseButtons.LeftThenp1=e.LocationEndIfEndSubPrivateSubForm1_MouseUp(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesMe.MouseUpIfCType(mMenu.Items(0),ToolStripMenuItem).CheckedThenIfe.Button=Windows.Forms.MouseButtons.LeftThenp2=e.LocationMe.CreateGraphics.DrawLine(Pens.Red,p1,p2)EndIfEndIfEndSubEndClass

关于详细的鼠标画线请参考

时间: 2024-10-22 03:36:28

点击菜单弹出对话框设定参数,然后在原窗体绘图,要使用哪些函数?的相关文章

mfc-MFC中怎么设置单击菜单弹出对话框?

问题描述 MFC中怎么设置单击菜单弹出对话框? 举个例子,在菜单栏中单击"Setting"菜单下,"Hardware setting"子菜单中"Setting the printer"项(ID为ID_HARDWARESETTING_SETTINGTHEPRINTER),要弹出对话框"PrinterHWSetting"(ID为IDD_PrinterHWSetting) 对话框继承CDialog类,类名PrinterHWSetti

弹出页面-如何实现JSP页面弹出对话框后,还能在原页面操作?

问题描述 如何实现JSP页面弹出对话框后,还能在原页面操作? 点击"导出协议",会弹出一个对话框,此时页面无法做任何操作. 现在需要修改的是,弹出对话框以后,原页面可以做别的操作. 但是重复点击同一条数据的"导出协议"时,会弹出一个提示"操作重复"的对话框. 在JSP页面定义一个全局变量,"导出协议"的时候调用它,然后拿这个变量和数据ID相比较,如果重复则弹出对话框. <td class="td_hand&qu

ExtJs 4.2.1 点击按钮弹出表单的窗口

初学ExtJs,做项目的时候想做一个这样的效果:点击按钮弹出对话框,之前一直是使用EasyUi来做的, EasyUi里有Dialog,用起来很方便,但是现在转移到ExtJs上后,发现没有Dialog这样的框架,在网上找了没有找到这样的 控件,于是搜索一下关于ExtJs 对话框的实现方法,现在将实现结果贴出来,如果有什么想法,希望多多留言! Ext.get("btn_edit").on("click", function () { var form = new Ext

CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法

  本文实例讲述了CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法.分享给大家供大家参考.具体分析如下: 这里用CSS+JS实现点击文字后动画展开一个DIV层菜单,到期会自动关闭,是CSS结合JS实现的效果. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

点击TrueDbGrid控件中的一项,弹出对话框,把这一横行显示在弹出的对话框中

问题描述 点击TrueDbGrid控件中的一项,弹出对话框,把这一横行显示在弹出的对话框中 点击TrueDbGrid控件中的一项,弹出对话框,把这一横行显示在弹出的对话框中 解决方案 在对话框中定义一个数组型public变量,比如叫data form2.data = 赋值 form2.show 解决方案二: 在双击行事件中写新建窗体的代码

table iew-ios tableView中,点击单元格,弹出对话框显示单元格的内容。

问题描述 ios tableView中,点击单元格,弹出对话框显示单元格的内容. 在ios tableView中,我想实现的功能是点击单元格,弹出对话框显示单元格的内容.但现在的问题是,我点击第一个单元格时,不弹出对话框,但点击第二个单元格时,弹出对话框,但是显示的内容是第一次点击的单元格的内容.是不是哪里设置有问题 ,求各位大神指教.单元格点击响应代码如下. -(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:

在网页中实现像VB的日期控件那样的组件,一点击就弹出日历菜单。。。。(原创!)

在网页中实现像VB的日期控件那样的组件,一点击就弹出日历菜单....(原创!) 作者: 小白 点击链接查看作者详细信息 <HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE>在网页上直接调用控件选择时间的演示效果</TITLE><SCRIPT LANGUAGE=javascript><

有没有制作象windows左边菜单那样的控件啊?点击一下弹出下面的子菜单,再点击一下缩回去

问题描述 有没有制作象windows左边菜单那样的控件啊?点击一下弹出下面的子菜单,再点击一下缩回去,toolkit里的那个accordion它那种效果我不太喜欢,觉得弹出得太慢 解决方案 解决方案二:在TrackPopupMenu时指定标志.解决方案三:你说的是抽屉的那个控件吗?DeveloperExpress这个控件就有,下一个解决方案四:JS可以实现......或者AJAX.NET里面有个控件可以实现解决方案五:呵呵,是win还是web啊.win的好像没有啊,只有自己写了如果有的话发出来啊

python pyqt5-为什么点击按钮后直接关闭窗口了,没有弹出对话框呢?

问题描述 为什么点击按钮后直接关闭窗口了,没有弹出对话框呢? 为什么点击按钮后直接关闭窗口了,没有弹出对话框呢? # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'frmMain.ui' # # Created by: PyQt5 UI code generator 5.5.1 # # WARNING! All changes made in this file will be lost!