(附完整源代码)设置了列表控件的背景为透明后,为什么列表的第1列会变成黑色???

yrisxfyh 2009-09-25 04:45:49


本来以为我的项目可能真是代码写的太多了,哪个地方可能出问题了,问了很多人,都说不会出现这种问题,
现在我重新建了个原始的基于对话框的应用程序项目,对这个问题单独进行测试,发现,结果还是这样!!
下面的代码就是新项目测试的代码,最精简的..

// ------------------------------- DemoDlg.h : 对话框类头文件 -------------------------------
// DemoDlg.h : 头文件
//
#pragma once

// CDemoDlg 对话框
class CDemoDlg : public CDialog
{
// 构造
public:
CDemoDlg(CWnd* pParent = NULL); // 标准构造函数

// 对话框数据
enum { IDD = IDD_DEMO_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

// 实现
protected:
HICON m_hIcon;

// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()

public:
CListCtrl m_CListCtrl;
};




// ------------------------------- DemoDlg.cpp : 实现文件 -------------------------------
// DemoDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "Demo.h"
#include "DemoDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CDemoDlg 对话框

CDemoDlg::CDemoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDemoDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CDemoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);

DDX_Control(pDX, IDC_LIST, m_CListCtrl);
}

BEGIN_MESSAGE_MAP(CDemoDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


// CDemoDlg 消息处理程序
BOOL CDemoDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标

// TODO: 在此添加额外的初始化代码

m_CListCtrl.SetBkColor(CLR_NONE);//问题就出在这里,除非把下面的SetExtendedStyle()方法去掉,否则就会变黑色
m_CListCtrl.SetTextBkColor(CLR_NONE);

// 设置列表控件的风格
m_CListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

m_CListCtrl.InsertColumn(1, _T("日期"), LVCFMT_CENTER, 75);
m_CListCtrl.InsertColumn(1, _T("星期"), LVCFMT_CENTER, 60);
m_CListCtrl.InsertColumn(2, _T("中午(份)"), LVCFMT_CENTER, 70);
m_CListCtrl.InsertColumn(3, _T("晚上(份)"), LVCFMT_CENTER, 70);

m_CListCtrl.InsertItem(0, _T(""));
m_CListCtrl.SetItemText(0, 0, _T("黑龙江"));

m_CListCtrl.InsertItem(1, _T(""));
m_CListCtrl.SetItemText(1, 0, _T("吉林"));

m_CListCtrl.InsertItem(2, _T(""));
m_CListCtrl.SetItemText(2, 0, _T("辽宁"));

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}

// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。

void CDemoDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;

// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}

//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CDemoDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}


大家看看这些代码,大部分都是建立对话框应用程序后,自动生成的,自己添加的只有那么几行,我想问题应该很明显
我的编译环境是VS2008,程序运行后,便会出现图中的情况
所有分都给了..希望这回能有朋友可以帮我解决,郁闷好多天了....
...全文
119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yrisxfyh 2009-09-27
  • 打赏
  • 举报
回复
没人知道么
yrisxfyh 2009-09-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xylicon 的回复:]
lz代码没发现问题,是不是资源选中了一些奇怪的选项呢。
[/Quote]

没有吧..除了把列表控件设为 report,其他什么都没有改动
yrisxfyh 2009-09-26
  • 打赏
  • 举报
回复
没人知道么
xylicon 2009-09-25
  • 打赏
  • 举报
回复
lz代码没发现问题,是不是资源选中了一些奇怪的选项呢。
yrisxfyh 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 tr0j4n 的回复:]
m_CListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES|LVS_REPORT);
[/Quote]

不行
MoXiaoRab 2009-09-25
  • 打赏
  • 举报
回复
m_CListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES|LVS_REPORT);
yrisxfyh 2009-09-25
  • 打赏
  • 举报
回复
有人能帮看下吗??
一、J Query实例大全 1)AjaxJavaScript资源 1.JS+CSS仿腾讯QQ首页搜索框无刷新换肤效果代码 2.js+css简单后台二级树形菜单demo示例 3.JS+CSS美化经典Select选项框插件 4.JS+CSS通用一个页面同时三个焦点图轮换效果完整实例 5.JS+CSS网页版模拟QQ登录框界面特效示例 6.JS+flash立柱广告代码仿百度MP3搜索右侧可伸缩的立柱广告效果 7.JS版本黑色超动感二级菜单导航模块代码 穿越火线游戏网 8.JS经典3款风格QQ客服在线浮动右侧与左侧代码 9.JS精简网页音乐播放器 浮动在页面顶部像工具栏 10.超强JS网页版泡泡龙游戏下载 11.兼容各浏览器JS+CSS水平和垂直无缝图片滚动效果代码 12.漂亮暖色调js+flash平滑过渡大屏图片切换的广告代码 13.实用国外JS内容选项卡DEMO下载 14.推荐通用文字图片JS不间断滚动封装类 代替Marquee 15.站长推荐全新兼容DIV+CSS版中国地图 JS+DIV+CSS支持热点效果的中国地图 16.支持4级树形 展开菜单插件dTree原版下载 2)JQuery Tab 1.jQuery.Switchable常见网页UI组件(整合Tabs、Slide、Scrollable等插件) 2.jQuery层拖拽插件之jquery仿QQ空间的模块拖动功能插件下载 3.jQuery动感图标切换网页Tab选项卡导航代码 4.jquery封装Tab标签选项卡,内含动画版选项卡及滑动门 5.jQuery实现flash动感切换选项卡TAB插件示例 6.jquery制作自动播放的TAB切换特效 7.基于jQuery简单的Tab滑动门菜单代码(jQuery MoveTab) 8.简单jquery选项卡插件下载(支持鼠标移上切换、点击切换、Ajax方式切换等) 9.漂亮Tab插件之jQuery自动切换轮播Tab选项卡示例代码 10.实用jquery+CSS实现流畅tab切换效果(Coda-Slider 1.1.1)插件 11.实用jquery标签Tab插件下载可切换不同的颜色 12.推荐jquery仿淘宝网商品排行榜展示切换效果,适合电子商务网站使用 13.一款jQuery黑金钢动感Tab选项卡代码 14.站长推荐jQuery动画翻转选项卡(flip风格) 3)表单验证 1.jquery+css美化select下拉菜单插件(Stylish Select v0.3)下载 2.jQuery+CSS实现多项选择文本框的插件下载 3.jQuery表单验证插件EasyValidator 2.0带TIP提示效果 4.jQuery导航插件下载之支持三级的Menu暖色、动画、折叠功能的导航菜单 5.jquery美化CheckBox的插件下载 6.jQuery美化表单漂亮插件jqtransform下载 7.jquery强大表单字符输入限制插件jQuery AlphaNumeric下载 8.jQuery实现表格带排序功能的源码 9.jquery实现动感隐藏登录入口代码 10.jQuery限制input或texteara字符输入限制字数控制插件下载 11.jQuery支持三级菜单的超酷华丽炫彩动感多级渐显菜单下载 12.jQuery制作登录按钮实现Ajax带状态提示 13.jvalidate无刷新表单验证插件示例下载 14.分享jquery无刷新多功能表单验证插件并漂亮美化表单及错误输入提示效果 15.简单jQuery+CSS实现验证表单红色提示效果 16.简单表单input输入框提示插件1.0下载 17.另种效果的jQuery EasyValidator表单验证插件demo示例下载 18.漂亮绿色多级动感仿flash效果的jquery网站导航菜单 19.实用jQuery列表多项选择插件 20.实用jquery实现鼠标滚轮控制改变文本框数字的插件 21.实用jquery使用ul模拟表单select列表效果 22.实用jQuery无限级导航菜单源码下载 23.适合于网站注册的jQuery用户注册条款插件下载(带特效) 24.提升用户体验jquery Ajax表单输入检测验证示例代码 25.推荐jQuery美化Select下拉单选框模拟插件V1.3.6版本下载 26.推荐jQuery美化select下拉框样式漂亮效果 27.下载jQuery网页表单美化修饰插件(jQtransForm美化表单) 28.一款jquery实现表单输入提示的Autobox插件(基于jquery.ui) 29.一款美化表单下拉列表、复选框等的jquery combobox插件实例 30.站长必备jquery实现combox自动筛选,高亮显示功能 4)菜单 1.jquery+CSS超炫丽横向多级滑动导航菜单 2.jQuery+CSS漂亮蓝色三级菜单下载 3.jquery+css实现简洁两级横向导航菜单,带动态效果 4.jQuery+CSS实现竖形动感导航菜单效果 5.jquery+div漂亮SmartMenu下拉菜单气泡透明效果 6.jQuery+div实现flash炫彩菜单插件下载 7.jquery+div实用漂亮精致的多级导航栏菜单插件代码示例 8.jQuery+ul实现漂亮竖直下拉菜单 9.jquery仿google首页图标动画菜单效果实现模拟鼠标动画菜单的代码 10.jquery仿卓越亚马逊网鼠标移到按钮弹出菜单的效果代码 11.jquery浮动变化的个性菜单插件floatmenu下载 12.jQuery黑色风格仿Flash版下滑菜单效果 13.jquery黑色循环滚动菜单特效插件下载 14.jquery灰色简洁风格横向三级网站导航菜单 15.jquery简洁动感支持三级的黑色导航菜单 16.jquery类似TAB一样的动感菜单下载 17.jquery绿色动感滑动下拉多级导航菜单代码下载 18.jQuery美化复选框Checkbox和radio单选框的插件hcheckbox示例 19.jQuery漂亮Flash卡通动感菜单示例 20.jQuery漂亮动感二级网站导航菜单源码下载 21.jquery漂亮苹果系统动画效果的导航菜单示例 22.jquery平滑效果黑色横向与纵向多级下拉菜单插件(支持5级) 23.jquery实现的动感菜单导航条源码 24.jquery实用滚动下拉菜单代码 25.jquery鼠标移动出现下拉菜单及提示特效代码 26.jquery外国滚动型多级展开菜单插件(jGlideMenu)下载 27.jquery自由滚动切换 标签式导航菜单示例 28.博客Blog横向jquery动态滑动菜单插件示例 29.打包50种实例的大型树形菜单控件JSTree(基于jQuery)下载 30.打包两款实用jquery+div横向滑动的下滑菜单代码(兼容性好)下载 31.非常帅jquery仿雅虎网超大菜单导航代码 32.分享jquery带阴影效果折叠菜单dropdown给大家 33.分享下载jquery+Css黑色风格版的手风琴菜单,带动感效果 34.分享一款jquery收缩展开的多级导航(带手风琴效果示例) 35.国外漂亮动感jquery三级导航菜单插件(横向自动展开)下载 36.基于jquery美化表单效果的插件 37.兼容性好的jquery+div漂亮黑色动感下拉菜单 38.简单jquery背景滑动菜单插件示例 39.经典jQuery三级省、市、县级联菜单下载 40.漂亮jQuery+CSS橙黄色两级导航菜单示例下载 41.漂亮jQuery+CSS竖直菜单下拉展开菜单(手风琴)动画缓冲效果 42.漂亮jQuery四级滑出菜单插件带动画效果适合大多数网站 43.漂亮绿色jquery下拉菜单导航条源码下载 44.漂亮实用jquery绿色风格水平二级导航菜单 45.适合后台的jquery二级下滑菜单带展开与合拢功能 46.树形菜单jquery.popup支持文本框弹出层选择项插件 47.通用性强的jquery带箭头跟随的垂直菜单组(jquery vmenu)插件下载 48.推荐jQuery黑色多级横向菜单导航(带动画效果) 49.学习jQuery简单伸缩菜单代码实例 50.一款jquery仿flash滑动左侧菜单插件代码下载 51.一款jQuery实现伸缩型菜单源码下载 52.一款jQuery制作仿FLASH动感导航菜单效果(PSD) 53.又一款jquery蓝色经典的三级动画网站菜单 54.又一款黑色风格jQuery支持多级的动感下拉菜单源码 55.增加用户体验之jQuery黑色下拉菜单插件下载 56.站长必备jQuery横向动感菜单代码下载 57.站长必备jQuery可展开与折叠的竖向手风琴内容展示菜单 58.支持3级的jquery天蓝色动画菜单下载,适合艺术类、儿童类网站使用 5)对话框 1.jquery仿div透明模态弹出窗插件下载 2.jquery实现多风格消息弹出框插件jGrowl下载 3.jQuery弹出层插件PopupDiv-v1.0下载(支持ajax、居中等效果) 4.jQuery超炫淡入淡出效果DIV渐变居中弹出框插件下载 5.jquery黑色+蓝色风格DIV提示框示例 6.一款jQuery+DIV居中淡入淡出信息提示框示例 7.一款jQuery可拖动提示窗插件(对话框Dialog插件) 8.一款基于jQuery实现的多功能弹出窗插件weebox及示例代码 9.一款支持拖拽的jQuery层弹出窗口(TipsWindown1.0版本)下载 10.分享一款jquery Ajax弹出对话框插件SimpleModal 11.下载jQuery对话框Dialog弹出层插件演示与使用说明 12.实用jQuery漂亮浮动层插件,精美Dialog代码 13.带关闭按钮jquery+div消息弹出层代码例子 14.推荐jQuery+CSS实现图片放大浮动层带关闭按钮 15.通用jQuery对话框dialog或popup弹出层或提示窗口插件下载 6)工具提示 1.jquery+div随屏幕滚动特效(支持设置参数滚动) 2.jQuery字符插件之适合留言板的jquery文本框输入字符限制插件下载 3.jquery实现Tooltip提示(文字、链接、地图锚点),自带5种不同样式 4.jQuery实现支付宝隐藏层提示信息内容的功能 5.jquery实现鼠标划过网址名称显示网站截图功能 6.jQuery带Tips动画提示通用表单验证插件下载(jquery validate),动画效果漂亮 7.jQuery鼠标移到下载地址滑出气泡提示效果的插件 8.又一款jquery实现链接Tip演示下载 9.常用jQuery弹出式链接提示效果Tooltip源码下载 10.相当牛的jQuery动感TipBox,鼠标移上去会动的提示框哦 11.简单实用jQuery用于登录弹出层例子代码(带动画的弹出层) 12.综合jquery实现表格隔行换色和鼠标经过提示效果源码 7)日历插件 1.jQuery简洁漂亮点阵数字时钟显示日期的插件 2.一款简单jQuery日历选择器代码 3.基于jquery实现倒计时钟插件下载,Flip-Down Clock特效效果 4.基于jquery实现多功能日历插件(weekcalendar)1.2版本下载 5.实用漂亮jQuery网页日历插件datePicker下载 6.简洁实用jquery日期选择插件之jQuery datePicker下载 8)图片展示 1.2款jQuery图片自动切换常用广告代码 2.jquery+css五屏焦点图淡入淡出+圆形按钮切换广告图片代码 3.jQuery+CSS实用图片收缩与放大效果插件 4.jquery+div实现同时滑动切换的图文展示特效插件下载 5.jquery+div带动画按钮图片手动与自动切换的特效代码 6.jquery一页多用的飞飞图片幻灯插件演示 7.jquery仿flash产品图片多角度展示特效代码 8.jquery仿flash图片放大相册的插件代码(Zoomer Gallery)下载 9.jquery仿flash的图片幻灯片播放特效实例完整版 10.jquery仿LightBox图片盒子单击逐渐放大的图片展示的插件下载 11.jquery仿Lightbox的插件jQuery UI.ariaLightbox点击图片放大显示插件下载 12.jQuery仿动感flash自动滚动图片切换广告插件 13.jQuery仿新浪新闻图片浏览器(支持鼠标左右滚动控制图片切换) 14.jquery仿苏宁易购商城产品图片全方位展示功能 15.jquery制作漂亮按钮示例打包 16.jQuery动态切换网页背景的大块图片的导航栏代码 17.jquery图文排行混合互相切换效果(仿Vancl效果) 18.jQuery图片插件之鼠标放在图片上出现动态的hover效果插件 19.jQuery图片自动轮播淡入淡出的幻灯插件iFadeSlide 20.jQuery大气banner带时间线自动播放的焦点图轮番切换代码 21.jquery定时自动切换banner广告图片动画插件示例 22.jquery实现LightBox图片点击放大效果的图片盒子插件 23.jQuery实现slider图片滚动,单个滚动,成组滚动示例 24.jQuery实现产品图片循坏旋转的代码 25.jQuery实现动态图文分组排序切换源码 26.jQuery实现图片3D旋转特效插件 v1.1版本下载 27.jQuery实现图片3D立体感的前后轮番展示特效 28.jQuery实现图片取景器仿相机拍照功能的插件photoShoot 29.jQuery实现图片变色特效插件与实例下载如jquery图片变灰色 30.jquery实现图片可拖动展示的实例下载 31.jQuery实现拖动滚动条的缩略图排列插件下载 32.jQuery实现焦点图片Flash自动平滑渐变效果 33.jQuery实现鼠标移到链接提示显示图片功能插件 34.jquery实现鼠标经过链接放大图片特效代码 35.jquery实用Banner大图片横向切换效果 36.jquery实用产品图片展示动感切换效果源码 37.jquery平滑交换真彩色的图片逐渐变为黑白图像的代码 38.jquery异步加载图片的插件jqGalScroll下载 39.jquery微型相册插件Micro Image Gallery下载 40.jQuery把图片放大及变亮特效插件下载 41.jquery拖动滚动条控制图片滚动及图片放大特效的示例 42.jquery旋转式图片切换并带图片放大功能 43.jQuery漂亮网页右上角双层撕角广告代码 44.jquery漂亮网页布局综合定时器、切换间隔、滚动时间、滚动图片个数等示例 45.jQuery演示Ajax加载并显示图片的相片画廊实例 46.jQuery版Sexy Lightbox 2.3内容修饰框插件下载(支持HTML,flash,图片,视频等) 47.jquery版自动滚动图片动画特效插件可处理图片JSON数据源 48.jQuery电子商务网站产品展示插件之仿苏宁易购商城产品图展示特效 49.jquery相册播放器插件实现无序图片列表转换成有序并播放 50.jQuery移动网页背景图浮云流水特效 51.jquery简单控制上下、左右四方向滚动的特效插件下载 52.jquery缩略图滚动特效之带小图的网页元素滚动轮播插件 53.jquery网站顶部滑动广告插件 54.jquery自动播放图片滚动漂浮式效果的示例 55.jquery贴图旋转及缩放插件下载 56.jquery门户网站首页全屏弹性伸缩至小屏的广告代码(非常实用) 57.jQuery黑色动感Ajax无刷新动态分组图片效果代码 58.jquery黑色风格左右带箭头的图片浏览控制插件下载 59.jQuery鼠标滑动图片显示标题与简介的滑动动感特效代码 60.jQuery鼠标移上小图显示大缩略图功能 61.js仿淘宝网鼠标经过缩略图放大图片效果的jQuery Fancy Hover Effect完整实例 62.Supersized jQuery全屏相册图片自动切换插件 63.[荐]jquery仿flash漂亮横向图片滚动效果完整版(兼容性非常好) 64.[荐]jQuery焦点图幻灯切换插件Tab选项卡(soChange 1.4)下载 65.一款jQuery仿flash放大图片的相册插件 66.一款jQuery仿苹果mac os系统经典菜单效果源码 67.一款jQuery动感左右滚动图片切换插件带缩图一起滚动 68.一款jQuery实现banner图片轮显、广告切换、图片幻灯插件EasySlide下载 69.一款jquery实现图片放大插件imgBox下载 70.一款jQuery实现漂亮精美相册插件源码 71.一款jQuery左右箭头控制大图滚动切换的代码 72.一款jquery常用产品图片放大效果插件下载 73.一款jQuery插件slide幻灯片切换图片宽高自适应 74.一款jQuery漂亮淡出淡入焦点大图切换源码 75.一款jquery缩略图商品切换放大展示功能插件 76.一款使用jQuery左右控制横向图片滚动的代码 77.一款基于jquery定时图片切换代码下载 78.一款实用经典jQuery图片切换展示插件下载 79.下载jQuery动感广告图片翻转插件(PictureRoll)示例版 80.下载JQuery淡入淡出效果插件InnerFade 81.下载jquery走马灯效果图片连续滚动的实例 82.几种简单实用jQuery焦点图片自动切换效果 83.分享jquery仿LightBox动感多样式图片放大插件zoomimage下载 84.分享jquery仿当当网店铺图片轮番切换(同时显示图片说明)代码下载 85.分享一款jQuery thumbnail惟美的图片Tip提示效果 86.分享一款jquery仿lightbox无刷新图片显示插件PrettyPhoto下载 87.分享多款jQuery图片预加载切换效果(上下滚动、淡入淡出渐变等) 88.动感十足jquery仿腾讯图片滚动浏览功能(带左右控制按钮)MovingBoxes插件下载 89.参考JQZOOM插件使用jQuery仿京东网产品展示切换及放大效果的代码 90.又一款jquery自动轮播焦点图+内容的广告代码 91.又一款非常不错的jQuery+div大气新闻图片切换插件代码(AnythingSlider)下载 92.基于jQuery带时间轴宽屏图片切换源码 93.基于jQuery的横向无缝图片滚动插件jcarousel 94.实用jquery焦点图源码2 95.常用jQuery新闻焦点图片切换效果插件 96.强大jQuery实现3D文字三维旋转效果代码下载 97.很帅的jquery焦点图切换源码可用于产品大图展示 98.很帅的jQuery鼠标移动预览图展示+简介内容展示特效代码 99.打包jQuery实用3个焦点图切换自动切换特效的代码 100.打包jquery拖动条拖动图片缩略图及放大图片效果插件(翻版thickbox插件) 101.打包基于jQuery对图片边框修饰插件示例下载(支持图片阴影效果、顶部banner效果、邮票边框、毛边相框、云朵包围效果) 102.推荐jquery仿Flash大banner图片切换播放特效,非常完美 103.推荐jQuery仿新浪QQ绝好图片轮播效果带左右控制插件 104.推荐jQuery兼容所有浏览器的自定义多样式图片幻灯片插件(KinSlideshow)下载 105.推荐jquery动画制作示例图片滚动和飞行乌鸦,车窗效果,非常强大 106.推荐jQuery实用缩略图广告效果插件下载 107.推荐jQuery模拟Windows视窗的效果实现相册图片拖动特效插件 108.推荐jQuery网站首页三幅banner切换大图广告自动滚动代码下载 109.推荐jQuery购物类产品图片放大插件jqzoom v2.0下载 110.推荐实用jquery图片截取代码下载 111.站长推荐jQuery产品展示专用的图片幻灯+缩略图、左右控制按钮实例下载 112.站长推荐一款非常精美的jQuery 1.4漂亮相册程序打包给大家 113.站长素材推荐jQuery带箭头控制左右图片滚动效果 114.第二款jQuery左右移动图片+内容展示插件代码 115.简单jQuery实现产品图片自动左右滚动插件下载 116.编辑推荐jQuery超帅模拟图片翻页的展示Flash特效效果 117.适合网站内容推广淡入淡出特效的jQuery焦点图结合文字导航切换特效(很精美) 118.非常不错jQuery放大镜实例包下载(可放大图片与区域放大的AnythingZoomer插件) 119.非常不错jQuery网页内容图片分类插件带特效 120.非常实用的jquery幻灯切换广告源码 121.非常帅的jQeruy图片切换拖影变清淅的神奇特效 122.非常漂亮jQuery左右切换三屏大幅焦点图广告代码下载 二、CSS + DIV 1)CSS网页模版 1.一款DIV绿色效果网页模板 2.一款浅蓝色DIV+CSS企业软件宣传全站模板 3.一款深蓝色DIV商务网页模板 4.一款潮流前线CSS网页模板 5.一款简洁漂亮棕褐色网页模板(DIV+CSS实现) 6.一款纯DIV+CSS商店模板下载 7.一款纯DIV+CSS灰色风格的网页模板 8.个性网页模板之用花装饰的DIV网站模板打包 9.公司类模板下载之专业公司DIV+CSS网页模板 10.公司类网页模板推荐大气的公司CSS模板下载 11.博客模板下载之DIV+CSS实现纸张效果博客模板 12.博客模板下载之灰色blog模板 13.商业模板下载之纯DIV+CSS制作深褐色商务网页模板 14.圣诞节日网页模板之欢乐圣诞纯DIV网站模板下载 15.圣诞节模板下载之圣诞礼物CSS网页模板 16.室内装饰类企业网页模板下载 17.工程类公司DIV网页模板源码下载 18.整套完整版纯DIV+CSS律师事务所类整站全套模板 19.深蓝色DIV公司类网页模板下载 20.深蓝色网页模板整理2 21.漂亮HTML网页模板纯DIV编写 22.漂亮模板推荐之水鸭色DIV+CSS网页模板 23.漂亮纯DIV+CSS绿色风格网页模板 24.漂亮网页模板下载之DIV+CSS木质性网站模板 25.漂亮英文DIV+CSS餐厅网站模板源码 26.简单纯DIV橙色网页模板 27.纯DIV+CSS制作的黑绿风格植物类网站模板 28.纯绿色博客类DIV网页模板 29.经典黑色DIV公司网页模板 30.绿色清新效果DIV网页模板 31.网页博客模板下载之DIV+CSS黄色博客模板 32.适合旅游类DIV+CSS网站模板源码 2)DIV+CSS实例 1.CSS导航菜单之颜色淡绿色水平导航菜单源码 2.CSS橙色一级导航菜单示例 3.CSS绿色网站导航菜单 4.css菜单系列之纯CSS灰色下拉菜单源码 5.css菜单系列之纯CSS黄色垂直左栏导航菜单 6.DIV仿支付宝导航菜单实例 7.jQuery+CSS实现蓝色垂直导航菜单带提示效果 8.jQuery实现车门滑动效果菜单源码,很帅哦 9.Jquery经典插件收集 10.使用jquery实现清新蓝色CSS二级菜单 11.兼容IEFF浏览器不规则TAB选项卡源码 12.实用网站快速导航CSS按钮菜单源码(漂亮CSS导航按钮菜单) 13.强烈推荐一款jQuery+CSS仿iPhone手机面板导航效果源码 14.推荐实用OA系统左侧DIV+CSS菜单源码(漂亮OA界面菜单源码下载) 15.推荐实用的jQuery+CSS水平二级导航菜单源码(黑蓝效果) 16.政府类网站支持二级纯CSS导航菜单源码 17.漂亮CSS小图标mini导航效果 18.漂亮滑动透明效果CSS水平导航菜单源码 19.简单实用CSS蓝色垂直导航菜单(UL、LI结合实现) 20.简单实用亮黑色纯CSS水平导航菜单 21.纯CSS+图片实现橙色网站水平菜单实例 22.纯CSS实现棕黄色水平导航菜单源码 23.纯CSS实现水平梯形CSS导航菜单(很简单) 24.纯CSS实现蓝色圆角水平网站导航菜单 25.纯CSS实现黑色水平CSS导航菜单源码 26.纯CSS菜单系列之橙色块状水平导航类CSS菜单 27.纯DIV+CSS灰色网站导航菜单 自适应长度菜单背景 28.非常漂亮2010猪八戒网站导航菜单源码
Flash 模拟试题及答案(一) 1.Loading应该放在影片的什麽位置? A. 影片不能有Loading B. 中间 C. 后面 D. 前面 2.Flash中设置属性的命令是? A. Set Polity B. Polity C. Property D. Set Property 3.Flash action“while”意义是? A. 卸载动画片段符号 B. 声明局部变量 C. 当…成立时 D. 对…对象(Object)做 4.Flash中如何查看特定场景? A. 选择 Window > Inspectors > Scene B. 选择 View > Goto ,然后选择场景名字 C. 选择 Insert > Scene D. 点击场景监控器中的 Delete 5.Flash中如何选取场景中所有层中的所有对象? A. 按住 Shift 键的同时进行新的选取 B. 选择 Edit > Select All C. 选择 Edit > Select All D. 在时间轴上点击帧 6.Flash查看(View)菜单中,Work Area表示? A. 将作品编辑区域以“工作区”方式显示 B. 在编辑区域中显示标尺 C. 在编辑区域中显示底格辅助线 D. 设置“磁铁”功能 7.Flash5中,Common Library默认共有几类公用对象: A. 3 B. 4 C. 5 D. 6 8.Flash中Remove movie clip指的是什么? A. 删除已复制的电影夹子 B. 删除电影夹子 C. 移动电影夹子 D. 复制电影夹子 9.Flash可接受的当鼠标放在按钮上时产生效果的鼠标操作是哪个? A. Press B. Release C. Release Outside D. Roll Over 10.Flash action“var”意义是? A. 卸载动画片段符号 B. 声明局部变量 C. 当…成立时 D. 对…对象(Object)做 11.Flash 菜单Modify→Ungroup 的快捷操作是? A. Ctrl+G B. Ctrl+Shift+G C. Ctrl+B D. Ctrl+Shift+P 12.Flash action“FSCommand”意义是? A. 停止所有声音的播放 B. 跳转至某个超级连接地址URL C. 发送FSCommand命令 D. 装载影片 13.Flash action“Stop All Sounds”意义是? A. 停止所有声音的播放 B. 跳转至某个超级连接地址URL C. 发送FSCommand命令 D. 装载影片 14.Flash中Duplicate movie clip指的是什么? A. 删除已复制的电影夹子 B. 删除电影夹子 C. 移动电影夹子 D. 复制电影夹子 15.Flash5中,插入新symbol的快捷键是 A. Ctrl+F5 B. Ctrl+F6 C. Ctrl+F7 D. Ctrl+F8 16.lash能将ASCII代码转换成对应的字符,也可以返回字符对应的ASCII码。Chr表示什么? A. 转换ASCII码为字符 B. 转换字符为ASCII码 C. 转换字符为海明码 D. 转换海明码为字符 17.Flash 菜单File→Print的快捷操作是? A. Ctrl+P B. Ctrl+Q C. Ctrl+Z D. Ctrl+Y 18.Flash中TRANSFORM表示什么面板? A. 信息面板 B. 填充面板 C. 描边面板 D. 变形面板 19.Flash插入(Insert)菜单中,Key Frame表示? A. 删除当前帧或选定的帧序列 B. 在时间线上插入一个新的关键帧 C. 在时间线上插入一个新的空白关键帧 D. 清楚当前位置上或选定的关键在时间线上插入一个新的关键 20.Flash 菜单Modify→Group的快捷操作是? A. Ctrl+G B. Ctrl+Shift+G C. Ctrl+B D. Ctrl+Shift+P 21.Flash中如果想要测试完整的互动功能和动画功能怎么办? A. 选择 Control > Loop Playback B. 选择 Control > Enable Buttons C. 选择Control > Test Movie D. 选择 Control > Actions 22.Flash 菜单View→Work Area 的快捷操作是? A. Ctrl+Shift+W B. Ctrl+Alt+Shift+R C. Ctrl+Alt+Shift+G D. Ctrl+Alt+G 23.Flash 菜单Control→Step Forward的快捷操作是? A. Enter B. Ctrl+Alt+R C. > D. Hide Edges 的作用是: □ A. 隐藏被选择对象的突出显示状态 □ B. 隐藏被选择对象的外框轮廓 □ C. 隐藏被选择对象的填充区域 □ D. 隐藏被选择对象的线条 7. 当Flash 导出较短小的事件声音(例如按钮单击的声音)时,最适合的压缩选项是: □ A. ADPCM 压缩选项 □ B. MP3 压缩选项 □ C. Speech 压缩选项 □ D. Raw 压缩选项 8. 对于在网络上播放动画来说,最合适的帧频率是: □ A. 每秒24 帧 □ B. 每秒12 帧 □ C. 每秒25 帧 □ D. 每秒16 帧 9. 将舞台上的对象转换为元件的步骤是: □ A. "1.选定舞台上的元素; 2.. 单击Insert> Convert to Symbol,打开Convert to Symbol 对话框 3.填写Convert to Symbol 对话框,并点击确定" □ B. "1.. 单击Insert> Convert to Symbol,打开Convert to Symbol 对话框 2.选定舞台上的元素 3.填写Convert to Symbol 对话框,并点击确定" □ C. "1.选定舞台上的元素,并将选定元素拖到库面板上 2.. 单击Insert> Convert to Symbol,打开Convert to Symbol 对话框 3.填写Convert to Symbol 对话框,并点击确定" □ D. "1.. 单击Insert> Convert to Symbol,打开Convert to Symbol 对话框 2.选定舞台上的元素,并将选定元素拖到库面板上 3.填写Convert to Symbol 对话框,并点击确定" 10. 某电影中,只有一个layer1,其上放置一个有两个元件(test1 和test2)组合成的组合体, 选择这个组合体执行打散Ctrl+B,然后右键单击执行Distribute to layers,那末: □ A. 这个电影中将增加两个新层:layer2 和layer3 □ B. 这个电影中将增加两个新层:test1 和test2,而原有的layer1 将消失 □ C. 这个电影中将增加两个新层:test1 和test2,而原有的图层维持不变 □ D. 这个电影中将增加两个新层:test1 和test2,而原有的layer1 成为空层 11. 全等(===)运算符和相同运算符基本相似,但是它们有一个很重要的区别 □ A. 全等(===)运算符执行数据类型的转换 □ B. 全等(===)运算符不执行数据类型的转换 □ C. 全等(===)运算符永远返回真 □ D. 以上都不对 12. 如果导入的是图像序列中的一个picture001.bmp 文件,并且序列中的其他文件位于相同的 文件夹中,则将被识别为图像序列将是下面哪些: □ A. picture001.bmp □ B. picture002.bmp □ C. picture003.bmp □ D. picture-001.bmp 13. 如果要让Flash 同时对若干个对象产生渐变动画,则必须将这些对象放置在不同的层中。 □ A. 正确 □ B. 错误 14. 矢量图形用来描述图像的是: □ A. 直线 □ B. 曲线 □ C. 色块 □ D. A 和B 都正确 15. 下列那几个属性是flash mx 不建议使用的属性 □ A. scroll □ B. maxscroll □ C. _droptarget □ D. _highquality 16. 下面的语句说法正确的是: □ A. 目前Flash 最新的创作平台是Flash MX,播放插件是Flash MX Player。 □ B. 目前Flash 最新的创作平台是Flash MX,播放插件是Flash 6.0 Player。 □ C. 目前Flash 最新的创作平台是Flash 6.0,播放插件是Flash MX Player。 □ D. 目前Flash 最新的创作平台是Flash 6.0,播放插件是Flash 6.0 Player。 17. 下面关于FLASH MX 导入Fireworks 的PNG 文件的说法错误的是: □ A. 用户可以选择作为可编辑对象或不可编辑的图像进行导入 □ B. 当作为不可编辑的图像导入时,文件将转换成位图图像对象,但是导入矢量图形除外 □ C. 作为可编辑对象导入,用户可以选择保留位于PNG 文件中的图像、文本和辅助线 □ D. 作为不可编辑的图像导入PNG 文件,则用户可以在Flash MX 中启动Fireworks 编辑该 PNG 图像 18. 下面关于从浏览器打印电影和从Flash 播放器打印电影的说法错误的是: □ A. "从Flash 播放器打印电影,可以指定Flash 电影中的哪些帧可以被打印" □ B. "从Flash 播放器打印电影,可以确定帧的打印区域" □ C. "从Flash 播放器打印电影,可以给电影剪辑中的打印帧加Print 动作" □ D. 从浏览器打印电影肯定比从Flash 播放器打印电影效果好 19. 下面关于打印Flash 电影说法错误的是: □ A. 打印Flash 矢量图形时,可以在任意尺寸上获得清晰的打印效果 □ B. 打印低分辨率的位图图像时,受到像素的影响 □ C. 不可以从浏览器打印Flsh 电影 □ D. Flash 播放器的打印功能允许用户打印电影中的目录、联票、单篇、收据、发票或其他 文档 20. 下面关于矢量图形和位图图像的说法错误的是: □ A. Flash 允许用户创建并产生动画效果的是矢量图形而位图图像不可以 □ B. 在Flash 中,用户也可以导入并操纵在其他应用程序中创建的矢量图形和位图图像 C. 用FLASH MX 的绘图工具画出来的图形为矢量图形 □ D. 一般来说矢量图形比位图图像文件量大 21. 下面关于通过Flash 播放器的关联菜单打印说法错误的是: □ A. 可打印任意Flash 电影中的帧 □ B. 无法打印透明度 □ C. 可以打印颜色效果 □ D. 无法打印其他电影剪辑中的帧 22. 下面哪个不是FlashMX 中内置的组件? □ A. CheckBox(复选框) □ B. RadioButton(单选钮) □ C. ScrollPane(滚动窗格) □ D. Jump Menu (跳转菜单) 23. 下面哪些操作不可以使电影优化: □ A. 如果电影中的元素有使用一次以上者,则可以考虑将其转换为元件 □ B. 只要有可能,请尽量使用渐变动画 □ C. 限制每个关键帧中发生变化的区域 □ D. 要尽量使用位图图像元素的动画 24. 下面哪些是Flash MX 新增的功能? □ A. 可以导入mp3 格式的声音文件。 □ B. 可以导入视频格式。 □ C. 增加了层文件夹。 □ D. 可以把声音设置成流方式。 25. 下面那个方法不属于Date(日期)对象 □ A. getDate() □ B. getDay() □ C. getMonth() □ D. getMinute() 26. 要分离位图图像,按以下步骤操作:1、选择当前场景中的位图图像;2、单击Modify> Trace Bitmap 命令。 □ A. 正确 □ B. 错误 27. 要改变舞台上复选框组件的宽度,可以 □ A. 使用Free Transform(自由变形)工具 □ B. 使用setSize 方法 □ C. 使用AS 中的_width(宽度)属性 □ D. 使用属性面板中的w 属性精确调整 28. 要在组件面板中显示SmartClips 或自定义的组件,应该如何做? □ A. 将包含组件的电影剪辑放在库(Library)中 □ B. 将包含组件电影剪辑的FLA 文件放置在Flash MX 的组件文件夹中 □ C. 将包含组件电影剪辑的FLA 文件放置在Flash6/Configuration/Components 中 □ D. 导入包含组件电影剪辑的SWF 导入 29. 以下各种关于图形元件的叙述,正确的是 □ A. 可用来创建可重复使用的,并依赖于主电影时间轴的动画片段 □ B. 可用来创建可重复使用的,但不依赖于主电影时间轴的动画片段 □ C. 可以在图形元件中使用声音 □ D. 可以在图形元件中使用交互式控件 30. 以下关于使用元件的优点的叙述,正确的是: □ A. 使用元件可以使电影的编辑更加简单化 □ B. 使用元件可以使发布文件的大小显著地缩减 □ C. 使用元件可以使电影的播放速度加快 □ D. 以上均是 31. 以下关于帧标记和批注的说法正确的是: □ A. 帧标记和帧批注的长短都将影响输出电影的大小。 □ B. 帧标记和帧批注的长短都不影响输出电影的大小。 □ C. 帧标记的长短不会影响输出电影的大小,而帧批注的长短对输出电影的大小有影响。 □ D. 帧标记的长短会影响输出电影的大小,而帧批注的长短对输出电影的大小不影响。 32. 以下关于帧并帧动画和渐变动画的说法正确的是: □ A. 两种动画模式FlashMX 都必须记录完整的各帧信息 □ B. 前者必须记录各帧的完整记录,而后者不用 □ C. 前者不必记录各帧的完整记录,而后者必须记录完整的各帧记录 □ D. 以上说法均不对 33. 以下哪些操作可以使Flash 进入直接编辑元件的模式? □ A. ". 双击舞台上的元件实例" □ B. ". 选中舞台上的元件,然后使用鼠标右键单击,从弹出的快捷菜单中选择Edit in Place" □ C. ". 双击库面板内的元件图标" □ D. 将舞台上的元件拖动到库面板之上 34. 在256 色环境中,可以使用Flash MX 进行创作。 □ A. 正确 □ B. 错误 35. "在Flash MX 中,未定义的toString 是" □ A. """ """ □ B. undefined □ C. NULL □ D. null 36. 在Flash MX 中,要绘制基本的几何形状,可以使用的绘图工具是: □ A. 直线 □ B. 椭圆 □ C. 圆 □ D. 矩形 37. 在Flash MX 中,要绘制精确的直线或曲线路径,可以使用: □ A. Pen Tool(钢笔工具) □ B. Pencil Tool(铅笔工具) □ C. Brush Tool(刷子工具) □ D. A 和B 都正确 MacromediaChina Certified Flash MX Designer Exam Sample Questions http://www. 38. 在Flash 的测试模式中,下面哪些可以List Objects(列表显示对象)命令来显示: □ A. 帧 □ B. 对象类型(形状、电影剪辑或按钮) □ C. 目标路径 □ D. 电影剪辑的实例名 39. 在Internet Explorer 浏览器中,是通过下列哪种技术来播放Flash 电影(swf 格式的文件)? □ A. DLL □ B. COM □ C. OLE □ D. Active X 40. "在动作列表中,批注以什么颜色来表示" □ A. 绿色 □ B. 紫色 □ C. 蓝色 □ D. 粉红色 41. 在设置电影属性时,设置电影播放的速度为12fps,那么在电影测试时,时间轴上显示的 电影播放速度应该可能是: □ A. 等于12fps □ B. 小于12fps □ C. 大于12fps □ D. 大于、小于12fps 均有可能 42. 在下列哪些操作系统下,可以通过浏览器播放Flash 电影(swf 格式的文件)? □ A. DOS □ B. Windows 95 □ C. Windows 2000 □ D. Redhat Linux 43. 在移动对象时,在按方向键的同时按住Shift 键可大幅度移动对象,每次移动距离为: □ A. 1 像素 □ B. 4 像素 □ C. 6 像素 □ D. 8 像素 44. 作为发布过程的一部分,Flash 将自动执行某些电影优化操作: □ A. 正确 □ B. 错误 答案: B, C, B, D, A, A, A, B, A, D, B, ABCD, A, D, ABD, B, B, D, C, D, C, D, D, BC, D, B, ABD, BC, A, D, D, B, AB, A, A, ABD, A, ABCD, D, D, AB, BCD, D, A, Flash 模拟试题及答案(三) 一、 单项选择题 1. 如果一个对象是以100%的大小显示在工作区中,选择工具箱中的Zoom Tool工具,在其上单击一下,则对象将以多少的比例显示在工作区中. A.50% B.100% C.200% D.400% 答案:C 2. Break Apart命令可应用于: A.TrueType字体 B.位图字体 C.打印字体 D.任何字体 答案:A 3. 以下关于按钮元件Hit帧的叙述,错误的是: A.Hit帧定义了按钮响应鼠标单击的区域 B.Hit帧位于按钮元件的第4帧 C.Hit帧的内容在舞台上是不可见的 D.如果不指定Hit帧,Dowa帧中的对象将被作为Hit帧 答案:A 4. 在Flash MX中,下面哪些不是测试声音的方法: A.拖动播放磁头 B.使用控制器 C.按Ctrl+Enter D.按F12 答案:A 5. 如果要用刷子工具在填充区域和空白区域上涂刷,而线条不受影响,应该选择的涂刷模式是: A.Paint Normal B.Paint Fills C.Paint Selection D.Paint Behind 答案:B 6. 在Flash MX中,未定义的toString是 A.” ” B.undefined C.NULL D.null 答案:B 7. 下面对创建蒙板操作的说法错误的是: A.通过蒙板的小孔来显示的内容的层在蒙板层的下面 B.对于蒙板上的位图图像、过渡颜色和线条样式等,Flash都将忽略 C.蒙板上的任何填充区域都将是不透明的,非填充区域都将是透明的 D.在蒙板上没有必要创建有过度颜色的对象 答案:C 8. 全等(= = = )运算符和相同运算符基本相似,但是它们有一个很重要的区别 A.全等(= = = )运算符执行数据类型的转换 B.全等(= = = )运算符不执行数据类型的转换 C.全等(= = = )运算符永远返回真 D.以上都不对 答案:b 9. 下面关于位图图像的说法错误的是: A.位图图像是通过在网络中为不同位置的像素填充不同的颜色而产生的 B.创建图像的方式就好比马赛克拼图一样 C.当用户编辑位图图像时,修改的是像素而不是直线和曲线 D.位图图例和分辨率无关 答案:D 10. 下面关于打印Flash电影说法错误的是: A.打印Flash矢量图形时,可以在任意尺寸上获得清晰的打印效果 B.打印低分辨率的位图图像时,受到像素的影响 C.不可以从浏览器打印Flash电影 D.Flash播放器的打印功能允许用户打印电影中的目录、联票、单篇、收据、发票或其他文档 答案:C 11. 下面关于使用Flash的HTML发布模板说法错误的是: A.允许用户控制电影在浏览器中的外观和播放 B.Flash模板不是包含任何HTML内容,比如Cold Fusion、ASP等的代码就不可以 C.这种发布Flash用的模板是一个文本文件,包括两部分:不会改变的HTML代码和会改变的模板代码或变量 D.创建模板和创建一个标准的HTML页面基本相似,只是用户需要将属于Flash电影的某些值替换为以美元元件($)开头的变量 答案:B 12. 以下关于库资源复制操作的叙述,正确的是: A.复制和粘贴资源 B.直接拖放所需资源 C.在目标电影中打开源电影的库,然后将源电影中的库资源拖动到目标电影中 D.以上说法都正确 答案:D 13. 下面对于创建帧并帧动画的说法正确的是: A.不需要将每一帧都定义为关键帧 B.在初始状态下,每一个关键帧都应该包含和前一关键帧相同的内容 C.帧并帧动画一般不应用于复杂的动画制作 D.以上说法都错误 答案:B 14. 在Flash电影中使用了本机系统没有安装的字体时,本机用FLASH播放器播放时: A.能正常显示字体 B.能显示但是使用替换字体 C.什么都不显示 D.以上说法都错误 答案:B 15. 如果在调用函数时提供了多余的参数,结果是 A.内存溢出 B.它们将产生错误 C.函数将不执行 D.它们将被忽略 答案:d 16. 当前文件中包含一个名为Symbol1和一个名为Symbol1 copy的元件,而导入的元件中也有一个名为Symbol1的元件。在出现Resolve Library Itens对话框时选择了Don’t Replace Existing Items的方式。那么,请问新元件的名字将会是什么? A.Symbol1 B.Symbol1 copy C.Symbol1 copy1 D.Symbol1 copy2 答案:A 17. 在已经勾选Snap to Grid,且Grid的snap选项处于默认的normal状态,对辅助线(Guides)的说法正确的是: A.辅助线可以自由放置。 B.辅助线只能放置在网格格线上。 C.处于最近的网格格线“容与度”尺寸内,只能放置在网格格线上;处于最近的网格格线“容与度”尺寸外,可以自由放置。 D.辅助线不能放置在网格格线上。 答案:C 18. 下面关于发布Flash电影的说法错误的是: A.向受众发布Flash内容的主要文件格式是Flash Player格式(.swf) B.Flash的发布功能就是为在网上演示动画而设计的 C.可惜Flash Player文件格式是一个不开放标准,今后不会获得更多的应用程序支持 D.用户可以将整个电影导出为Flash Player电影,或作为位图图像系列;还可以将单个帧或图像导出为图像文件 答案:C 19. 下面关于组件的叙述,正确的是: A.图形元件不能转化为组件 B.组件是电影剪辑元件的一种派生形式 C.组件是定义了参数的电影剪辑 D.以上都对 答案:D 20. 下面关于元件实例的叙述,错误的是: A.电影中的所有地方都可以使用由元件派生的实例,包括该元件本身 B.修改众多元件实例中的一个,将不会对其他的实例产生影响 C.如果用户修改元件,则所有该元件的实例都将立即更新 D.创建元件之后,用户就可以使用元件的实例 答案:B 21. var x =15; var y = x; var x =30; 此时y值是 A.15 B.0 C.30 D.undefied 答案:A 22. 以下关于元件的叙述,正确的是: A.只有图形对象或声音可以转换为元件 B.元件里面可以包含任何东西,包括它自己的实例 C.元件的实例不能再次转换成元件 D.以上均错 答案:D 23. 如果要创建一个动态按钮,至少需要哪几类元件? A.电影剪辑元件 B.按钮元件 C.图形元件和按钮元件 D.电影剪辑元件和按钮元件 答案:D 24. 下面对将舞台上的整个动画移动到其他位置的操作说法错误的是: A.首先要取消要移动层的锁定同时把不需要移动的层锁定 B.在移动整个动画到其他位置时,不需要单击时间轴上的Edit Multiple Frames(编辑多个帧)按钮 C.在移动整个动画到其他位置时,需要使洋葱皮标记覆盖所有帧 D.在移动整个动画到其他位置时,对不需要移动的层可以隐藏 答案:c 25. 以下关于共享库资源的运行时共享方式的叙述,正确的是: A.在电影播放期间共享资源才被载入目标电影中 B.在编辑目标电影时,包含共享资源的源电影必须存在 C.在目标电影中,源电影的资源不一定要被链接为外部文件 D.源电影不一定要被发布到某一个URL地址 答案:A 26. 以下关于共享库资源的编辑时共享方式的叙述,正确的是: A.用户可以使用本地局域网电影中的任意其他元件,更新或替换正在编辑的电影中的任何元件 B.目标电影中的元件在编辑电影时即可更新 C.目标电影中的元件将保持其初始名称和属性,但是其内容将被用户选定的元件所替换 D.以上说法均正确 答案:D 27. 请从下列选项中选出可以用来创建独立于时间轴播放的动画片段的元件类型: A.图形元件 B.字体元件 C.电影剪辑 D.按钮元件 答案:C 28. 下面要使工具箱中的笔触和填充控件应用颜色的操作错误的是: A.单击笔触和填充控件旁边的三角形按钮,从弹出窗口中选择一种颜色 B.单击颜色弹出窗口中的滴管工具,然后使用滴管工具选择一种颜色 C.在颜色弹出窗口的文本框中输入颜色的十二进制值 D.单击工具箱中的Swap Fill and Stroke(切换填充和笔触的颜色)可以使外框颜色和填充颜色互换 答案:C 29. Custom Actions 属于哪类flash内置对象 A.Core B.Movie C.Authoring D.Client/Server 答案:C 30. 现需要获得这样一种效果,当鼠标指针移动到按钮上时发出音效effect1.mp3,而当按下鼠标左键时会发出音效effect2.mp3。请问该如何实现? A.选中Up帧,从帧属性面板上的Sound列表框中选择effect2.mp3。选中Over帧,从帧属性面板上的Sound列表框中选择effect1.mp3 B.选中Down帧,从帧属性面板上的Sound列表框中选择effect2.mp3。选中Over帧,从帧属性面板上的Sound列表框中选择effect1.mp3 C.选中Up帧,从帧属性面板上的Sound列表框中选择effect1mp3。选中Over帧,从帧属性面板上的Sound列表框中选择effect2.mp3 D.选中Down帧,从帧属性面板上的Sound列表框中选择effect2.mp3。选中Hit帧,从帧属性面板上的Sound列表框中选择effect1.mp3 答案:B 31. 在对有很多字符的文本进行Break Apart(分离)后: A.每个文本块中只包含一个字符 B.每个文本块中只包含二个字符 C.每个文本块中只包含三个字符 D.每个文本块中只包含四个字符 答案:A 32. 下面关于矢量图形使用什么来描述图形的说法正确的是: A.矢量图形只使用直线来描述图像 B.矢量图形只使用曲线来描述图像 C.矢量图形是使用直线和曲线来描述图像的 D.以上说法都错 答案:C 33. ActionScript将字符串连接用什么符号 A.+ B.& C.&& D.|| 答案:a 34. 以下关于帧并帧动画和渐变动画的说法正确的是: A.两种动画模式Flash MX都必须记录完整的各帧信息 B.前者必须记录各帧的完整记录,而后者不用 C.前者不必记录各帧的完整记录,而后者必须记录完整的各帧记录 D.以上说法都错 答案:B 35. 假设舞台上有同一个元件的两个实例,如果将其中一个的颜色改为#FF0000,大小改为原来的200%,那么另外一个实例将会发生什么变化? A.颜色也变为#FF0000,但大小不变 B.大小也变为原来的200%,但颜色不变 C.颜色变为#FF0000,大小变为原来的200% D.没有变化 答案:D 36. 如下图是导入Fireworks的PNG格式文件设置对话框的一部分,下面说法错误的是: A.Import as Movie Clip and Retain Layer表示将PNG文件导入为电影剪辑,它所包含的所有帧和层都将出现在电影剪辑元件内 B.Import into New Layer in Current Scene表示将PNG文档导入到当前Flash文档单个的新层中,该层将位于所有层的下面 C.如果要将Fireworks的PNG文件导入为单个的图像,则可以选中Import as a Single Flattened Image复选框 D.如果选中可Import as a Single Flattened Image复选框,所有其他选项都不可用 答案:B 二、 多项选择题 1. 在制作使用路径控制渐变移动动画时,下列工具能绘制出所需路径的是: A.铅笔 B.线条 C.椭圆、矩形或刷子工具 D.矩形 答案:ABD 2. 当舞台处于工作区的可显示区之外时,如图所示,可以通过下列哪几种操作,立刻让舞台出现在工作区的显示范围中? A.双击工具箱中的Hand Tool工具 B.双击工具箱中的Zoom Tool工具 C.选择View菜单下的Work Area命令 D.选择工作区右上角下拉列表中的Show Frame选项 答案:ACD 3. 下列属性中是字体属性的为: A.字符间距 B.字符颜色 C.字符家族 D.对齐方式 答案:ABD 4. 在Flash的测试模式中,下面哪些可以List Objects(列表显示对象)命令来显示: A.帧 B.对象类型(形状、电影剪辑或按钮) C.目标路径 D.电影剪辑的实例名 答案:ABCD 5. 关于Undo次数的问题,下列说法正确的是: A.只要内存足够大,可以给Flash设置无数次Undo B.Undo的次数是有一定限制的,最大次数是300次 C.Undo次数设置得越大,需要越多的内存 D.Undo次数的大小设置,不影响内存的占用 答案:BC 6. 下列几项中将影响到FLASH电影播放的流畅性的因素有: A.FLASH电影动画的复杂程度 B.用来播放FLASH电影动画的计算机的性能 C.FLASH播放器的版本 D.FLASH电影文件的量的大小 答案:ABCD 7. 在FLASH中,使用钢笔工具创建曲线时,每个正切调整柄的弧度和长度决定了曲线哪些因素: A.曲线的弧度 B.曲线的高度 C.曲线的深度 D.曲线的颜色 答案:AB 8. 在设置电影属性时,设置电影播放的速度为12fps,那么在电影测试时,时间轴上显示的电影播放速度应该可能是: A.等于12fps B.小于12fps C.大于12fps D.大于、小于12fps均有可能 答案:ABCD 9. 下列属性中是段落属性的为: A.对齐方式 B.边距 C.缩进 D.行间距 答案:ABCD 10. 想选定某层,可以执行下列哪些操作: A.单击时间轴中层的名称 B.单击时间轴中的帧 C.单击处于此层的舞台上的对象 D.通过键盘上的上下箭头来选择 答案:ABC 11. 下面哪些是Flash播放器可以打印的 A.Flash的元件 B.Flash的位图图像 C.Flash的文本块 D.Flash的文本域 答案:ABC 12. 下列哪些操作可以打开某层”Layer Properties”面板 A.选中该层,选择Modify>Layer命令 B.双击时间轴中该层的图标 C.双击时间轴中该层的名称 D.双击时间轴中该层的Outline方块按钮 答案:ABD 13. 按钮元件的Up、Down、Over、Hit帧中,哪几帧在舞台上是可见的? A.Up帧 B.Down帧 C.Over帧 D.Hit帧 答案:ABC 14. 当前文件中包含一个名为Symbol1和一个名为Symbol1 copy的元件,而导入的元件中也有一个名为Symbol1的元件。则导入的新元件的名字可能会是: A.Symbol1 B.Symbol1 copy C.Symbol1 copy 1 D.Symbol1 copy 2 答案:AC 15. 使用运行时共享库资源包含哪几个过程? A.在源电影中定义共享资源,输入资源的标识符和存放的URL地址 B.在目标电影中定义共享资源,输入资源的标识符和存放的URL地址 C.在目标电影中定义共享资源,输入源电影中使用的标识符和存放的URL地址 D.在源电影中定义共享资源,输入目标电影中使用的标识符和存放的URL地址 答案:AC 16. 在Enable Simple Buttons功能关闭的情况下,要对某个按钮进行编辑,可以执行以下哪些操作 A.双击舞台上的按钮元件实例 B.鼠标右键单击按钮元件实例,从弹出的菜单中选择Edit C.鼠标左键单击按钮元件实例,执行Edit>Edit D.鼠标左键单击按钮元件实例,从弹出的菜单中选择Edit 答案:ABC 17. 哪些属性被列为不推荐属性 A._highquality B.maxscroll C._alpha D.scroll 答案:ABD 18. 如果用户分离了文本块”FLASH”,并且使用了Distributd to Layers(分布到层)命令将各个字符分别放置在命名为F、L、A、S、H的层中。下面说法错误的是: A.这些层将按上下顺序添加到原来包含分离文本的层的下面 B.层将按字符的左右顺序叠放 C.层将按字符的右左顺序叠放 D.这些层将按上下顺序添加到原来包含分离文本的层的上面 答案:CD 19. 假设已经启用了编辑环境中的Enable Simple Buttons功能,那么以下对按钮元件的哪些操作还依然有效? A.鼠标单击选择按钮元件 B.在原地编辑按钮元件 C.使用鼠标移动按钮元件 D.使用光标键移动按钮元件 答案:bd 20. FLASH MX在导入FreeHand的矢量图形时,其哪些元素将被保留 A.层 B.文本块 C.库元件 D.页 答案:ABCD 21. 下列哪些函数被列为不推荐函数 A.chr() B.mbord() C.eval() D.random() 答案:ABD 22. 如下图的文本属性检查器上的属性框可以设置那些属性 A.可以设置缩近 B.可以设置行距 C.可以设置边距 D.以上都不可以设置 答案:ABC 23. 以下ActionScript功能哪些不能在Flash 4播放器文件格式中使用 A.localToGlobal B.typeof C._quality D.delete 答案:ABCD 24. 下列哪些action有安全限制 A.getURL B.FSCommand C.loadVariables D.print 答案:ABC 25. 在FLASH的Drawing Settings(绘图设置)对话框中下面哪些功能可以用来设置: A.Recognize Lines(识别线条) B.Recognize Shapes(识别形状) C.Click Accuracy(单击的准确性) D.Smooth Curves(平滑曲线) 答案:ABCD 26. 以下哪些操作可以复制指定的元件? A.使用鼠标右键单击元件,然后从关联菜单中选择Duplicate B.从Library面板的Options菜单中选择Duplicate C.单击Modify>Duplicate Symbol D.按住Ctrl键后,使用鼠标左键拖动复制 答案:ABCD 27. 涂料筒工具填充时,单击Gap Size(间隔大小)调整设置(如下图所示),下面哪些可以使Flash自动封闭并填充有间隙的区域: A.Don’t Close Gaps B.Close Small Gaps C.Close Medium Gaps D.Close Large Gaps 答案:BCD 28. 在FLASH MX中,对调色板中的颜色可以进行怎样的处理: A.复制调色板单个颜色 B.删除单个颜色 C.清除调色板中的颜色 D.删除调色板所有颜色 答案:ABCD 29. 以下各种元件中,拥有自己的时间轴、舞台和层的元件是: A.图形元件(Graphic) B.电影剪辑(Movie Clip) C.按钮元件(Button) D.字体元件(Font) 答案:AB 30. 以下关于电影剪辑特点的叙述中,正确的是: A.可以嵌套其他的电影剪辑实例 B.可以包含交互式控件、声音 C.可以用来创建动态按钮 D.拥有自己独立的时间轴 答案:ABCD 31. 以下各项中,哪些是使用元件的好处? A.使电影的编辑简单化 B.使文件大小显著地缩减 C.使电影的播放速度提高 D.使电影的下载速度提高 答案:ABCD 32. 在Flash MX中,用以下何种绘图工具可以绘制笔直的斜线? A.使用铅笔工具,按住Shift键托动鼠标 B.使用铅笔工具,采用Straighten(平整)绘图模式 C.直线工具 D.钢笔工具 答案:BCD 33. 用户在下面哪些控件中可选择十六进制的颜色? A.混色器 B.工具箱中的Stroke(笔触) C.Fill(填充)弹出菜单 D.形状属性面板 答案:ABC 34. component.registerSkinElement(arrow_mc,”arrow”);是什么 A.README文件中的注册信息 B.fcb_downArrow中的arrow的来源 C.把arrow_mc的实例名称改为arrow D.替换外观时必须修改 答案:BCD 35. 使用文本工具即可在舞台上放置文字,用户可以创建: A.横排文本(从左到右) B.横排文本(从右到左) C.静态的竖排文本(从左到右) D.静态的竖排文本(从右到左) 答案:ACD 36. 在文本编辑时拖动选择所需文字可以选定文本框的文字,下面说法和本说法同效果的是: A.在文本框中双击选择单词 B.在要选定区域的文本,开始位置单击,然后按住Shift键 C.按Ctrl+A键选定文本块内的内部文本 D.以上说法都不可以 答案:ABC 三、 判断题 1. 如果已经显示了网格和辅助线,则当用户拖动对象调整位置时,对象将优先对齐辅助线而不是网格。 A.正确 B.错误 答案:B 2. 在启用编辑环境中的按钮功能之后,用户就不能在编辑环境中选中它了。 A.正确 B.错误 答案:A 3. Flash中的横排文本可以设置超级链接,跳转到指定的URL地址。 A.正确 B.错误 答案:A 4. 舞台上的任何元素都是可以擦除的,要快速删除舞台上的所有元素,可双击擦除工具。 A.正确 B.错误 答案:A 5. 要在混色器面板中选择颜色显示模式,可从面板右上角的弹出菜单中选择RGB或HSB,默认为RGB模式。 A.正确 B.错误 答案:A 6. 以下语句在actonscript中是否等价的:cat.hilite=true; CAT.hilite=true; A.正确 B.错误 答案:A 7. 能自动扩展的文本块,其调整柄是圆角的,而定义了宽度或高度的文本,其调整柄是方形的。 A.正确 B.错误 答案:A 8. 在Flash MX和Firework进行颜色导入导出时,可以从外部的ACT文件导入渐变色。 A.正确 B.错误 答案:A 9. 使用Flash的”洋葱皮”的功能是可以同时显示和编辑多帧。 A.正确 B.错误 答案:A 10. 每个Flash文件都包括自己的调色板,调色板存储在Flash文件中,但是并不影响文件的大小。 A.正确 B.错误 答案:A 11. 在用FLASH制作渐变动画时,要使组合体或文字的颜色渐变,必须先将它们转换为元件。 A.正确 B.错误 答案:B 12. 如果按Flash 4的SWF文件格式导出电影,是否可以使用Flash 5和6的printAsBitmap函数功能。 A.正确 B.错误 答案:A Flash 模拟试题及答案(四) 单选题 1.Swf的动画可以插入到( )里。 A.txt B.phg C.html超连接文本 D.moc 2.Flash产生的矢量图动画文件具有的优点不包括( )。 A.体积小 B.交互形强 C.放大不失真 D.颜色差 3.Flash动画能按照设计者的意愿运动,除了“动作”控制外还有( )控制。 A.时间线 B.水平线 C.垂直线 D.层控制器 4.动作面板主要是由( )控制动画的。 A.帧 B.程序 C.属性 D.层 5.当鼠标指针停在某个按钮元件实例上方的时候,显示的是该元件( )的内容。 A.Click帧 B.Hit帧 C.Down帧 D.Over帧 6.Flash第一次启动的默认界面是没有( )的。 A.主要栏,状态栏,工具栏 B.主要栏,工具栏,面板 C.主要栏,状态栏,控制器 D.工具栏,控制器,面板 7.( )和( )是控制动画的手段和工作区。 A.动作面板,水平线 B.属性面板,水平线 C.动作面板,时间线 D.属性面板,时间线 8.在Flash MX中默认的动画帧频是( )。 A.12fps B.24fps C.50fps D.6fps 9.如何显示标尺( )。 A.选择“插入”→“标尺”命令 B.选择“窗口”→“标尺”命令 C.选择“编辑”→“标尺”命令 D.选择“查看”→“标尺”命令 10.觉得网格的疏密程度不合适可以通过执行( )命令调出网格对话框,调整网格的大小。 A.“插入”→“网格”→“编辑网格” B.“文件”→“网格”→“编辑网格” C.“查看”→“网格”→“编辑网格” D.“插入”→“网格”→“修改网格” 11.如果希望改变重做的步数应在( )设置。 A.编辑 B.文件 C.修改 D.查看 12.选择( )→( )命令可以打开快捷键对话框。 A.“编辑”,“快捷键” B.“查看”,“常规” C.“查看”,“文字” D.“编辑”,“常规” 13.扩展名是( )的文件是Flash的源码文件。 A.fla B.swf C.dwc D.ese 14.( )不是工具箱的组成部分。 A.工具 B.查看 C.颜色 D.菜单 15.查看部分有两个工具,分别是( )和( )。 A.手形工具,文本工具 B.线条工具,文本工具 C.手形工具,放缩工具 D.线条工具,放缩工具 16.( )是工具箱的主要部分。 A.工具 B.菜单 C.颜色 D.查看 17.下面哪个不是选项的组成部分( )。 A.对齐对象 B.平滑 C.伸直 D.水平 18.( )用来选择不规则的区域。 A.套索工具 B.选项工具 C.选择工具 D.钢笔工具 19.选择( )命令可以将线条对象转换成区域对象。 A.“修改”→“文本”→“将线条转换成填充” B.“查看”→“文本”→“将线条转换成填充” C.“修改”→“形状”→“将线条转换成填充” D.“查看”→“形状”→“将线条转换成填充” 20.矩形工具绘制的矩形对象有两个部分,它们是( )。 A.边框的线条和其中的填充 B.边框的线条和颜色 C.内部填充和颜色 D.内部填充和文字 21.取色的指对笔触或填充选取颜色,有两种工具,分别是( )和( )。 A.取色器,混合器色板 B.取色器,填充器 C.混合器色板,填充器 D.填充器,单色器 22.( )是一种对线条节点编辑工具。 A.部分选择工具 B.选择工具 C.查看工具 D.钢笔工具 23.Flash中的文本对象在被( )之前是可以进行编辑的。 A.打散 B.修改 C.查看 D.编辑 24.文本属性可以通过( )和( )进行设置。 A.属性面板,单色器 B.库,单色器 C.混色器,属性面板 D.混合器,库 25.如果文本最少进行了( )次分离,就不能再将它作为文本来编辑了。 A.4 B.3 C.5 D.2 26.位图在Flash中有两个作用,一是作为( ),二是作为( )。 A.填充料,库元素 B.填充料,元件 C.元件,颜色 D.元件,图形 27.颜色最小区域设置越( ),转换越( ),转换后的文件越( )。 A.小,慢,大 B.小,快,小 C.大,快,大 D.大,慢,小 28.Flash动画有两种类型,分别是( )和( )。 A.补间动画,逐帧动画 B.补间动画,帧动画 C.补动画,帧动画 D.被动画,逐帧动画 29.( )是人工创建一个动作的起始帧和结束帧。 A.补动画 B.补间动画 C.帧动画 D.逐帧动画 30.选中位图后选择( )命令可以将位图分离。 A.“编辑”→“分离” B.“修改”→“分离” C.“编辑”→“分散” D.“修改”→“分散” 31.选择( )→( )命令可以将位图转换成矢量图。 A.“修改”,“转换位图为矢量图” B.“修改”,“转换矢量图为位图” C.“编辑”,“转换位图为矢量图” D.“编辑”,“转换矢量图为位图” 32.下面说法正确的是( )。 A.设置文本颜色时,可以使用纯色,也可以使用渐变 B.逐帧是人工创建一个动作的起始帧和结束帧两个关键帧 C.选择箭头工具,然后双击文本块可以选中文本队形,如果要对其中的文字对象进行编辑,用“箭头工具”单击文本对象,进入文本对象的编辑状态后进行操作 D.元件是指在Flash中创建的图形按钮影片剪辑以及从其他应用程序中导入的插图,可以自始至终在影片中重复使用 33.下面说法错误的是( )。 A.元件是动画内部元件,实例是动画的表现内容,是元件在动画中的外部表现 B.元件是动画的零件,实例是由零件构成的部件 C.编辑元件会更新所有的实例 D.实例可以转换成为元件 34.( )是不能用以区别舞台上的实例。 A.Align面板 B.元件实例属性检查器 C.Info面板 D.电影资源管理器 35.在对有很多字符的文本进行Break Apart(分离)后,以下说法正确的是( )。 A.每个文本块中只包含三个字符 B.每个文本块中只包含二个字符 C.每个文本块中只包含四个字符 D.每个文本块中只包含一个字符 36.在Flash中,关于对象产生渐变的说法正确的是( )。 A.实例对象中可以产生渐变 B.只能是文件对象才能产生渐变 C.可以对这例、组合体、文字对象产生渐变 D.组合体不可以产生渐变 37.默认的Flash文档采用( )。 A.500×400像素 B.600×700像素 C.550×400像素 D.400×400像素 38.Flash MX的元件都存储在( )中,用户可以在( )中对元件进行管理和编辑。 A.库,元件 B.面板,面板 C.库,库 D.模板,模板 39.Flash MX的帧有三种分别是( )。 A.普通帧、关键帧、黑色关键帧 B.普通帧、关键帧、白色关键帧 C.特殊帧、关键帧、黑色关键帧 D.特殊帧、关键帧、白色关键帧 40.Flash MX图层可分为( )。 A.遮罩图层 B.普通图层、引导图层 C.普通图层、引导图层、遮罩图层 D.普通图层 41.在Flash MX中,文件发布的菜单操作是( )。 A.“文件”→“发布” B.“编辑”→“发布” C.“修改”→“发布” D.“属性”→“发布” 42.Flash中的时间轴由层、( )和时间轴标尺组成。 A.元件 B.时间线 C.帧 D.文件 43.( )是组成动画的基本单位。 A.按钮 B.元件 C.图片 D.帧 44.画笔工具的( )模式可以使绘制的图形完全覆盖所经过的图形线段和色块。 A.标准绘画 B.内部绘画 C.后面绘画 D.颜料选择 45.在Flash MX 中,插入帧的快捷键是( )。 A.F5 B.F6 C.F7 D.F9 46.可以在( )中创建按钮正常况下的效果。 A.释放帧 B.滑过帧 C.按下帧 D.执行帧 47.动画文件只保存( ),不保存事例。 A.对象 B.元件 C.关键帧 D.普通帧 48.图形元件是( )。 A.静态元件 B.动态元件 C.静态面板 D.动态面板 49.用Flash可以将文字转换成( )。 A.矢量图像 B.位图 C.静态图片 D.动态图片 50.( )最大的优点是可以无限放大,且不会对图像的显示品质产生影响。 A.矢量图像 B.位图图像 C.点阵图像 D.混合图像 51.在Flash MX中,( )不是标准模式下具备的功能。 A.添加、删除脚本窗格中的语句 B.可以在文本框中输出动作的参数 C.通过Actions面板可以查找和替换文本 D.直接在脚本窗格中撰写编辑Actions 52.在Flash MX中,“on(release){root.m mc.visible=false}”是指( )。 A.打开m mc B.停止拖拽m mc C.拖拽m mc D.关闭m mc 53.在Flash MX中,插入关键帧的快捷键是( )。 A.F5 B.F9 C.F7 D.F6 54.在Flash MX中,通常用( )结合动作行为制作文本滚动显示。 A.拖拽 B.遮罩 C.标记 D.洋葱皮 55.在Flash中,以下说法正确的是( )。 A.只可以导入连续位图 B.既可以导入单张位图,也可导入连续位图 C.只可以直接导入单张位图 D.经上说法都不对 56.在Flash MX中,( )用于组织和控制影片内容在一定时间内播放的层数和帧数。 A.库面板 B.时间轴面板 C.动作面板 D.属性面板 57.以下不属于Flash MX文本的是( )。 A.静态文本 B.动态文本 C.超链接文本 D.输入文本 58.在Flash MX中,帧速是指( )的数量。 A.每分要显示的动画帧 B.每秒要显示的动画帧 C.每小时要显示的动画帧 D.以上都不对 59.在Flash MX中,( )主要用于创建动画中的静态图像和动画片段,是构成动画的最小单位。 A.按钮元件 B.电影剪辑 C.矢量图形 D.图像元件 60.在Flash MX中,交互行为的产生是由( )和( )两部分产生的。 A.事件,动作 B.事件,面板 C.动作,面板 D.动作,元件 第四章多选 多选题 1.文本和字体优化原则有( )。 A.限制字体和字形的数量 B.尽量少使用嵌入字体 C.尽量多使用嵌入字体 D.以上3个都不对 2.元素和线条优化原则有( )。 A.尽量组合元素 B.使用层把随动画过程改变的元素和不随动画过程改变的元素分开 C.尽可能减少用于描述状的分隔线条的数量 D.限制特殊线条类型的数量 3.颜色优化原则有( )。 A.使用混色器来使影片的颜色调色板与浏览器专用的调色板匹配 B.尽量少使用渐变色 C.尽量少使用透明度选项 D.以上3个都不对 4.段落属性包括( )。 A.对齐 B.缩进 C.行距 D.边距 5.创建元件的方法有( )。 A.将工作区中现有的对象转换为元件 B.建立空元件后再编辑 C.导入 D.以上3个都不对 6.元件类型一般有( )。 A.按钮元件 B.图形元件 C.电影剪辑元件 D.以上答案都不正确 7.下面说法正确的是( )。 A.当制作文字的“淡入淡出”效果时,实际上是文字运动 B.即使是最简单的动画也至少有两层,如果需要几个动作或效果同时发生,需要更多个层了 C.当制作文字的“淡入淡出”效果时,运动实际上是黑色 D.在工作区外面的对象在实际动画中是看不见的 8.在设置电影属性时,设置电影播放速度为12fps,那么在电影测试时,时间轴上显的示电影播放速度应该可能是( )。 A.等于12fps B.小于12fps C.大于12fps D.大于、小于12fps均有可能 9.想选定某层,可以执行( )操作。 A.单击时间轴中的帧 B.单击处于此层的舞台上的对象 C.通过键盘上的上下箭头来选择 D.单击时间轴中层的名称 10.在Flash MX中,当完成作品,奖作品进行默认发布时,默认发布的文件扩展名为( )。 A.fla B.hlm C.swf D.html 11.( )是动画发布之前必经的步骤。 A.测试 B.查看 C.优化 D.编辑 12.动作的输入方式有两种,分别是( )。 A.属性中设置 B.从脚本库中获取 C.面板库中获取 D.手工输入 13.下面属于窗口的属性的是( )。 A. self B. blank C. up D. top 14.下面说法正确的是( )。 A.动作面板有两种模式,分别是普通模式和标准模式B.脚本环境设置包括了脚本文字字号、背景颜色、普通字颜色、关键字颜色等 C.标准模式的代码基本不用自己写,可以从Flash自带的“脚本库”中获得 D.Flash可导入的声音文件很多,支持现在所有声音文件格式 15.( )属性被列为不推荐属性。 A.scroll B. alpha C.maxscroll D. highquality 单选题 1.C 2.D 3.A 4.B 5.D 6.C 7.C 8.A 9.D 10.C 11.A 12.A 13.B 14.D 15.C 16.A 17.D 18.A 19.C 20.A 21.A 22.A 23.A 24.C 25.D 26.A 27.A 28.A 29.B 30.B 31.A 32.D 33.C 34.A 35.D 36.C 37.C 38.C 39.B 40.C 41.A 42.C 43.D 44.C 45.A 46.A 47.B 48.A 49.A 50.A 51.D 52.D 53.D 54.B 55.B 56.B 57.C 58.B 59.D 60.A 第四章多选答案: 多选题 1.AB 2.ABCD 3.ABC 4.ABCD 5.ABC 6.ABC 7.AD 8.ABCD 9.ABD 10.CD 11.AC 12.BD 13.ABD 14.BC 15.BCD Flash 模拟试题及答案(五) 一:单选题 1.下列电子邮件链接书写形式正确的为: A A. mailto:lakesea@5dmedia.com B. mailto://lakesea@5dmedia.com C. http;//lakesea@5dmedia.com D. mailto//lakesea@5dmedia.com 2.下面关于新层的位置顺序说法正确的是: B A. 新层将被插入到当前选定层的下面 B. 新层将被插入到当前选定层的上面 C. 新层将被放到最上层 D. 以上说法都错误 3.下面关于元件实例的叙述,错误的是: A A. 电影中的所有地方都可以使用由元件派生的实例,包括该元件本身 B. 修改众多元件实例中的一个,将不会对其他的实例产生影响 C. 如果用户修改元件,则所有该元件的实例都将立即更新 D. 创建元件之后,用户就可以使用元件的实例 4.在对有很多字符的文本进行Break Apart(分离)后: A A. 每个文本块中只包含一个字符 B. 每个文本块中只包含二个字符 C. 每个文本块中只包含三个字符 D. 每个文本块中只包含四个字符 5.矢量图形用来描述图像的是: D A. 直线 B. 曲线 C. 色块 D. A和B都正确 6.以下关于使用元件的优点的叙述,正确的是:D A. 使用元件可以使电影的编辑更加简单化 B. 使用元件可以使发布文件的大小显著地缩减 C. 使用元件可以使电影的播放速度加快 D. 以上均是 7.以下关于元件的叙述,正确的是: D A. 只有图形对象或声音可以转换为元件 B. 元件里面可以包含任何东西,包括它自己的实例 C. 元件的实例不能再次转换成元件 D. 以上均错 8.以下各种元件中可以转换成为组件的是: A A. 电影剪辑元件 B. 图形元件 C. 按钮元件 D. 字体元件 9.以下关于共享库的叙述,错误的是: D A. 共享的库资源允许用户在多个目标电影中使用源电影中的资源 B. 库资源可分为两类:运行时共享和编辑时共享 C. 使用共享库资源可以优化工作流程,使电影的资源管理更加有效 D. 共享库的资源添加方式与普通的库是一样的 10.在FLASH MX中,选择工具箱中的滴管工具,当单击填充区域时,该工具将自动变成什么工具: B A. 墨水瓶工具 B. 涂料筒工具 C. 刷子工具 D. 钢笔工具 11.以下关于按钮元件时间轴的叙述,正确的是: B A. 按钮元件的时间轴与主电影的时间轴是一样的,而且它会通过跳转到不同的帧来响应鼠标指针的移动和动作。 B. 按钮元件中包含了4帧,分别是Up、Down、Over和Hit帧 C. 按钮元件时间轴上的帧可以被赋予帧动作脚本 D. 按钮元件的时间轴里只能包含4帧的内容 12.下面不是优化曲线的效果和原理的是:C A. 使曲线平滑 B. 优化是通过减少曲线的数量来进行的 C. 优化曲线增加了 Flash 电影的文件大小 D. 曲线的优化是一项有必要做的工作 D 13.以下关于共享库资源的编辑时共享方式的叙述,正确的是: A. 用户可以使用本地局域网电影中的任意其他元件,更新或替换正在编辑的电影中的任何元件 B. 目标电影中的元件在编辑电影时即可更新 C. 目标电影中的元件将保持其初始名称和属性,但是其内容将被用户选定的元件所替换 D. 以上说法均正确 14.下面关于打印Flash电影说法错误的是: C A. 打印Flash矢量图形时,可以在任意尺寸上获得清晰的打印效果 B. 打印低分辨率的位图图像时,受到像素的影响 C. 不可以从浏览器打印Flsh电影 D. Flash播放器的打印功能允许用户打印电影中的目录、联票、单篇、收据、发票或其他文档 15.以下关于电影资源管理器的叙述,错误的是:B A. 在电影资源管理器中可以查看到元件的定义 B. 在电影资源管理器中可以查看当前电影中的所有元素(包括实例、元件、图形对象等) C. 在电影资源管理器中可以查看当前电影中的所有元件和实例 D. 使用电影资源管理器,可以很容易跳转到包含选定元件的实例的场景 16.添加过的组件都存放在哪里? A A. 不用储存,需要的时候直接调用 B. 直接放在主场景中 C. 嵌套在电影剪辑中 D. 库中的Flash UI Components中 17.以下各种关于图形元件的叙述,正确的是 A A. 可用来创建可重复使用的,并依赖于主电影时间轴的动画片段 B. 可用来创建可重复使用的,但不依赖于主电影时间轴的动画片段 C. 可以在图形元件中使用声音 D. 可以在图形元件中使用交互式控件 18.请从下列选项中选出可以用来创建独立于时间轴播放的动画片段的元件类型: C A. 图形元件 B. 字体元件 C. 电影剪辑 D. 按钮元件 19.如果要创建一个动态按钮,至少需要哪几类元件? D A. 电影剪辑元件 B. 按钮元件 C. 图形元件和按钮元件 D. 电影剪辑元件和按钮元件 20.下面关于矢量图形和位图图像的说法错误的是: D A. Flash 允许用户创建并产生动画效果的是矢量图形而位图图像不可以 B. 在 Flash 中,用户也可以导入并操纵在其他应用程序中创建的矢量图形和位图图像 C. 用FLASH MX的绘图工具画出来的图形为矢量图形 D. 一般来说矢量图形比位图图像文件量大 21.制作形状渐变动画,使用变形提示时说法错误的是: C A. 使用变形提示可以控制更复杂的形状变化 B. 变形提示包含字母(从 a 到 z) C. 其最多可以使用 25 个变形提示 D. 以上说法都错 22.Convert to Symbol对话框上的Registration图表的作用是: A A. 确定转换后元件的中心点位置 B. 确定转换后元件的坐标位置 C. 确定被转换对象的中心点位置 D. 确定被转换对象的坐标位置 23.在FLASH中,修改形状时,下面关于 Lines to Fills(由线条转换为填充)的说法错误的是: A A. 选定要转换的线条,不允许多选,只能单选 B. 此功能对于创建某些特殊效果(例如填充具有过渡颜色的线条)非常有效 C. 将线条转换为填充会使文件增大 D. 有可能加快某些动画的绘制过程 24.下面关于使用Flash的HTML发布模板说法错误的是: B A. 允许用户控制电影在浏览器中的外观和播放 B. Flash模板不是包含任何HTML内容,比如Cold Fusion、ASP等的代码就不可以 C. 这种发布Flash 用的模板是一个文本文件,包括两部分:不会改变的HTML代码和会改变的模板代码或变量 D. 创建模板和创建一个标准的HTML页面基本相似,只是用户需要将属于Flash电影的某些值替换为以美元元件($)开头的变量 25.以下关于帧并帧动画和渐变动画的说法正确的是: B A. 两种动画模式FlashMX都必须记录完整的各帧信息 B. 前者必须记录各帧的完整记录,而后者不用 C. 前者不必记录各帧的完整记录,而后者必须记录完整的各帧记录 D. 以上说法均不对 26.下面关于从浏览器打印电影和从Flash播放器打印电影的说法错误的是: D A. 从Flash播放器打印电影,可以指定Flash电影中的哪些帧可以被打印 B. 从Flash播放器打印电影,可以确定帧的打印区域 C. 从Flash播放器打印电影,可以给电影剪辑中的打印帧加Print动作 D. 从浏览器打印电影肯定比从Flash播放器打印电影效果好 27.RadioButton(单选钮)的组参数应该在哪里设置? A A. groupName B. group C. sameGroup D. lable 28.对于在网络上播放动画来说,最合适的帧频率是: B A. 每秒24帧 B. 每秒12帧 C. 每秒25帧 D. 每秒16帧 29.使用组件的SWF影片,可以使用下列播放器 D A. FlashPlayer3 B. FlashPlayer4 C. FlashPlayer5 D. FlashPlayer6 30.对文本进行分离时,Break Apart(分离)命令可应用: B A. 所有字体 B. TrueType 字体 C. 位图字体 D. 打印字体 31.在首次处理非本机创建的FLA源文件时,如果该文件使用了某种特定的字体而本机系统中没有安装,则Flash会: C A. 显示特定字体 B. 什么都不显示 C. 显示但会用本机系统的替换字体显示而且会有提示 D. 显示但会用本机系统的替换字体显示但没有提示 32.如果要导出某种字体并在其他Flash 电影中使用,应该使用哪种元件? A A. 字体元件 B. 电影剪辑 C. 图形元件 D. 按钮元件 33.执行以下哪些操作后,可以退出元件编辑模式? D A. 单击位于舞台顶端的信息栏左面的Back按钮 B. 单击Edit>Edit Document C. 单击位于舞台顶端的信息栏左面的场景名 D. 以上均可 34.在用FLASH制作移动渐变动画时,下面说法正确的是:D A. 对象只能从左到右产生移动渐变 B. 对象只能从上到下产生渐变 C. 对象只能线形渐变 D. 对象可以沿着非线性路径移动 35.如果允许浏览者选择列表框中的多个项目,则应该 A A. selectMultiple=TRUE B. selectMultiple=FALSE C. 默认就可以多选 D. 不能多选 36.在制作形状渐变动画时,在Frame Properties(帧属性)检查器中的Blend(调配)类型的选项说法不正确的是: C A. Distributive(分布式) 该选项在创建动画时所产生的中间形状将平滑而不规则 B. Angular(规则式) 该选项在创建动画时将在中间形状中保留明显的角和直线 C. Angular(规则式)选项不适用于包含尖角和直线的形状 D. 选择了Angular(规则式)选项,而形状渐变动画中的形状却不包含角线,则Flash 将返回Distributive(分布式)选项 37.下面关于发布Flash 电影的说法错误的是: C A. 向受众发布 Flash 内容的主要文件格式是 Flash Player格式(.swf) B. Flash的发布功能就是为在网上演示动画而设计的 C. 可惜Flash Player文件格式是一个不开放标准,今后不会获得更多的应用程序支持 D. 用户可以将整个电影导出为 Flash Player电影,或作为位图图像系列;还可以将单个帧或图像导出为图像文件 38.下面关于通过Flash 播放器的关联菜单打印说法错误的是: C A. 可打印任意Flash电影中的帧 B. 无法打印透明度 C. 可以打印颜色效果 D. 无法打印其他电影剪辑中的帧 39.下面哪些操作不可以使电影优化: D A. 如果电影中的元素有使用一次以上者,则可以考虑将其转换为元件 B. 只要有可能,请尽量使用渐变动画 C. 限制每个关键帧中发生变化的区域 D. 要尽量使用位图图像元素的动画 40.Library中有一元件Symbol 1,舞台上有一个该元件的实例。现通过实例属性检查器将该实例的颜色改为#FF0033,透明度改为80%。请问此时Library中的Symbol 1元件将会发生什么变化? D A. 颜色也变为#FF0033 B. 透明度也变为80% C. 颜色变为#FF0033,透明度变为80% D. 不会发生任何改变 41.如果在选中某个对象之后,还需要同时
没法下载,到这里折腾一把试试。 本文由abc2253130贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 型、接口类型、委托类型和数组类型。 变量的类型声明 变量的类型声明 每个变量必须预先声明其类型。如 int a; int b = 100; float j = 4.5; string s1; 用 object 可以表示所有的类型。 预定义类型 下表列出了预定义类型,并说明如何使用。 类型 object 说明 所有其他类型的最终 基类型 字符串类型; 字符串是 Unicode 字符序列 8 位有符号整型 16 位有符号整型 32 位有符号整型 64 位有符号整型 示例 object o = null; 范围 string sbyte short int long string s = "hello"; sbyte val = 12; short val = 12; int val = 12; long val1 = 12; -128 到 127 -32,768 到 32,767 -2,147,483,648 2,147,483,647 -9,223,372,036,854,775,808 到 第1页 C#(WINFORM)学习 long val2 = 34L; 到 9,223,372,036,854,775,807 byte ushort 8 位无符号整型 16 位无符号整型 byte val1 = 12; ushort val1 = 12; uint val1 = 12; uint 32 位无符号整型 uint val2 = 34U; ulong val1 = 12; ulong val2 = 34U; ulong 64 位无符号整型 ulong val3 = 56L; ulong val4 = 78UL; float 单精度浮点型 float val = 1.23F;7 位 double val1 = 1.23; double 双精度浮点型 double val2 = ±5.0 × 10?324 ±1.7 × 10 308 0 到 255 0 到 65,535 0 到 4,294,967,295 0 到 18,446,744,073,709,551,615 ±1.5 × 10?45 ±3.4 × 10 38 到 到 4.56D;15-16 布尔型;bool 值或为 真或为假 字符类型;char 值是 一个 Unicode 字符 精确的小数类型, 具有 28 个有效数字 bool val1 = true; bool val2 = false; char val = 'h'; decimal val = bool char decimal DateTime ±1.0 × 10?28 ±7.9 × 10 28 到 1.23M;28-29 变量转换 简单转换: float f = 100.1234f; 可以用括号转换: short s = (short)f 也可以利用 Convert 方法来转换: string s1; s1=Convert.ToString(a); MessageBox.Show(s1); 常用 Convert 方法有: 第2页 C#(WINFORM)学习 C# Convert.ToBoolean Convert.ToByte Convert.ToChar Convert.ToDateTime Convert.ToDecimal Convert.ToDouble Convert.ToInt16 Convert.ToInt32 Convert.ToInt64 Convert.ToSByte Convert.ToSingle Convert.ToString Convert.ToUInt16 Convert.ToUInt32 Convert.ToUInt64 备注 Math 类 常用科学计算方法: C# Math.Abs Math.Sqrt Math.Round Math.Floor Math.Cos Math.Sin Math.Tan Math.Exp Math.Log Math.Pow(x,y) Math.Max(x,y) 备注 绝对值 开方 取整,四舍五入 取整,放弃小数 余弦 正弦 正切 返回 e 的指定次幂 对数 数字 x 的 y 次幂 返回较大者 第3页 C#(WINFORM)学习 Math.Min(x,y) 返回较小者 枚举型 一般为字符串,可以定义带数字的枚举型,示例为: enum Color { Red=1, Blue=2, Green=3 } class Shape { public int Fill(Color color) { int ii; switch(color) { case Color.Red: ii=10; break; case Color.Blue: ii=11; break; case Color.Green: ii=12; break; default: ii=-1; break; } return ii; } } private void button1_Click(object sender, System.EventArgs e) { int i; Shape s1=new Shape(); i=s1.Fill((Color)2); //i=s1.Fill(Color.Blue); MessageBox.Show(i.ToString()); 第4页 C#(WINFORM)学习 } Enum 需要放在 class 外面,才能被其它 class 的程序调用。 C#关键字 关键字 abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new struct null switch object this operator throw out true override try params typeof private uint protected ulong public unchecked readonly unsafe ref ushort return using sbyte virtual sealed volatile short void sizeof while stackalloc static string 数组 定义 数组是一种排列有序的数据结构,包含于数组中的变量被称为数组的元素, 它们都有相同的类型。 数组声明 int [] array1 = new int[5]; int [,,] array3 = new int[10,20,30]; int [] array1 = new int[] {1,2,4}; 第5页 C#(WINFORM)学习 数组引用 array1[0]="a1"; 注意,如果定义数组为 int[5] ,则从 0~4。 数组长度 line0.GetLength(1) 数组赋值 可以从一个已经赋值的数组 array2 向未赋值的同等数组 array1 赋值,用 array1=array2; 这时,array1 就变成和 array2 一样的数组了。 集合 集合的使用 集合可以看成是可以随意添加的数组,因此凡是在使用数组的场合,都可以 使用集合。而且集合的元素可以是任意对象,操作也比数组灵活的多。 使用集合时,必须注意集合的生命期问题。如果有两个集合 L1 和 L2,使用 了 L1=L2; 后,只要 L2 生命期没有终结,它的以后的变化就可能会影响到 L1 的数值。因 此在赋值后应该及时销毁或者初始化 L2,以免发生不可预见的错误。 比较 使用 Contains 方法。 ArrayList Array1=new ArrayList(); Array1.Add("as"); bool b1=Array1.Contains("as"); MessageBox.Show(b1.ToString()); 第6页 C#(WINFORM)学习 找到集合中数量最多的一个元素 利用方法来查找,可以返回两个变量。 object Jmax0(ArrayList v11,ref int jj) { int i; object j0=0; ArrayList y11=new ArrayList(); //各个不同的元素的集合 int [] y12=new int[v11.Count]; //记录各个元素数量的数组 int xmax=0; //最大的一个元素的数量 for (i=0;i 10) if (y > 20) Console.Write("Statement_1"); else Console.Write("Statement_2"); 关系运算符 <,,>= 等于:== 不等于:!= 判断字符串 string 和 char 用 Equals 方法。 逻辑运算符 与:a & b 或:a | b 第8页 C#(WINFORM)学习 非:! A 模数运算符 模数运算符 (%) 计算第二个操作数除第一个操作数后的余数。所有数值类 型都具有预定义的模数运算符。如 Console.WriteLine(5 % 2); Console.WriteLine(-5 % 2); Console.WriteLine(5.0 % 2.2); Console.WriteLine(-5.2 % 2.0); // =1 // =-1 // =0.6 // =-1.2 经常用模数运算符来判断整数为奇数(=1)或偶数(=0) 。 循环 无条件循环 int sum,x; sum=0; for(x=1;x<=100;x++) { sum+=x; } 有条件循环 private void button1_Click(object sender, System.EventArgs e) { int sum=0; int x=0; while ((sum<100) & (x<20)) { x++; sum+=x; } string s2=Convert.ToString(x); MessageBox.Show(s2); } 运行显示 14。 第9页 C#(WINFORM)学习 如果改为 while ((sum<100) | (x<20)) 运行显示 20。 多重选择 switch (i) { case 0: CaseZero(); break; case 1: CaseOne(); break; default: CaseOthers(); break; } 每个 case 后面,必须有 break 或者 goto,不允许贯穿。 Goto goto 语句将程序控制直接传递给标记语句。 for (int i = 0; i < x; i++) for (int j = 0; j =this.Width-10) { otherForm.Show(); otherForm.L1.Top=label1.Top; this.Hide(); } } private void button1_Click(object sender, System.EventArgs e) { label1.Left=label1.Left-10; } private void button3_Click(object sender, System.EventArgs e) { label1.Top=label1.Top-10; } private void button4_Click(object sender, System.EventArgs e) { label1.Top=label1.Top+10; } private void button5_Click(object sender, System.EventArgs e) { Application.Exit(); } 同样在 Form2 的 InitializeComponent()下面加上窗体定位语句: Point tempPoint = new Point(300,100); this.DesktopLocation = tempPoint; 然后把 Form2 的 StartPosition 属性改为 Manual。其余程序为: public Label L1 { get { return label1; } set { label1=value; 第 22 页 C#(WINFORM)学习 } } private void button2_Click(object sender, System.EventArgs e) { label1.Left=label1.Left+10; } private void button1_Click(object sender, System.EventArgs e) { Form1 otherForm1=new Form1(); label1.Left=label1.Left-10; if (label1.Left<=-10) { otherForm1.Show(); otherForm1.L2.Top=label1.Top; otherForm1.L2.Left=otherForm1.Width-20; this.Hide(); } } private void button3_Click(object sender, System.EventArgs e) { label1.Top=label1.Top-10; } private void button4_Click(object sender, System.EventArgs e) { label1.Top=label1.Top+10; } 动态产生窗体 public void CreateMyForm() { Form form1 = new Form(); Label label1 = new Label(); Button button1 = new Button (); TextBox text1 = new TextBox(); button1.Text = "确定"; button1.Location = new Point (110, 220); label1.Location = new Point (50,100); text1.Location = new Point (150,100); 第 23 页 C#(WINFORM)学习 form1.Text = "请输入"; label1.Text = "数据"; form1.FormBorderStyle = FormBorderStyle.FixedDialog; form1.ControlBox = false; form1.CancelButton = button1; form1.StartPosition = FormStartPosition.CenterScreen; form1.Controls.Add(button1); form1.Controls.Add(text1); form1.Controls.Add(label1); form1.ShowDialog(); ls=text1.Text; } private void button2_Click(object sender, System.EventArgs e) { CreateMyForm(); MessageBox.Show(ls); } ToolBar 普通使用 在窗体上加上 ToolBar 界面修改后的问题 在界面上修改后,最后要加上: toolBar1.Buttons.Add(toolBarButton1); toolBar1.Buttons.Add(toolBarButton2); toolBar1.Buttons.Add(toolBarButton3); // Add the event-handler delegate. toolBar1.ButtonClick (this.toolBar1_ButtonClick); += new ToolBarButtonClickEventHandler 或者把原有的程序 第 24 页 C#(WINFORM)学习 this.toolBar1.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { this.toolBarButton1,this.toolBarButton2,this.toolBarButton3}); 改变位置,到 toolBar1 设置的最下面。 全部设置程序为: this.toolBar1.DropDownArrows = true; this.toolBar1.Location = new System.Drawing.Point(0, 0); this.toolBar1.Name = "toolBar1"; this.toolBar1.ShowToolTips = true; this.toolBar1.Size = new System.Drawing.Size(592, 42); this.toolBar1.TabIndex = 0; toolBar1.ButtonSize = new System.Drawing.Size(60, 50); // // toolBarButton1 // this.toolBarButton1.Text = "Open"; toolBarButton1 // // toolBarButton2 // this.toolBarButton2.Text = "Save"; toolBarButton2 // // toolBarButton3 // this.toolBarButton3.Text = "Print"; toolBar1.Buttons.Add(toolBarButton1); toolBar1.Buttons.Add(toolBarButton2); toolBar1.Buttons.Add(toolBarButton3); toolBar1.ButtonClick (this.toolBar1_ButtonClick); += new ToolBarButtonClickEventHandler 设置按钮大小 如下设置,可以正常居中显示 9 号字体。 toolBar1.ButtonSize = new System.Drawing.Size(60, 50); 用程序实现 可以用程序实现按钮的增加,但是无法全部实现自动化。 第 25 页 C#(WINFORM)学习 先需要手工添加 toolBar1 和 imageList1,然后把 imageList1 中的图片一一加 上。 void toolBarSet() { //添加按钮 ToolBarButton toolBarButton1=new ToolBarButton(); ToolBarButton toolBarButton2=new ToolBarButton(); toolBar1.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { toolBarButton1,toolBarButton2}); toolBar1.DropDownArrows = true; toolBar1.ImageList = imageList1; toolBar1.Size = new System.Drawing.Size(408, 37); toolBar1.TabIndex = 0; toolBar1.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(toolBar1_ButtonClick); // toolBarButton1 toolBarButton1.ImageIndex = 0; toolBarButton1.ToolTipText = "放大"; // toolBarButton2 toolBarButton2.ImageIndex = 1; toolBarButton2.ToolTipText = "缩小"; } private void Form1_Load(object sender, System.EventArgs e) { toolBarSet(); } private void toolBar1_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e) { switch(toolBar1.Buttons.IndexOf(e.Button)) { case 0: //放大 MessageBox.Show("放大"); break; case 1: //缩小 MessageBox.Show("缩小"); break; default: MessageBox.Show("other"); break; 第 26 页 C#(WINFORM)学习 } } listBox 普通调用 在窗体上放置一个 listBox1,一个 button1 和一个 label1。以下程序实现添加 选项,双击选项就可以显示你的选择: private void button1_Click(object sender, System.EventArgs e) { listBox1.Items.Clear(); listBox1.Items.Add(""); listBox1.Items.Add("选择1"); listBox1.Items.Add("选择2"); listBox1.SelectedIndex=0; } private void listBox1_DoubleClick(object sender, System.EventArgs e) { Label1.Text=listBox1.SelectedIndex.ToString(); } 第一项是一个缺省空项,允许用户不选取退出。 Items 是一个集合,因此增减选项可以按照集合那样操作。 用数组添加选项 System.Object[] ItemObject = new System.Object[10]; for (int i = 0; i <= 9; i++) { ItemObject[i] = "Item" + i; } listBox1.Items.AddRange(ItemObject); 第 27 页 C#(WINFORM)学习 ScrollBar 基本定义 ScrollBar 是滚动条控件,分成 HScrollBar(水平)和 VScrollBar(垂直)两 种。有些控件如 ListBox,TextBox 等可以自动添加滚动条,但是有些控件则需 要用程序添加。主要属性意义为: Value:滚动条的数值,反映当前移动块的位置。初始值设定后,运行时停 留在这个位置。运行时拉动滚动条,由 Scroll 事件的 e.NewValue 参数传递过来。 Maximum:Value 的最大值,一般为 100。 Minimum: Value 的最小值, 即端点的数值。 如果 Maximum=100, Minimum=0, LargeChange=10,则从第一个端点开始 Value=0,到另一个端点的 Value=91。 SmallChange:每次点击移动的数值,一般为 1。 LargeChange:移动块的长度,一般为 10。 控件一起使用 和 PicturBox 控件一起使用 float vi; //每个单位的移动距离 float vk=0.8f; //PicturBox显示高度和实际高度的比例 int t0,ti; //PicturBox显示Top和Height。 private void vScrollBar1_Scroll(object sender,System.Windows.Forms.ScrollEventArgs e) { this.pictureBox1.Top = t0-Convert.ToInt32(e.NewValue*vi); this.pictureBox1.Height = ti+Convert.ToInt32(e.NewValue*vi); } private void button1_Click(object sender, System.EventArgs e) { Button oButton; TextBox oTextBox; for(int i=1;i<=8;i++) { oButton = new Button(); oButton.Text = "按钮"+ i.ToString(); oButton.Location = new System.Drawing.Point(50, i*50); oButton.Click += new System.EventHandler(oButton_Click); 第 28 页 C#(WINFORM)学习 this.pictureBox1.Controls.Add(oButton); oTextBox = new TextBox(); oButton.Tag = oTextBox; oTextBox.Text = "1000"; oTextBox.Location = new System.Drawing.Point(150, i*50); this.pictureBox1.Controls.Add(oTextBox); } } private void oButton_Click(object sender, System.EventArgs e) { Button btn = (Button)sender; TextBox txt = (TextBox)btn.Tag; txt.Text = Convert.ToString(Convert.ToInt32(txt.Text) + 1); } private void Form1_Load(object sender, System.EventArgs e) { vi=vk*pictureBox1.Height/vScrollBar1.Maximum; t0=pictureBox1.Top; ti=pictureBox1.Height; } Panel 基本定义 Windows 窗体 Panel(面板)控件用于为其他控件提供可识别的分组。在设 计时所有控件均可轻松地移动,当移动 Panel 控件时,它包含的所有控件也将 移动。分组在一个面板中的控件可以通过面板的 Controls 属性进行访问。 Panel 控件类似于 GroupBox 控件;但只有 Panel 控件可以有滚动条,而 且只有 GroupBox 控件显示标题。 将 AutoScroll 属性设置为 true,可以自动显示滚动条。但是这时右边界和 下边界顶头,不是太好看。这时需要增加一个不可见的控件或者图像来调整。 下例在 Panel 上用程序添加几个控件,产生滚动效果: private void button1_Click(object sender, System.EventArgs e) 第 29 页 C#(WINFORM)学习 { Button oButton; TextBox oTextBox; for(int i=1;i<=8;i++) { oButton = new Button(); oButton.Text = "按钮"+ i.ToString(); oButton.Location = new System.Drawing.Point(50, i*50); oButton.Click += new System.EventHandler(oButton_Click); this.panel1.Controls.Add(oButton); oTextBox = new TextBox(); oButton.Tag = oTextBox; oTextBox.Text = "1000"; oTextBox.Location = new System.Drawing.Point(150, i*50); this.panel1.Controls.Add(oTextBox); } //增加一个不可见按钮,调整右边界和下边界的位置 oButton = new Button(); oButton.Location = new System.Drawing.Point(260, 440); oButton.Height=0; oButton.Width=0; this.panel1.Controls.Add(oButton); } private void oButton_Click(object sender, System.EventArgs e) { Button btn = (Button)sender; TextBox txt = (TextBox)btn.Tag; txt.Text = Convert.ToString(Convert.ToInt32(txt.Text) + 1); } 控件上添加图像 在 Panel 控件上添加图像 在 Panel 控件上不能直接添加图像。 需要在 Panel 控件上添加一个 picturBox, 然后把其 SizeMode 设置为 AutoSize(随着图像大小调整控件大小)就可以实现 图像的随意滚动察看。 控件上画图 在 Panel 控件上画图 Panel 控件上也可以画图。但是滚动时遮盖的图像就消失了。这时候需要在 Panel 控 件 上 添 加 一 个 picturBox , 然 后 在 picturBox 上 画 图 , 然 后 用 一 个 LocationChanged 事件,每次滚动时重画一遍即可: 第 30 页 C#(WINFORM)学习 Pen pen1=new Pen(Color.Green,2); Graphics g1; void drawLine() { PointF p1=new PointF(0,0); PointF p2=new PointF(100,100); g1.DrawLine(pen1,p1,p2); } private void button2_Click(object sender, System.EventArgs e) { g1=this.pictureBox1.CreateGraphics(); drawLine(); } private void pictureBox1_LocationChanged(object sender, System.EventArgs e) { drawLine(); } 菜单 普通应用 手工添加即可。可以直接在其上写各个菜单项的名字,双击可以添加程序, 使用非常方便。 特殊功能 1.在设计时向菜单项添加选中标记 对于在“菜单设计器”内选定的菜单项(三级菜单以下) ,单击该菜单项左侧 的区域,选中标记√。或者在“属性”窗口中将 Checked 属性设置为 True。 以编程方式向菜单项添加选中标记 myMnuItem.Checked = true; 2.在设计时向菜单项添加快捷键 在“菜单设计器”内选择菜单项。在“属性”窗口中,将 Shortcut 属性设置为 第 31 页 C#(WINFORM)学习 下拉列表中提供的值之一。 以编程方式向菜单项添加快捷键 myMnuItem.Shortcut = System.Windows.Forms.Shortcut.F6; 3.向菜单项添加访问键 如键入“文件(&F)” ,显示“文件(F)” 。 若要定位到此菜单项,请按 ALT 键,将焦点移动到菜单栏,然后按该菜单 名称的访问键。当菜单打开并显示带访问键的项时,只需按该访问键就可选定该 菜单项。或者直接按 ALT+主菜单的访问键。 4.将分隔线作为菜单项添加 在菜单设计器中,右击需要有分隔线的位置,然后选择“插入分隔符”。或者 在设置菜单项的 Text 属性(在“属性”窗口中、菜单设计器中或代码中)时,输 入短划线 (–) 使该菜单项成为分隔线。 其它控件 单选按钮 单选按钮是布置一组按钮,只能选择一组控件。 本例放置 3 个单选按钮,Text 属性分别写上“已婚”“未婚”和“离异” 、 , 然后添加一个 Label 控件和一个 Button 控件,程序如下: public Form1() { InitializeComponent(); label1.Text="请选择"; …… private void button1_Click(object sender, System.EventArgs e) { if (radioButton1.Checked == true) label1.Text=radioButton1.Text; else if (radioButton2.Checked == true) label1.Text=radioButton2.Text; else label1.Text=radioButton3.Text; } 第 32 页 C#(WINFORM)学习 } 复选框 可以选择多个的一组控件。 本例放置 2 个复选按钮,Text 属性分别写上“加粗”和“斜体” ,然后添加 一个 Label 控件和一个 Button 控件,程序如下: private void button1_Click(object sender, System.EventArgs e) { if (checkBox1.Checked == true) { if (checkBox2.Checked == true) label1.Text=checkBox1.Text+checkBox2.Text; else if (checkBox2.Checked == false) label1.Text=checkBox1.Text; } else if (checkBox2.Checked == true) label1.Text=checkBox2.Text; else if (checkBox2.Checked == false) label1.Text=""; } 第 33 页 C#(WINFORM)学习 程序产生 checkBox CheckBox checkBox1=new CheckBox(); void checkSet() { this.Controls.Add(checkBox1); checkBox1.Location = new System.Drawing.Point(50, 64); checkBox1.Name = "checkBox1"; checkBox1.TabIndex = 2; checkBox1.Text = "图层1"; checkBox1.CheckedChanged += new System.EventHandler(checkBox1_CheckedChanged); } private void button1_Click(object sender, System.EventArgs e) { checkSet(); } private void checkBox1_CheckedChanged(object sender, System.EventArgs e) { if (checkBox1.Checked) MessageBox.Show("yes"); else MessageBox.Show("no"); } 如果要实现标题在左边,用 check1.Width=90; check1.CheckAlign=ContentAlignment.MiddleRight; 要在其它控件显示: check3.BringToFront(); 动态产生控件 以下程序动态动态产生一组 Button 和 TextBox 控件,以及点击 Button 的事 件。 private void button2_Click(object sender, System.EventArgs e) { Button oButton; TextBox oTextBox; 第 34 页 C#(WINFORM)学习 for(int i=1;i<=5;i++) { oButton = new Button(); oButton.Text = "按钮"+ i.ToString(); oButton.Location = new System.Drawing.Point(50, i*50); oButton.Click += new System.EventHandler(oButton_Click); this.Controls.Add(oButton); oTextBox = new TextBox(); oButton.Tag = oTextBox; oTextBox.Text = "1000"; oTextBox.Location = new System.Drawing.Point(150, i*50); this.Controls.Add(oTextBox); } } private void oButton_Click(object sender, System.EventArgs e) { Button btn = (Button)sender; TextBox txt = (TextBox)btn.Tag; txt.Text = Convert.ToString(Convert.ToInt32(txt.Text) + 1); } Splitter Windows 窗体 splitter 控件用于在运行时调整停靠控件的大小。 Splitter 控 件常用于一类窗体,这类窗体上的控件所显示的数据长度可变,如 Windows 资 源管理器,它的数据窗格所包含的信息在不同的时间有不同的宽度。 如果一个控件可由 splitter 控件调整其大小,则当用户将鼠标指针指向该控 件的未停靠的边缘时,鼠标指针将更改外观,指示该控件的大小是可以调整的。 拆分控件允许用户调整该控件紧前面的停靠控件的大小。因此,为使用户能够在 运行时调整停靠控件的大小,请将要调整大小的控件停靠在容器的一条边缘上, 然后将拆分控件停靠在该容器的同一侧。 以下例子自动产生几个控件,可以在运行中调整大小。 private void CreateMySplitControls() { TreeView treeView1 = new TreeView(); ListView listView1 = new ListView(); Splitter splitter1 = new Splitter(); 第 35 页 C#(WINFORM)学习 treeView1.Dock = DockStyle.Left; splitter1.Dock = DockStyle.Left; splitter1.MinExtra = 100; splitter1.MinSize = 75; listView1.Dock = DockStyle.Fill; treeView1.Nodes.Add("TreeView Node"); listView1.Items.Add("ListView Item"); this.Controls.AddRange(new Control[]{listView1, splitter1, treeView1}); } private void button1_Click(object sender, System.EventArgs e) { CreateMySplitControls(); } tabControl Windows 窗体 TabControl 显示多个选项卡。 使用时, 先添加一个 TabControl 控件,把它拉的足够大。 然后在属性中添加按钮。每个按钮可以控制 TabControl 的其余页面, 作为一 个容器,可以添加其它空间。运行时只要点击按钮,就可以切换选项卡,实现不 同的功能。 StatusBar 可以向 statusBar 添加面板(窗格) ,以分类显示信息: public void CreateStatusBarPanels() { statusBar1.Panels.Add(""); statusBar1.Panels.Add("Two"); statusBar1.Panels.Add("Three"); statusBar1.Panels[0].Width=200; statusBar1.Panels[0].Text="One"; statusBar1.ShowPanels = true; } 第 36 页 C#(WINFORM)学习 三、字符和字符串 字符和字符串 字符串的操作在程序设计中非常有用,因此单独写成一章。 Char 基本定义 char 关键字用于声明一个字符。 char 类型的常数可以写成字符、十六进制换码序列或 Unicode 表示形式。 您也可以显式转换整数字符代码。 以下所有语句均声明了一个 char 变量并用字 符 X 将其初始化: char MyChar = 'X'; char MyChar = '\x0058'; char MyChar = (char)88; char MyChar = '\u0058'; // Character literal // Hexadecimal // Cast from integral type // Unicode char 类型可隐式转换为 ushort、int、uint、long、ulong、float、double 或 decimal 类型。但是,不存在从其他类型到 char 类型的隐式转换。 ToCharArray 将字符串的部分字符复制到 Unicode 字符数组。示例 string str = "012wxyz789"; char[] arr; arr = str.ToCharArray(3, 4); 显示:wxyz 计算字符串宽度 由于英文和中文的显示长度不一样,所以一些场合要区分。 要引用 using System.Globalization; 第 37 页 C#(WINFORM)学习 程序为: //计算一个字符的字符类型,=0汉字,=1英文 private int getCharType(char ch) { int i0; UnicodeCategory ca1=new UnicodeCategory(); ca1=System.Char.GetUnicodeCategory(ch); switch (ca1) { case UnicodeCategory.OtherPunctuation: i0=0; //汉字 break; case UnicodeCategory.OtherLetter: i0=0; //汉字 break; case UnicodeCategory.FinalQuotePunctuation: i0=0; //汉字 break; default: i0=1; //英文 break; } return i0; } //计算字符串(ss,包含中文)的实际宽度(返回)、起点(x0)和高度(height) //输入字号sz,只对于Pixel单位 public float StringWidth(string ss,float sz,ref float x0,ref float height) { char ch1; int i,i0=0; float width=0; float k1=1.02f; //汉字系数 float k2=0.55f; //英文系数 float k3=0.15f; //x0系数 float k4=1.10f; //高度系数 int i1=0; //汉字个数 int i2=0; //英文个数 height=k4*sz; x0=sz*k3; for(i=0;i控件 打开文件 用 openFileDialog 控件。 private void button1_Click(object sender, System.EventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory=Directory.GetCurrentDirectory(); openFileDialog1.Filter = "Cursor Files|*.cur"; openFileDialog1.Title = "Select a Cursor File"; if(openFileDialog1.ShowDialog() == DialogResult.OK) { System.IO.StreamReader sr = new System.IO.StreamReader(openFileDialog1.FileName); MessageBox.Show(sr.ReadToEnd()); sr.Close(); } } 选择文件夹 在工具箱上选择 folderBrowserDialog: folderBrowserDialog1.ShowDialog(); string s1 = folderBrowserDialog1.SelectedPath.ToString()+@"\mytest.txt"; StreamWriter wr = new StreamWriter(s1); 第 46 页 C#(WINFORM)学习 六、绘图 基本绘图 画直线 在 Button1 中加入以下程序: System.Drawing.Pen myPen; myPen = new System.Drawing.Pen(System.Drawing.Color.Red); System.Drawing.Graphics formGraphics = this.CreateGraphics(); formGraphics.DrawLine(myPen, 0, 0, 200, 200); myPen.Dispose(); formGraphics.Dispose(); 就可以在 Form1 上面画一条线了。用 myPen = new System.Drawing.Pen(System.Drawing.Color.Red,3); 可以改变线的宽度。 最简单的画线程序 Pen pen1=new Pen(Color.Green,2); Graphics g1=this.CreateGraphics(); PointF p1=new PointF(0,0); PointF p2=new PointF(100,100); g1.DrawLine(pen1,p1,p2); pen1.Dispose(); g1.Dispose(); 最后两句可以不写,程序关闭时自动完成。 画椭圆 System.Drawing.Pen myPen; myPen = new System.Drawing.Pen(System.Drawing.Color.Red); System.Drawing.Graphics formGraphics = this.CreateGraphics(); formGraphics.DrawEllipse(myPen, new Rectangle(0,0,200,300)); myPen.Dispose(); formGraphics.Dispose(); 以下画一个椭圆并填充。 System.Drawing.SolidBrush myBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Red); 第 47 页 C#(WINFORM)学习 System.Drawing.Graphics formGraphics = this.CreateGraphics(); formGraphics.FillEllipse(myBrush, new Rectangle(0,0,200,300)); myBrush.Dispose(); formGraphics.Dispose(); 以椭圆的中心点画图 //以给定点找画椭圆的原始点,使得椭圆的中心点是给定点 PointF EllipseCenter(int xs,int ys,PointF p0) { float ek=0.5f; PointF p1=new PointF(); p1.X=p0.X-xs*ek; p1.Y=p0.Y-ys*ek; return p1; } private void button1_Click(object sender, System.EventArgs e) { Graphics g= this.CreateGraphics(); Pen pen1=new Pen(Color.Yellow,1); Pen pen2=new Pen(Color.Red,1); PointF ps=new PointF(); int xs=1,ys=1; //半轴 PointF p0=new PointF(300,100); ps=EllipseCenter(xs,ys,p0); //以下画十字线表示中心位置 PointF p1=new PointF(0,p0.Y); PointF p2=new PointF(600,p0.Y); PointF p3=new PointF(p0.X,0); PointF p4=new PointF(p0.X,300); g.DrawLine(pen1,p1,p2); g.DrawLine(pen1,p3,p4); g.DrawEllipse(pen2,ps.X,ps.Y,xs,ys); } 点弧线 System.Drawing.Pen myPen; myPen = new System.Drawing.Pen(System.Drawing.Color.Red); System.Drawing.Graphics formGraphics = this.CreateGraphics(); 第 48 页 C#(WINFORM)学习 formGraphics.DrawArc(myPen, 100, 50, 140, 70, 30, 180); myPen.Dispose(); formGraphics.Dispose(); 多点直线 System.Drawing.Pen myPen; myPen = new System.Drawing.Pen(System.Drawing.Color.Red); System.Drawing.Graphics formGraphics = this.CreateGraphics(); PointF point1 = new PointF( 50.0F, 50.0F); PointF point2 = new PointF(100.0F, 25.0F); PointF point3 = new PointF(200.0F, 5.0F); PointF point4 = new PointF(250.0F, 50.0F); PointF point5 = new PointF(300.0F, 100.0F); PointF point6 = new PointF(350.0F, 200.0F); PointF point7 = new PointF(250.0F, 250.0F); PointF[] curvePoints = { point1, point2, point3, point4, point5, point6, point7 }; formGraphics.DrawLines(myPen, curvePoints); myPen.Dispose(); formGraphics.Dispose(); 第 49 页 C#(WINFORM)学习 也可以用以下方式给数组赋值: PointF[] pt=new PointF[]{new PointF(2,2),new PointF(25,150),new PointF(100,100)}; 多点弧线 数据同上,修改如下: int offset = 1; //开始点(从0开始) int numSegments = 5; //包含后续点数 float tension = 1.0F; formGraphics.DrawCurve(myPen, curvePoints, offset, numSegments, tension); 第 50 页 C#(WINFORM)学习 以下程序可以画一个封闭曲线: private void button1_Click(object sender, System.EventArgs e) { System.Drawing.Pen myPen; myPen = new System.Drawing.Pen(System.Drawing.Color.Red); System.Drawing.Graphics formGraphics = this.CreateGraphics(); PointF point1 = new PointF( 50.0F, 50.0F); PointF point2 = new PointF(100.0F, 25.0F); PointF point3 = new PointF(200.0F, 5.0F); PointF point4 = new PointF(250.0F, 50.0F); PointF point5 = new PointF(300.0F, 100.0F); PointF point6 = new PointF(350.0F, 200.0F); PointF point7 = new PointF(250.0F, 250.0F); PointF point8 = new PointF(40.0F, 150.0F); PointF[] curvePoints = { point1, point2, point3, point4, point5, point6, point7, point8, point1 }; int offset = 0; 第 51 页 C#(WINFORM)学习 int numSegments = 8; float tension = 1.0F; formGraphics.DrawCurve(myPen, curvePoints, offset, numSegments, tension); // formGraphics.DrawLines(myPen, curvePoints); myPen.Dispose(); formGraphics.Dispose(); } 如果是任意 3 点(或多点) ,在起始点不容易圆滑。可以用以下方法画封闭 曲线: PointF[] curvePoints = { point3, point1, point2, point3, point1 }; int offset = 1; int numSegments = 3; float tension = 0.5F; 第 52 页 C#(WINFORM)学习 这样可以保证第一个点处比较圆滑。 参数设置 设置线段宽度: myPen.Width =3; 在 pictrueBox 上面画线,修改 this: System.Drawing.Graphics formGraphics = picBox1.CreateGraphics(); 填充 System.Drawing.SolidBrush myBrush = new ystem.Drawing.SolidBrush(System.Drawing.Color.LightPink); System.Drawing.Pen myPen; myPen = new System.Drawing.Pen(System.Drawing.Color.Red,1); System.Drawing.Graphics formGraphics = pictureBox1.CreateGraphics(); PointF point1 = new PointF( 50.0F, 50.0F); PointF point2 = new PointF(100.0F, 25.0F); PointF point3 = new PointF(200.0F, 5.0F); PointF point4 = new PointF(250.0F, 50.0F); PointF point5 = new PointF(300.0F, 100.0F); PointF point6 = new PointF(350.0F, 200.0F); PointF point7 = new PointF(250.0F, 250.0F); PointF[] curvePoints = { 第 53 页 C#(WINFORM)学习 point1, point2, point3, point4, point5, point6, point7 }; formGraphics.FillPolygon(myBrush,curvePoints); formGraphics.DrawPolygon(myPen,curvePoints); myPen.Dispose(); myBrush.Dispose(); formGraphics.Dispose(); 颜色 颜色基本设置 普通颜色设置可以直接选取系统定义的颜色。高级设置采用 RGB 颜色。 Color myColor; myColor = Color.FromArgb(23,56,78); 每个数字均必须是从 0 到 255 之间的一个整数,分别表示红、绿、蓝三种 原色。其中 0 表示没有该颜色,而 255 则为所指定颜色的完整饱和度。如 Color.FromArgb(0,255,0) 表 示 绿 色 , Color.FromArgb(255,255,0) 表 示 黄 色 , Color.FromArgb(0,0,0) 呈现为黑色,而 Color.FromArgb(255,255,255) 呈现为白 色。 还可以设置透明度,如 Color myColor; myColor = Color.FromArgb(127, 23, 56, 78); 127 表示 50%的透明度,255 表示完全不透明。 选择颜色 以下程序可以从调色板选择一个颜色,在 textBox 上面显示。 private void button1_Click(object sender, System.EventArgs e) { ColorDialog MyDialog = new ColorDialog(); 第 54 页 C#(WINFORM)学习 MyDialog.AllowFullOpen = false ; MyDialog.ShowHelp = true ; MyDialog.Color = textBox1.ForeColor ; if (MyDialog.ShowDialog() == DialogResult.OK) textBox1.ForeColor = MyDialog.Color; } 产生窗体选择颜色 本程序在一个菜单里调用选择程序,产生一个动态的窗体,选择颜色后返回 主程序,刷新原来的页面。 由于没有掌握控制动态控件集合的方法,只好用枚举的方法定义动态控件, 对于多于 10 个的颜色序列,需要修改程序。 Form form1; bool Cform=true; //颜色设置 private void menuItem31_Click(object sender, System.EventArgs e) { while (Cform) { CreateColorForm(); Tuli1(); DisLine(); } Cform=true; } //产生颜色输入窗体 private void CreateColorForm() { int i; form1=new Form(); Button [] ColorButton Label [] ColorLabel = new Button [myPloys.marks1.Count]; = new Label [myPloys.marks1.Count]; Button button0 = new Button (); form1.Width=130; form1.Height=130+myPloys.marks1.Count*30; form1.Text = "等值线颜色输入"; form1.FormBorderStyle = FormBorderStyle.FixedDialog; 第 55 页 C#(WINFORM)学习 form1.ControlBox = false; form1.StartPosition = FormStartPosition.CenterScreen; button0.Text = "退出"; button0.Width=80; button0.Location=new Point(25,50+myPloys.marks1.Count*30); form1.Controls.Add(button0); form1.CancelButton = button0; for (i=0;i设置成垂直。 // Font myFont = new Font("Times New Roman",14,FontStyle.Italic,GraphicsUnit.Millimeter); Font myFont = new Font("隶书",34,FontStyle.Underline,GraphicsUnit.Pixel); Graphics g = this.CreateGraphics(); System.Drawing.SolidBrush myBrush=new SolidBrush(Color.Red); System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat (StringFormatFlags.DirectionVertical); g.DrawString("Hello!你好", myFont, myBrush, 10, 10,drawFormat); 根据给定点找到实际标注点 //根据给定点,找到实际标注点,使得以画出的字符串以给定点为中心 public PointF StringCenter(string s1,float sz,PointF p0) { PointF p1=new PointF(); float x0=0; float height=0; float width=StringWidth(s1,sz,ref x0,ref height); p1.X=p0.X-+x0-width/2; p1.Y=p0.Y-height/2; return p1; } 第 59 页 C#(WINFORM)学习 pictureBox 用 pictureBox 画图 和在 form 上面画图类似,只是把 this 替换成 pictureBox1: System.Drawing.Pen myPen; myPen = new System.Drawing.Pen(System.Drawing.Color.Red,1); System.Drawing.Graphics formGraphics = pictureBox1.CreateGraphics(); System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Black); System.Drawing.Font drawFont = new System.Drawing.Font("Arial", 8); string drawString = "201"; float x = 200.0f; float y = 100.0f; formGraphics.DrawEllipse(myPen, x, y,4,4); formGraphics.DrawString(drawString, drawFont, drawBrush, x, y); myPen.Dispose(); drawFont.Dispose(); drawBrush.Dispose(); formGraphics.Dispose(); 用 pictureBox 显示一个图片 有固定模式和缩放模式,通过设置 SizeMode 实现。程序如下: pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; //按图像文件大小缩放 // pictureBox1.Image = Image.FromFile ("abc.bmp"); //文件放在\bin\Debug文件夹 //文件放在程序文件夹 pictureBox1.Image = Image.FromFile (@"..\..\abc1.bmp"); Region 基本概念 指示由矩形和由路径构成的图形形状的内部。 基本操作 基本操作 System.Drawing.Graphics e = this.CreateGraphics(); 第 60 页 C#(WINFORM)学习 Rectangle regionRect = new Rectangle(20, 20, 100, 100); e.DrawRectangle(Pens.Black, regionRect); RectangleF complementRect = new RectangleF(90, 30, 100, 100); e.DrawRectangle(Pens.Red,Rectangle.Round(complementRect)); Region myRegion = new Region(regionRect); myRegion.Intersect(complementRect); SolidBrush myBrush = new SolidBrush(Color.Blue); e.FillRegion(myBrush, myRegion); 主要图形操作还有 Union 和 Xor。 Polygon 的镂空 采用异或(Xor)运算。需要把 polygon 转换成路径: Graphics g1 = this.CreateGraphics(); GraphicsPath myPath1=new GraphicsPath(); PointF[] pts=new PointF[]{new PointF(2,20),new PointF(250,0) ,new PointF(100,100),new PointF(90,150),new PointF(10,70)}; myPath1.AddPolygon(pts); g1.DrawPath(Pens.Black,myPath1); GraphicsPath myPath2=new GraphicsPath(); PointF[] pts1=new PointF[]{new PointF(20,30),new PointF(50,70) ,new PointF(100,40)}; myPath2.AddPolygon(pts1); g1.DrawPath(Pens.Black,myPath2); Region myRegion = new Region(myPath1); myRegion.Xor(myPath2); SolidBrush myBrush = new SolidBrush(Color.Blue); g1.FillRegion(myBrush, myRegion); 如果要镂空多个空洞,需要把这些空洞都加入到 myPath2 中,其余操作同样。 采用交、并和异或运算,都可以把两个对象互换。 显示数据 public void DisplayRegionData(Graphics e, int len,RegionData dat) { int i; float x = 20, y = 140; 第 61 页 C#(WINFORM)学习 Font myFont = new Font("Arial", 8); SolidBrush myBrush = new SolidBrush(Color.Black); e.DrawString("myRegionData = ",myFont, y = 160; for(i = 0; i 300) { y += 20; x = 20; } e.DrawString(dat.Data[i].ToString(),myFont, x += 30; } } myBrush,new PointF(x, y)); myBrush,new PointF(x, y)); 路径 基本应用 用 GraphicsPath 可以把各种绘图元素 (包括文字) 包含进来, 最后用 DrawPath 画出来。 需要:using System.Drawing.Drawing2D; private void button2_Click(object sender, System.EventArgs e) { Pen myPen = new Pen(System.Drawing.Color.Red,1); System.Drawing.Graphics formGraphics = this.CreateGraphics(); GraphicsPath myPath1=new GraphicsPath(); myPath1.AddLine(0, 0, 10, 20); myPath1.AddEllipse(20,20,10,10); myPath1.AddLine(40, 40, 50, 120); formGraphics.DrawPath(myPen, myPath1); myPath1.Dispose(); myPen.Dispose(); formGraphics.Dispose(); } 第 62 页 C#(WINFORM)学习 不连续线条 用一个半径为 0 的点加在中间: myPath1.AddLine(0, 0, 10, 20); myPath1.AddEllipse(20,20,0,0); myPath1.AddLine(40, 40, 50, 120); 也可以用两个 path,然后用 path2.AddPath(path3,false); 复杂应用 路径可以包含其它路径,汇总成一个大的图形。 还可以通过矩阵变换进行缩放、平移和旋转。 简单 Matrix 变换 可以通过矩阵变换进行图形的变换。 private void button1_Click(object sender, System.EventArgs e) { System.Drawing.Graphics e1 = this.CreateGraphics(); Pen myPen = new Pen(Color.Blue, 1); Pen myPen2 = new Pen(Color.Red, 1); Matrix myMatrix1 = new Matrix(1.0f, 0.0f, 0.0f, 3.0f, 0.0f, 0.0f); // x和y方向都 放大3倍 // Matrix myMatrix1 = new Matrix(1.0f, 0.0f, 0.0f, 1.0f, 50.0f, 50.0f); // 平移50,50 e1.DrawRectangle(myPen, 0, 0, 100, 100); e1.Transform = myMatrix1; e1.DrawRectangle(myPen2, 0, 0, 100, 100); myPen.Dispose(); e1.Dispose(); } 复杂 Matrix 变换 下例显示缩放、旋转和移动变换。 public void MultiplyExample(PaintEventArgs e) { Pen myPen = new Pen(Color.Blue, 2); Pen myPen2 = new Pen(Color.Red, 1); 第 63 页 C#(WINFORM)学习 Matrix myMatrix1 = new Matrix(3.0f, 0.0f, 0.0f, 3.0f, 0.0f, 0.0f); // Scale Matrix myMatrix2 = new Matrix(0.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f); // Rotate 90, Matrix myMatrix3 = new Matrix(1.0f, 0.0f, 0.0f, 1.0f, 250.0f, 50.0f); // Translate ListMatrixElements(e, myMatrix1, "Beginning Matrix", 6, 40); myMatrix1.Multiply(myMatrix2, MatrixOrder.Append); ListMatrixElements(e,myMatrix1,"Matrix After 1st Multiplication",6,60); myMatrix1.Multiply(myMatrix3, MatrixOrder.Append); ListMatrixElements(e, myMatrix1,"Matrix After 2nd Multiplication",6,80); e.Graphics.DrawRectangle(myPen, 0, 0, 100, 100); e.Graphics.Transform = myMatrix1; e.Graphics.DrawRectangle(myPen2, 0, 0, 100, 100); } public void ListMatrixElements(PaintEventArgs e,Matrix matrix,string matrixName, int numElements,int y) { int i; float x = 20, X = 200; Font myFont = new Font("Arial", 8); SolidBrush myBrush = new SolidBrush(Color.Black); e.Graphics.DrawString(matrixName + ": for(i=0; i背景图片,把图画在这个图片上,最后保存到另外一个文件 中。 private Image cuurimage; private void button2_Click(object sender, System.EventArgs e) { Pen myPen = new Pen(System.Drawing.Color.Red,2); pictureBox1.Image = Image.FromFile (@"..\..\abc1.bmp"); cuurimage = pictureBox1.Image; Graphics g = Graphics.FromImage(cuurimage); g.DrawEllipse(myPen, 100, 100,44,14); cuurimage.Save("abc0.bmp"); myPen.Dispose(); g.Dispose(); } 利用 Image 擦除图像 下例要先准备一个 jpg 图像文件。 先

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧