📄 bcjq061.txt
字号:
C++ Builder开发者:程序员之家
var how_many_ads = 3;
var now = new Date()
var sec = now.getSeconds()
var ad = sec % how_many_ads;
ad +=1;
首页
| 控件天堂 | 控件使用
| 编程技巧
| 源代码 | 编程工具 |
系统补丁 | 电子书籍 | 技术论坛
| 相关链接
if (ad==1) {document.write(''+'');}
if (ad==2) {document.write(''+'');}
if (ad==3) {document.write(''+'');}
var marqueecontents=''+scroll_text+''
if (document.all)
document.write(''+marqueecontents+'')
function regenerate(){
window.location.reload()
}
function regenerate2(){
if (document.layers){
setTimeout("window.onresize=regenerate",450)
intializemarquee()
}
}
function intializemarquee(){
document.cmarquee01.document.cmarquee02.document.write(marqueecontents)
document.cmarquee01.document.cmarquee02.document.close()
thelength=document.cmarquee01.document.cmarquee02.document.height
scrollit()
}
function scrollit(){
if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){
document.cmarquee01.document.cmarquee02.top-=speed
setTimeout("scrollit()",100)
}
else{
document.cmarquee01.document.cmarquee02.top=marqueeheight
scrollit()
}
}
window.onload=regenerate2
当前位置
:
编程技巧
用C++
Builder3 制作NotePad(记事本)
启动C++ Builder3后,在File菜单中选New APPlication来建立一个新程序。这时,显示在屏幕中间的窗口的标题是Form1,这个窗口是程序的主表单(就是主窗口的意恩),它将在程序启动时自动显示。而以后再创建的表单(Form)一般需要用Show()方法(Method)来显示。和组件一样,系统为第一个表单起名为Form1,以后的表单起名为Form2、Form3等等,标题(Caption)也是如此。
当然,你可以将它们改成你喜欢的名字。我们先来把Form1的名字(Name)属性设为MainForm,把MainForm的标题(Caption)属性设为“Untited.txt--我的记事本”。接着可以用鼠标拖动窗口的位置和改
变窗口的大小。以上的这些工作,几乎每个程序都需要如法炮制一番。
随后,我们要开始NotePad的编程工作了。知己知彼,百战不殆,先来分析一下MicroSoft NotePad的结构。其实NotePad是附件里最简单的程序了,它的主窗口中只包含一个占据全部用户区域(Client Area)的多行的编辑控制(Edit)。由于编辑控制最多容纳64KB文字(Windows95),所以NotePad只能打开小于64KB的文件。好,我们来依样画葫芦,选择Standard中的多行编辑(Memo)组件(而不是单行编辑组件)。
放入表单中,将多行编辑Memo1的Align属性设为alClient,这时Memo1撑满了整个窗口,Memo1中显示的是Memo1。选择Memo1的Lines属性,[TString]后面出现了一个按钮。
单击该按钮,将出现一个设置Lines属性的对话框,其中第一行便是“Memo1”。多行编辑(Memo)组件的Lines属性在设计时(Design Time)设定的内容将在该窗口创建时自动显示。由于我们不需要显示什么,所以把“Memo1”擦掉,选OK退出。你一定想看看目前的效果,运行一下吧。编译……连接……启动程序……怎
么样,是不是和NotePad一模一样,能打字、删字、删行,还能使用右键菜单来复制(copy)和粘贴(paste)。
本来就是嘛,用一样的编辑控制,不一样才怪呢。哎,不对,好像字体小了点,而且没有滚动条。没有关
系,关闭程序回到C++ Builder3中,先修改Memo1的字体(Font)属性,选择system字体(当然你爱选什么字
体都可以),然后设置滚动条(ScrollBars)属性,选择ssBoth(两根滚动条都要)。在这些改动之后,先别急着运行,windows的程序没菜单是不行的。在C++ Builder中,菜单也是组件之一。选择Standard中的主菜单(MainMenu)组件放入表单中。主菜单(MainMenu)组件显示为一个图标。顺便提一句菜单,对话框或系统功能之类组件属于非可视组件(nonvisual components),它们的工作基本不是用来满足视觉的,或者在程序运行时根本就看不见(相对于界面上可视组件来说),因此你可以将非可视组件放在表单中的任意位置。
接下来的工作是制作菜单,双击主菜单MainMenu1的图表,会弹出菜单编辑窗口,开始时是一个空菜单。按右键会弹出一个菜单(不是我们要做的菜单),其中:
Insert(添加一个菜单项,按Insert键完成相同的功能)
Delete(删除一个菜单项,按Delete键完成相同的功能)
Create SubMenu(添加一个子菜单,按Ctrl + →键完成相同的功能)
Select Menu(选择一个菜单,用来关闭当前编辑的菜单并选择另一个菜单来编辑)
Save as Template(将当前菜单保存为模板,供以后使用)
Insert From Template(将已有的菜单模板加入当前菜单)
Delete Template(删除菜单模板)
Insert From Resource(从资源文件中取得菜单加入当前菜单)
制作“我的记事本”的菜单有一种偷懒的方法,就是照抄Microsoft记事本的菜单。你可以用BC5.02的IDE打开Notepad.exe(先把打开文件对话框中的Viewer设为Edit Resource,再把文件类型设为Exe cutable(*.exe),这样才是以编辑资源的方式打开EXE文件,否则默认的打开方式是Debug调试程序),将里面的菜单导出以RC(资源脚本)方式存盘,然后用Insert From Resource导入该菜单;一共用不了2分钟。
还有一种方法就是自己一项一项慢慢地做。当然,不管你用什么方法,最后都要做出菜单来才能继续下面的工作。下面附上从Windows NT4.0中Notepad导出的菜单的资源脚本menu.rc,把下面的文件以menu.rc存盘就能用C++ Builder3来导入了:
1 MENU
{ POPUP "文件(&F)"
{ MENUITEM "新建(&N)", 9
MENUITEM "打开(&O)...", 10
MENUITEM "保存(&S)", 1
MENUITEM "另存为(&A)...", 2
MENUITEM SEPARATOR
MENUITEM "页面设置(&T)...", 32
MENUITEM "打印(&P)", 14
MENUITEM SEPARATOR
MENUITEM "退出(&X)", 28
}
POPUP "编辑(&E)"
{ MENUITEM "撤消(&U)\tCtrl+Z", 25
MENUITEM SEPARATOR
MENUITEM "剪切(&T)\tCtrl+X", 768,GRAYED
MENUITEM "复制(&C)\tCtrl+C", 769, GRAYED
MENUITEM "粘贴(&P)\tCtrl+V", 770,GRAYED
MENUITEM "删除(&L)\tDel",771, GRAYED
MENUITEM SEPARATOR
MENUITEM "全部选定(&A)", 7
MENUITEM "时间/日期(&D)\tF5",12
MENUITEM SEPARATOR
MENUITEM "自动换行(&W)", 27
MENUITEM "设置字体(&F)...", 37
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -