怎么写控件

1.C++写标准控件怎么写
帮你写个控件滑动控件是Windows中最常用的控件之一。
一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有标签控件或编辑框控件,用于显示相应的值。
滑动控件在应用程序中用途级为广泛,如在桌面的属性中就可以看到。为此,看一下它的实现方法。
(1)在VC++ 6.0中新建一个对话框文档的工程。 (2)打开资源管理器,在对话框中放置一个EDIT控件,然后在它旁边放上一个Slider控件。
基本的框架已经完成了。 (3)对Slider控件右击,选择“建立类向导”,对刚才的Slider控件定义一个变量m_Slider,类型为CSliderCtrl。
(4)在对话框初始化的代码BOOL CMy601Dlg::OnInitDialog(),后添加相应的属性。以下是常用的属性设置函数: * GetRange,SetRange函数 用于查询和设置滑动条的取值范围,默认为0~100。
函数定义形式如下:void GetRange(int &nMin,int &nMax) const;void SetRange(int nMin,int nMax,BOOL bRedrGETaw=FALSE); * GetPos,SetPos函数 用于查询和设置滑动条的当前值。函数定义形式如下:int GetPos() const;int SetPos(int nPos); * GetLineSize,SetLineSize函数 用于查询和设置在按一下右或左箭头时滑块的移动量,默认为1个单位。
函数定义形式如下:int GetLineSize() const;int SetLineSize(int nSize); * GetPageSize,SetPageSize函数 用于查询和设置函滑块和块移动量,块移动量是指当按下PgUp或PgDown时滑块的移动量。函数定 义形式如下:int GetPageSize() const;int SetPageSize(int nSize); * SetTicFreq函数 用于设置滑动条刻度的频度。
默认为一个单位一个函数。函数定义形式如下:void SetTicFreq(int nFreq); * SetTic函数 用于在指定的位置设置刻度。
Windows默认的刻度是均匀的。函数定义形式如下:BOOL SetTic(int nTic); * ClearTics函数 用于清除所有的刻度。
函数定义形式如下:void ClearTics(BOOL bRedraw=FALSE); 我们在初始化时写入以下语句:m_Slider.SetRange(-100,100);m_Slider.SetTicFreq(10); 即:设置范围为-100到100,刻度为每10个单位一个。 (5)现在我们加入事件过程代码。
选择Slider的“事件”然后选择第一个过程(NM_CUSTOMDRAW)随后加入以下代码: void CMy601Dlg::OnCustomdrawSlider1(NMHDR* pNMHDR, LRESULT* pResult) {UpdateData(TRUE);m_Int=m_Slider.GetPos();UpdateData(FALSE); *pResult = 0;} 其中m_Int是定义的EDIT控件的类型为INT的变量。至此我们的编辑工作结束了。
(6)编译运行程序试试吧,很方便就使用了Slider 控件。 以上代码在Windows2000,VC++ 6.0/VC++.net上调试通过。
2.几种控件或层显示隐藏的写法
function addforum(){var forumAdd = document.getElementById("forumAdd"); //获取ID为forumAdd的层
if(forumAdd.style.display == "none"){ //判断层display样式
document.getElementById("forumAdd").style.display = "block"; //若隐藏,则显示
return false; //记得返回}document.getElementById("forumAdd").style.display = "none"; //否则执行隐藏
return false;} 2、对控件进行显示、隐藏 写法如下:同方法一 3、对控件、层进行赋值 document.getElementById('BtnAdd').innerHTML ="【Unvs.cn】"; document.form1.UserName.value = '【Unvs.cn】'; (一种获取控件的ID:document.getElementById('')).value =' 【Unvs.cn】';)二、后台对层进行显示隐藏或赋值 1、对层显示隐藏 写法如下(有两种方法): this.forumAdd.Visible = true;
this.forumAdd.Style["Display"] = "Block"; //层显示 2、对控件进行显示隐藏 写法如下: this.txtUserName.Visible = true; //方法同上 3、对控件进行赋值 一种就是常有文本框的写法:this.控件名.Text 一种就是用innerHTML写法:this.txtUserName.innerHTML= "【Unvs.cn】";其实这篇文章介绍的只是一些很常规的方法,基础的东西,同时还包含了一个知识点,就是通过js如何调用页面控件的值。。。个人正在JS学习中,所以总结这篇文章,分享给大家。
3.怎么把java写的控件(比如说一个按钮)加到layout布局里面呀
我有点不太明白你的意思,Java写的控件,放在Layout里,我现在理解是把Button放到一个容器里。如果是这样的话,那就简单了,有个add()方法的。比如:
public class Test extends Jframe
{
public Test()
{
Contianer contentPane = this.getContentPane() ;
contentPane.setLayout(new BorderLayout()) ; //设置为BorderLayout布局
contentPane.add(new Button("按键") , BorderLayout.NORTH) ; //放在北边
contentPane.add(new Button("按键") , BorderLayout.SOUTH) ; //放在南边
setVisible(true) ;
setSize(400,300) ;
}
public static void main(String args[])
{
new Test() ;
}
}
(代码没有调试过,自己调试吧)
基本上就可以 把Button入进去了,不知道你是这个意思没。
4.如何编写自定义控件的事件
//声明一个委托,委托可以理解成定义个函数指针类型.
public delegate void rbtEnterHandler();
//在你的类里
class xxx
{
//定义rbtEnterHandler委托类型的事件,事件名叫rbtEnter
event rbtEnterHandler rbtEnter
//在你需要的地方触发事件
void XXX()
{
if (rbtEnter!=null)
rbtEnter();
}
}
外部使用事件的方法,就和其他控件或类的事件一样.
5.vs 怎么使用编辑框控件 怎么写
一、Edit Control中应用函数来读写数据
1、int 变量同Edit Control中数据的转换
从Edit Control中获取数值变量 并且把Unicode转换成ASCII的简单方法:
int num;
num=GetDlgItemInt(IDC_EDIT,NULL,TRUE);
另外往Edit Control上写int变量
SetDlgItemInt(IDC_EDIT1,num,TRUE);
总结一下:int同Edit Control之间的数据传递:GetDlgItemInt +SetDlgItemInt。
2.从Edit Control获取字符串和往Edit Control上输入字符串
从Edit Control获取字符串:
CString str;
GetDlgItemText(IDC_EDITBOX,str)
这样Edit Control中的字符串就会被保存在str中
SetDlgItemText(IDC_EDIT1,_T("string"));
这样Edit Control将被写入string。
二、Edit Control应用MFC提供的DDX和DDV进行数值读写。
应用MFC提供的DDX和DDV进行数值读写非常方便,但进行编辑输入(不能是control只能是value,即只能输出不能输入),不能使用。
进行输出更改时,用DDX非常方便。直接把它当一般的变量读写即可。
vs2005中Edit Control控件右键单击 添加变量 选择value 设置变量名 比如说num 我们把它赋值给voltage
在你需要该数据的地方
UpdateData(TRUE);
voltage=num;
UpdateData(FALSE);
使用Edit Control编辑输入时,只能将控件设置为Control,这时只能是CEdit。这时需要将CEdit中的值先读取为文本格式,再将文本转换为相应的数据型变量。使用的函数如下:
int GetWindowTextA( LPTSTR lpszStringBuf, int nMaxCount ) const;
void GetWindowTextA( CString& rString ) const;
设置CEdit中文本的函数:
void SetWindowText( LPCTSTR lpszString );
例如:m_edit_fileName.SetWindowTextA(_T("Hello world"));