ocx打印ocx控件修改 属性如何设置

等高线绘制控件(ChengboSoft Contour45.Ocx)
等高线绘制控件(Contour45.Ocx)
numRowsnumColsz(xi,
yi)numLayersLayerValue(I)LayerColor(I)
1numRowsnumCols2zValue(i,j) i=0, 1, …,
numRows-1; j= 0, 1, …, numRows-13xValue(i),
yValue(j)4numLayers5LayerValue(i)LayerColor(i)6
xAxisMin, xAxisM yAxisMin, yAxisM zAxisMin, zAxisMax 7PlotContour()PlotPicture()
*.txt: txt
*.dat: dat11
0.000067& 0.000231&
0.000680& 0.001681&
0.003378& 0.005096
0......201047
-0......061699
-0......000055
-0.000006& 0.000156&
0.000538& 0.001571&
0.003812& 0.007375
x&&&& 0&&&&&&&& 1.1&&&&&&
1.3&&&&&& 1.35&&&&& 1.44&&&&&
-1.0&& 0.000067&
0.000231& 0.000680&
0.001681& 0.003378&
-0.5&& 0.004156
-0.....201047
0.5& -0..252730
-0....061699
0.8& -0..012291
-0....000055
1.0& -0.000006&
0.000156& 0.000538&
0.001571& 0.003812&
☆ Backcolor:设置或读取控件的背景颜色。
☆ FontSize:设置或读取控件的字体大小。
☆ GraphMode:绘图模式,=0表示绘制了等高线;=1表示绘制了图象;=2打开了图象文件,只读属性。
☆ Grid:True/False是否绘制坐标网格。
☆ GridColor:坐标网格颜色。
☆ LayerColor( index As Integer) as Long:设置和取得第index高度层的颜色。
☆ LayerValue( index As Integer) As Single:设置和取得index高度层的幅度值。
☆ LegendClr:刻度值条的数字显示颜色。
☆ LegendVisible:是否显示颜色刻度条,=True表示显示刻度条; =False表示不显示刻度条。
☆ MarkColor:绘制标注的颜色。
☆ MarkMode:True在等高线上。自动绘出高度数值;False不自动绘出高度值。
☆ Measure:是否显示测量数值显示条,=True显示,=False不显示。
☆ MeasureFmt:坐标刻度数值格式,=&&表示自由格式;=&000.000&表示三位整数和三位小数的显示格式。
☆ ModeInterp:数值插值方式,=0表示三点插值;=1表示全区间插值。
☆ NumCols:数值矩阵的列数。
☆ NumInterp:插值点数,=1不插值;=2两点中间插1点,=3两点中间插2点,以此类推。
☆ NumLayers:幅度的分层数。
☆ NumRows:数值矩阵的行数。
☆ PenWidth:等高线的宽度,单位是象素。
☆ XaxisMax:X轴的最大值。
☆ XaxisMin:X轴的最小值。
☆ YaxisMax:Y轴的最大值。
☆ YaxisMin:Y轴的最小值。
☆ ZaxisMax:Z轴的最大值。
☆ ZazisMin:Z轴的最小值。
☆ XValue( index As Integer) As Single:设置和取得矩阵第index列对应的x轴坐标值。
☆ YValue( index As Integer) As Single:设置和取得矩阵第index行对应的y轴坐标值。
☆ zValue(Row as Integer, Col as Integer) As Single:设置和取得第Row行,Col列的矩阵数值。
控件的方法
☆ Sub About()
【功能】显示控件的版权信息。
☆ Sub AutoValues()
【功能】自动赋值,包括自动取等间隔高度,自动定义代表每个高度的颜色,自动赋值Z轴取值范围。
☆ Function CalcZMaxValue() as Single
【功能】计算矩阵数值的最大值。
☆ Function CalcZMinValue() as Single
【功能】计算矩阵数值的最小值。
☆ Sub EditCopy()
【功能】将图形复制到剪贴板内存。
☆ Function GetMatValues(v() as Single) as Integer
【功能】从控件中读取矩阵的数值。
v():返回矩阵数值,矩阵的尺寸为numRows × numCols,即行数乘以列数。
【返回】1成功;0失败。
☆ Function Contour(nRows As Integer, nCols As Integer, x() As Single, y() As Single, AutoV As Boolean) As Long
【功能】给定了X轴和Y轴上的插值点x(i),y(i),x(i)的长度为nCols,y(i)的长度为nRows,计算并显示等高线图形。如果AutoV为True则自动在xAxisMin和xAxisMax之间等分为nCols个插值点赋给x(i); 在yAxisMin和yAxisMax之间等分为nRows个插值点赋给y(i);在zAxisMin和zAxisMax之间等分为numLayers个高度值赋给LayerValue(i)。如果AutoV为False,则用户对这些值分别赋值:x(i), y(i), LayerValue(i), LayerColor(i)。
nRows:Y轴上的插值点个数,也是y()数组的长度。
nCols:X轴上的插值点个数,也是x()数组的长度。
X():设置和返回X轴上的插值点值。当AutoV=True时只返回自动计算的插值点。
X():设置和返回Y轴上的插值点值。当AutoV=True时只返回自动计算的插值点。
AutoV:输入参数,可为True或False,说明是否自动计算参数。
【返回】1成功;0失败。
☆ Function GetVectorMax(v() as Single, Lv As Long) As Single
【功能】取得数组v()的最大值。
v(): 输入数值矩阵向量。
矩阵的元素个数。
【返回】数值矩阵的最大值。
☆ Function GetVectorMin(v() As Single, Lv As Long) As Single
【功能】取得数组的最小值。
v(): 输入数值矩阵向量。
矩阵的元素个数。
【返回】数值矩阵的最小值。
☆ Function GetXScale(v() As Single) as Integer
【功能】取得控件中X轴上取样坐标,也就是对应矩阵列的取样数值。
v(): 返回矩阵列上对应取样坐标。长度为矩阵的列数。
【返回】成功1,失败0。
☆ Function GetYScale(v() As Single) as Integer
【功能】取得控件中Y轴上取样坐标,也就是对应矩阵行的取样数值。
v(): 返回矩阵行上对应取样坐标。长度为矩阵的行数。
【返回】成功1,失败0。
☆ Function Interpolation(x As Single, y As Single) As Single
【功能】求(x,y)点的插值。
x: 相对x轴取样坐标的x轴数值,输入参数。
y:相对y轴取样坐标的y轴数值,输入参数。
【返回】插值结果。
☆ Function OpenFile(Fname as String) as Integer
【功能】打开图象文件,并显示。
Fname: 图象文件名称,支持BMP、JPG、PCX、WMF等格式。
【返回】1成功;0失败。
☆ Function OpenText(Fname as String) as Integer
【功能】打开矩阵数值文件,矩阵数值文件以ASCII码存储,后缀为TXT和DAT。
Fname: 数值矩阵文件名称,支持TXT、DAT等格式。
【返回】1成功;0失败。
☆ Sub Paste()
【功能】将剪贴板中的图象粘帖到控件中并显示。
☆ Sub PlotAutoMark(x As Single,y As Single,FindV as Boolean)
【功能】在给定位置(x,y)上自动绘制高度数值。
x: 以像素计x轴坐标。
y: 以像素计y轴坐标。
FindV: 是否按给定高度数值中的绘制标高。=True:用给定的高度值LayerValues()标高;
=False:用该点测量高度值标高。
☆ Sub PlotContour()
【功能】绘制等高线,需要给定相应数据之后绘制等高线。
☆ Sub PlotMark(x As Single,Y as Single,Marker As String)
【功能】在给定位置上绘制标志字符串Marker。
x: 以像素计x轴坐标。
y: 以像素计y轴坐标。
Marker: 要绘制的标记字符串。
☆ Sub PlotPicture()
【功能】由矩阵数据生成图象。
☆ Function PrintContour(x1 as Single,y1 as Single,x2 As Single,y2 As Single) as Integer
【功能】打印等高线(GraphMode=1和2时使用本方法较好)。
x1: 以毫米计的左上角x轴坐标。
y1: 以毫米计的左上角y轴坐标。
x2: 以毫米计的右下角x轴坐标。
y2: 以毫米计的右下角y轴坐标。
【返回】1成功;0失败。
☆ Function PrintImage(x1 As Single,y1 As Single,x2 As Single,y2 As Single) As Integer
【功能】打印图象(GraphMode=1和2时使用本方法较好)。
x1: 以毫米计的左上角x轴坐标。
y1: 以毫米计的左上角y轴坐标。
x2: 以毫米计的右下角x轴坐标。
y2: 以毫米计的右下角y轴坐标。
【返回】1成功;0失败。
☆ Function SaveFile(Filename As String) as Integer
【功能】保存图象文件。
Fname: 文件名称。
【返回】1成功;0失败。
☆ Function SaveText(Filename As String) As Long
【功能】保存矩阵为文本格式,后缀可以为TXT或DAT,其不同之处参考数据格式说明。
Fname: 文件名称。
【返回】1成功;0失败。
初始化有关参数
With QiContour1
.GridColor = &HC0C0C0 '坐标网格颜色,这里为灰色。
.BackColor = &HFFFFFF
'背景颜色。
.Measure=True
'显示测量条。
.Grid=False
'不显示坐标网格。
.LegendVisible=True
'显示颜色刻度条。
.PenWidth = 2
'画线宽度。
.numInterp = 2
'绘图插值点数,越高曲线越光滑,计算时间越长。
.MarkColor = &HFF0000
'标注字符串的颜色。
.FontSize = 12
'标注字符串的字体尺寸。
.LegendClr = &HFF&
'标注颜色刻度条刻度值的颜色为红色。
绘制等高线之一
Private Sub idm_Demo1_Click()
Dim i As Integer, j As Integer
Dim Cols As Integer, Rows As Integer
Cols = 31 :
ReDim x(0 To Cols) As Single, y(0 To Rows) As Single
Dim z As Single
QiContour1.numLayers = 25
QiContour1.MeasureFmt = &0.000&
QiContour1.numCols = Cols : QiContour1.numRows = Rows
QiContour1.xAxisMin = -1.5 : QiContour1.xAxisMax = 1.5
QiContour1.yAxisMin = -2 :
QiContour1.yAxisMax = 2
QiContour1.zAxisMin = 0 :
QiContour1.zAxisMax = 1
For i = 0 To Cols - 1
x(i) = -1.5 + 3! / (Cols - 1) * i
QiContour1.xValue(i) = x(i)
For i = 0 To Rows - 1
y(i) = -2 + 4 / (Rows - 1) * i
QiContour1.yValue(i) = y(i)
For i = 0 To Rows - 1
For j = 0 To Cols - 1
z = Exp(-x(j) * x(j) - y(i) * y(i))
QiContour1.zValue(i, j) = z
'自动定义层的颜色,层的幅度,Z的最大幅度和最小幅度
QiContour1.AutoValues
QiContour1.PlotContour
Me.Caption = &Demo 1 Data Graph&
绘制等高线之二
Private Sub idm_Demo2_Click()
Dim i%, j%, v!, v1!
Dim x(0 To 100) As Single,
y(0 To 100) As Single
With QiContour1
.numRows = 30 :
.numCols = 25
.numLayers = 10
.xAxisMin = -2 :
.xAxisMax = 2
.yAxisMin = -2.5 : .yAxisMax = 2.5
.BackColor = &HFFFFFF
For i = 0 To .numCols - 1
.xValue(i) = .xAxisMin + (.xAxisMax - .xAxisMin) / (.numCols - 1) * i
For i = 0 To .numRows - 1
.yValue(i) = .yAxisMin + (.yAxisMax - .yAxisMin) / (.numRows - 1) * i
For i = 0 To .numRows - 1
For j = 0 To .numCols - 1
v = .xValue(j) * .xValue(j) + .yValue(i) * .yValue(i)
v1 = (.xValue(j) + 1) * (.xValue(j) + 1) + (.yValue(i) + 1) * (.yValue(i) + 1)
.zValue(i, j) = Exp(-v / 2) - Exp(-v1 / 2)
For i = 0 To .numRows - 1
x(i) = .xAxisMin + (.xAxisMax - .xAxisMin) / (.numRows - 1) * i
For i = 0 To .numCols - 1
y(i) = .yAxisMin + (.yAxisMax - .yAxisMin) / (.numCols - 1) * i
.zAxisMin = .CalcZMinValue :
.zAxisMax = .CalcZMaxValue
For i = 0 To .numLayers - 1
.LayerValue(i) = .zAxisMin + (.zAxisMax - .zAxisMin) / (.numLayers - 1) * i
cr = 255 / (.numLayers - 1) * i
cb = 255 - cr
.LayerColor(i) = RGB(cr, 0, cb)
.zAxisMin = .CalcZMinValue :
.zAxisMax = .CalcZMaxValue
.PlotContour
Me.Caption = &Demo 2 Data Graph&
打开数据文件并自动绘图
Private Sub idm_LoadText_Click()
Dim fname As String
fname = getFile(0)
If fname && && Then
With QiContour1
If .OpenText(fname) & 0 Then
.zAxisMax = .CalcZMaxValue:
.zAxisMin = .CalcZMinValue
.xAxisMin = .xValue(0):
.xAxisMax = .xValue(.numCols - 1)
.yAxisMin = .yValue(0):
.yAxisMax = .yValue(.numRows - 1)
.numLayers = 10
'自动定义层的颜色,层的幅度,Z的最大幅度和最小幅度
.AutoValues
.PlotContour
Me.Caption = fname
ChengBo Software Workshop &您所在的位置: &
详解两种C#自动实现DLL(OCX)控件注册的方法
详解两种C#自动实现DLL(OCX)控件注册的方法
本文将为大家讲解的是两种C#自动实现Dll(OCX)控件注册的方法,希望通过本文能对大家有所帮助。
本文将为大家讲述DLL库自动注册的两种方法,包括调用Regsvr32方法等。希望通过本文能对大家有所帮助。
尽管MS为我们提供了丰富的.NET Framework库,我们的程序开发带来了极大的便利,但是有时候,一些特定功能的控件库还是需要由第三方提供或是自己编写。当需要用到Dll引用的时候,我们通常会通过&添加引用&的方式将它们纳入到项目中,然后就可以像使用自己的类一样方便的使用它们了。但是,有些Dll库(OCX)文件是需要注册到Windows注册表后才能正常添加和使用的。本文介绍两种为Dll库(OCX)自动注册的方法,为大家提供参考。
首先,大家都知道在Windows的&运行&中,输入&Regsvr32.exe 路径&这样的方法来手动注册Dll控件(OCX),显示这种方法对于程序的自动化部署等带来极大的不便,因此,今天我们着重介绍如何用C#实现自动注册。
方法一:调用Regsvr32法
既然可以在运行栏中输入&Regsvr32.exe 路径&的方法来注册,那么,一定可以在C#程序中采用同样的方法来调用Regsvr32,以实现注册:
Process&p&=&new&Process(); &p.StartInfo.FileName&=&&Regsvr32.exe&; &p.StartInfo.Arguments&=&&/s&C:\\DllTest.dll&;&p.Start();&
采用这种方法,注意要添加对命名空间System.Diagnostics的引用:
using&System.D&
另外,这种方法有一个不足之处,那就是注册工作是在本程序之外由Regsvr32.exe程序来完成的,系统内不方便知道注册的结果,也不方便对注册过程弹出的对话框进行自定义和控制。这里附Regsvr32的参数说明:(感谢网友伍华聪的提醒)
regsvr32.exe是32位系统下使用的DLL注册和反注册工具,使用它必须通过命令行的方式使用,格式是:
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] DLL文件名
命令可以在&开始&运行&的文本框中,也可以事先在bat批处理文档中编写好命令。未带任何参数是注册DLL文件功能,其它参数对应功能如下:
/u:反注册DLL文件;
/s:安静模式(Silent)执行命令,即在成功注册/反注册DLL文件前提下不显示结果提示框。
/c:控制端口;
/i:在使用/u反注册时调用DllI
/n:不调用DllRegisterServer,必须与/i连用。
方法二:调用DllRegisterServer函数法
既然方法一不大实用,那么我们就来寻找一种真正实用的方法来达到我们的目的吧。研究Regsvr32.exe和Dll文件,我们会发现,其实每个需要注册的文件都包括一个DllRegisterServer()方法,Regsvr32.exe就是通过调用该方法来完成Dll的注册的。呵呵,知道了这个,我们就可以自己调用DllRegisterServer()来完成注册过程啦。
首先,还得引入外部方法:
[DllImport(&DllTest.dll&)] &public&static&extern&int&DllRegisterServer();&[DllImport(&DllTest.dll&)] &public&static&extern&int&DllUnregisterServer();&
接下来就不难啦:
int&i&=&DllRegisterServer(); &if&(i&&=&0) &{ &&&&&&} &else&{ &&&&&&
取消注册的过程就不应再贴代码啦。
两种方法介绍完啦,可是好像还缺点什么?对了,那就是对Dll是否已经注册过了的判断。一般情况下,我们可以将对Dll控件的注册过程放在系统启动的过程中来完成,但是,总不能每次启动都注册一次吧?这样做显然不合理。那么,我们就来判断一下,当前Dll是否已经注册过,如果已注册过,就跳过注册过程。
每一个Dll的注册都会在注册表里记录下有关它本身的资料,如注册路径,唯一ID等。我们这里就是利用它留下的唯一ID号来判断:
RegistryKey&rkTest&=&Registry.ClassesRoot.OpenSubKey(&CLSID\\{DE-42BA-A1F6-3FB0BD6CA63B}\\&); &if&(rkTest&==&null){&&&&&
注意要添加对命名空间Microsoft.Win32的引用:
using Microsoft.Win32;
其中的&{DE-42BA-A1F6-3FB0BD6CA63B}&就是该Dll的唯一ID啦,每一个Dll文件都会不一样的。但是,问题又来了,怎么样知道它的唯一ID呢?其实很简单,那就是&逆向思维&。我们可先注册这个Dll文件,然后到注册表的&HKEY_CLASSES_ROOT\CLSID&分支下&查找&Dll的名称或路径,就可以看到这个ID啦。简单我就不多说啦。
原文标题:C#自动实现Dll(OCX)控件注册的两种方法
链接:/luckeryin/archive//1687999.html
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
《C#开发Android应用实战――使用Mono for Android和.NET/C# 全
本次的专刊为大家提供了Oracle最新推出的Java SE 8详细的开发教程,从解读到探究Java 8最新
今天是被国际上众多科技公司和软件企业承认的业内人士
互联网一大真理便是,有痛点的地方就有机会。现在最想
Eclipse 是一个开源的、可扩展的集成开发环境。平台本
本书分为8章,首先介绍ASP.NET的开发技巧和重点技术,尤其针对初学者如何快速入门并掌握ASP.NET编程做了深入浅出的介绍;然后重
51CTO旗下网站ocx打印控件 属性如何设置_百度知道
ocx打印控件 属性如何设置
其他类似问题
您可能关注的推广回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁WebOffice控件 官方网站――支持Word,Excel,PPT的Office文档控件 强制痕迹保留,支持Office全部功能菜单,手写签名,excel 控件 word 控件 weboffice.ocx webexcel,webword,webppt,webpowerpoint,webeditor,OFFICE办公文档,Word,Excel,打印预览,安全、标准的通讯协议是集成、开发、创建办公管理软件(OA)的利器!,web office 控件 Office控件,Office控件,webexcel,webword,webppt,webpowerpoint,webhtml,webeditor, office ocx ,Office控件,Office控件,Office控件,Office控件,Office控件Office控件,Office控件,Office控件,Office控件,Office控件,Office控件,Office控件
&&在线交谈QQ:&[]
.在线编辑OFFICE控件,DOMINO安全,64位信息加密,功能强大!&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&&怎么传递自定义结构体、void*、函数类型给OCX控件_Java123社区微信号:java123msg |||[][]当前位置: &
& 怎么传递自定义结构体、void*、函数类型给OCX控件我正在通过第三方库编写一个OCX控件,其实就是将第三方库的接口封装为OCX接口,但封装是遇到一个问题,就是在VS2010上添加OCX方法时,里面的参数类型是固定了的,某些参数类型没有我正在通过第三方库编写一个OCX控件,其实就是将第三方库的接口封装为OCX接口,但封装是遇到一个问题,就是在VS2010上添加OCX方法时,里面的参数类型是固定了的,某些参数类型没有,如上面所述的,所以如果我要传递上述参数时怎么弄呢,查了好多资料,都没觉得合适的,有没有这方面弄比较有经验的大神,麻烦指点一二啊,谢谢了
顶一下(1)100%踩一下(0)0%------分隔线------上一篇: 下一篇: 栏目列表推荐内容--------------WIN32 DLL头文件-------------- #ifdef LIB_FILE extern C int __dec...
最近用 IShellDispatch 来解压/压缩 Zip包。使用过程中遇到这个问题...
/en-us/library/bb250489(VS.85).aspx 看的是这骗文章。...

我要回帖

更多关于 ocx打印控件 的文章

 

随机推荐