实用专题OICQ专区 MSN专区 主页浏览 影音播放 系统优化 办公专区 杀软专区 木马防范 流氓清除 黑软专区 设计专区 压缩解压 下载工具 P2P工具专区 输入法专区

您当前的位置:JZ5U绿色下载站文章中心软件技术问答精粹 → 文章内容
  • 最新电脑报部分精华文章集合 (值得收藏)

,每个值都是0~255之间的一个整数。在上面代码中RGB表示混合同样一份红色与绿色,并关闭蓝色得到黄色;0,0,0为黑色,255,255,255为白色。

  RGB宏是VC++程序使用颜色的基础,但在使用时遇到的棘手问题是,当你选择一种“中间色”时,你如何才能知道确切的“配方”──那三个0~255之间的颜色参数分别是多少?这也是笔者在研制一个项目中遇到的一个实际问题,尽管它在整个项目中显得微不足道。为此,笔者编制了一个实验程序,运行后可以调用MFC的颜色对话框,当我们选中具体颜色后,就得到其RGB值,并存放到文本文件RGBNum中。当我们得到这个值后,在上面代码中就可以用这个数值去替代RGB宏了。实验程序具体代码如下:

  void CMyView::OnSelRGB()

  {

  CColorDialog colorDialog;

  COLORREF Mycolor;

  FILE *fin;

  fin=fopen("RGBNum.txt","a");

  if(colorDialog.DoModal()==IDOK)

  {

  Mycolor =colorDialog.GetColor();

  fprintf(fin," Mycolor =%ld\n",Mycolor);

  fclose(fin);

  }

  }

  上述代码是通过COLORREF获取RGB颜色值的。COLORREF是一个32bit整数,它常用RGB宏作初始化。

  二、设置对话框的背景颜色
  要改变应用程序所有对话框的背景颜色,可以调用CwinApp::SetDialogBkColor(),它的第一个参数指定了背景颜色,第二个参数指定了文本颜色。www.jz5u.com

  下例将应用程序对话框设置为蓝色背景和黄色文本。

  BOOL CMyApp::InitInstance()

  {

  ......

   //蓝色背景黄色文本

   SetDialogBkColor(RGB(0,0,255),RGB(255,255,0));

   ......

  }

  三、如何控制文字的显示颜色
  在VC++编程中,常会用LOGFONT结构中的14个字段定义去控制显示字符的大小、粗细、角度、字体等。而且可以用函数SetTextColor(COLORREF crColor)设置字符颜色。有关代码如下所示:

  void CMyView::OnDraw(CDC* pDC)

  {

   CMenuCom03Doc* pDoc = GetDocument();

   ASSERT_VALID(pDoc);

   // 设置文本颜色

   COLORREF color=RGB(0,250,0);

  pDC->SetTextColor(color);

  pDC->TextOut(120,200,"彩色字体样例");

  }

  下一步,我们还可以设置具有翻转背景颜色的文本。即调用CDC::SetBkMode()函数并传送TRANSPARENT使背景颜色保持不变。以下代码用红色带阴影显示文本:

  void CMyView::OnDraw(CDC* pDC)

  {

   CDelemeDoc* pDoc = Get Document();

   ASSERT_VALID(pDoc);

   // TODO: add draw code for native data here

   CRect rc;

   GetClientRect(rc);

   CString str(_T("Hello,World!"));

   pDC->SetBkMode(TRANS PARENT);

   rc.OffsetRect(1,1);

   pDC->SetTextColor(RGB(0,0,0));

  pDC->DrawText(str,str.GetLength(),rc,DT_SINGLELINE|DT_CENTER|DT_VCENTER);

  rc.OffsetRect(-1,-1);

  pDC->SetTextColor(RGB(255,0,0));

  pDC->DrawText(str,str.GetLength(),rcView,DT_SINGLELINE|DT_CEN TER|DT_VCENTER);

  }

  本文列举的源代码均在VC++6.0下调试运行通过。

计算机等级考试释疑:VB应试心得


VB因简单易学、功能强大和微软的支持而成为主流,于是越来越多参加全国计算机等级考试的人选择了它。不过请大家注意:二级VB考试笔试与上机时间均为90分钟,千万不要与其他语言的考试时间发生混淆。

  VB与QB的区别与联系
  VB与QB在数据类型、语法和程序结构等方面有很多相同之处,VB仍采用基本的BASIC语言,但它们的区别却是根本性的:

  1.QB只是一门程序设计语言,而VB不但是一门程序设计语言,更重要的还是在Windows操作系统界面下的软件开发工具,它主要用来开发可视化软件。

  2.QB中的程序是一个完整的程序系统,是不可以分割的,程序执行时从头执行到尾,编写程序时一定要精确地写出每一个步骤;而VB程序采用的是事件驱动编程机制,用户编写程序时不必写出很长的程序,只要写出简短的程序片断就可以了。

  比如这样一个例子,要求编程实现:输入两个数,输出它们的和。如果用QB,程序如下 INPUT a;b

  c=a+b

  PRINT c

  END

  而用VB程序则如下:

  Private Sub Command1_Click()

    A=InputBox("a=")

    B=InputBox("b=")

    C=val(a)+val(b)

    Print C

  End Sub

  这个例子中QB程序与VB程序在程序代码和语法规则上基本相似,但执行时就不一样了:QB只要运行,就可以得出结果;而VB程序则必须用鼠标单击Command1对象才能执行其代码,得出结果。如果单击窗体则操作对象错误;如果对Command1不单击而进行其他操作,则对象响应事件错误。这两者都不能执行VB下面的程序代码。因而在VB应试学习过程中,既要学会分析BASIC程序的执行流程,又要熟悉和掌握VB的操作界面、面向对象程序设计的特点。

  重视VB的基本概念
  VB的基本概念中,要特别重视数据类型的定义、表达式、函数及常用控件的属性、功能和使用。这是掌握面向对象程序设计、学会编写事件代码的基础,考试的内容涉及面很广,大家要多加记忆与理解。

  在前面的例子中,如果将其中的“C=val(a)+val(b)”改为“C=A+B”,那么从键盘输入A=1,B=2,结果还是3吗?答案是否定的。因为InputBox函数是输入语句,它只能接收文本,所以变量A与B内存放的并非是数字1与2而是字符“1”与“2”,而语句C=A+B中的“+”号的含义对于文本来讲并不是加而是连接的意思,因而答案为12。这个问题的理解充分地说明了掌握基本概念的重要性。

  2002年秋季笔试中有一选择题:在窗体上画一个名称为Commandl的命令按钮,然后编写如下程序:

  Private Sub Command1_Click()

  Static X As Integer

  Static Y As Integer

  Cls

  Y=1

  Y=Y+5

  X=5+X

  Print X,Y

  End Sub

  程序运行时,三次单击命令按钮Commandl后,窗体上显示的结果为:

  A) 15 16   B) 15 6

  C) 15 15   D) 5  6

  解析:本题主要考查对数据的定义,用Dim和用Static定义的变量在程序中的结果是完全不同的。用Dim定义的变量,在过程运

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  下一页


  • 作者:不详  来源:建站无忧(www.jz5u.com)  发布时间:2005-11-3 22:58:53

----------------------------------The End Of Jz5u' Article---------------------------------- 以下是评论:【发表评论

------------------------------- · 相关文档浏览 · --------------------------------------------------------------------- · 热门文档浏览 · -------------------------------------