工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VC > 正文
Visual C++开发中常见问题的答案
[文章信息]
作者:yanqlv
时间:2005-02-12
出处:BLOG
责任编辑:方舟
[文章导读]
在主菜单"Build"中,有一个Start Build的子菜单,它下面包含了Go菜单
advertisement
热点推荐
· EJB3.0开发指南之多对多和一对一
· Excel动画图解:按笔画排序姓名
· Visual Basic串口通讯调试方法
· 菜鸟如何用摄像头过拍摄瘾
· 拼音加加使用技巧三则
[正文]
  1、简述VC6下如何进行程序的调试
 
  在主菜单"Build"中,有一个Start Build的子菜单,它下面包含了Go菜单(快捷键为F5),选择后,程序将从当前语句进入调试运行,直到遇到断点或程序结束。

  将鼠标移动到要调试的代码行,单击鼠标右键选择“Insert/Remove Breakpoint”,或者按下F9,可以在该行上添加断点,此时断点代码行前面出现一个棕色的圈,再次选择将清除断点。进入调试状态后,Debug菜单将取代Build菜单出现在菜单栏中,它下面包含常用的调试操作,如Step Over,单步运行并不跟踪到调用的函数内部;其他还包括Step Into,Step Out, Stop Debugging等调试方法。

  2、简述在VC6建立的工程中后缀为.cpp,.h,.rc,.dsp,.dsw的文件的作用是什么?

   .cpp是源程序代码C++文件

   .h是包含函数声明和变量定义的头文件

   .rc是定义资源的资源脚本文件

   .dsp是工程文件,记录当前工程的有关信息

   .dsw是工作区文件,一个工作区可能包含一个或多个工程

  3、已知一个对话框上有一个编辑框控件,ID为IDC_EDIT1,为其关联了CEdit类型的变量m_edit1,使用两种方法,说明如何改变编辑框内部的文本为"Hello",写出程序代码的片断。

  第一种方法:

  m_edit1.SetSel(0,-1);

  m_edit1.ReplaceSel("Hello");

  第二种方法:

  SetWindowText("Hello");

  4、简述使用Windows API编写的一个基本的Windows应用程序框架的结构。

  Windows API编写的基本应用程序框架至少应该包含程序入口函数WinMain和窗口函数WndProc。在主函数WinMain里面包含窗口类的定义和注册,窗口的创建和显示以及消息循环。

  5、消息在Windows中的数据类型是什么,它有哪些成员变量,各有什么含义

  消息的数据类型是MSG,它是一个结构体,其成员变量主要包括hwnd,表示消息的窗口句柄;message代表消息的类型;wParam和lParam包含消息的附加信息,随不同的消息有所不同。

  6、Windows的鼠标消息的长参数lParam与字参数wParam的含义是什么

  鼠标消息的长参数lParam的低字节包含了鼠标光标位置的x坐标值,lParam的高字节包含了鼠标光标位置的y坐标值;字参数wParam内包含了指示当前按下的各种虚键状态的值。

  7、说明使用一个非模态对话框的注意问题和用到的Windows API函数

  使用一个非模态对话框应该注意一定要在样式中包含WS_VISIBLE才能正常显示;创建对话框使用CreateDialog函数;消息循环部分应该使用IsDialogMessage过滤消息;关闭对话框使用函数DestroyWindow。

  8、简述在MFC应用程序中UpdateData函数的作用及其参数含义与使用场合。

  UpdateData只有一个BOOL类型的参数,UpdateData(FALSE)一般用于对话框控件连接的变量值刷新屏幕显示;UpdateData(TRUE)用于获取屏幕数据到对话框控件连接的变量中。

  9、列举列表框控件能够接受的三个消息类型,并说明其作用

  LB_ADDSTRING用于在列表框中加入一项字符串;LB_DIR用于在列表框中列出指定文件;LB_GETTEXT用于获取指定项的文本。

  10、在一个对话框上添加了三个单选按钮,要使它们之间自动实现互斥,应该注意什么问题,在VC环境下如何操作?

  要实现一组单选按钮的自动互斥,应该让它们的控件ID值连续,并设置第一个单选按钮的Group属性,其他的不设。

  11、简述由一个文档类派生自己的文档类,并实现文档的存取需要哪些步骤。

  首先为每一个文档类型从CDocument派生一个相应的文档类;然后为该文档类添加成员变量以保存数据;最后重载Serialize成员函数以实现文档数据的串行化。

  12、列举视图类(CView)的三个子类,并简要说明其作用。

  CScrollView类提供视图的滚动显示;CEditView类支持在视图中的文本编辑操作;CHtmlView类支持在视图中显示和操作html文件。

  13、Visual C++ 6.0如何进入调试状态,在调试状态下能够显示哪些调试窗口,列举三个,其作用分别是什么?

  启动调试后,在View菜单的Debug Window子菜单下可以打开一些辅助调试的窗口

  Watch:显示察看当前语句和前面语句中变量值的窗口

  Call Stack:显示察看调用堆栈的窗口

  Memory:显示察看内存中内容的窗口

  14、说明位图资源的创建及显示过程的步骤,并给出相应的Windows API函数名。

  首先定义位图句柄HBITMAP hBitmap;第二步使用LoadBitMap加载位图;第三步,调用CreateCompatibleDC向系统申请内存设备环境句柄,并调用函数SelectObject把位图选入内存设备环境;第四步,调用BitBlt函数将位图从内存设备环境输出到指定的窗口设备环境中,从而实现显示位图。

  15、如何获取字体句柄从而实现字体的输出,并给出相应的Windows API函数名。

  首先定义字体句柄变量HFONT hF;然后调用函数GetStockObject获取系统的字体句柄,或者调用CreateFont得到自定义的字体句柄;最后调用SelectObject把字体句柄选入设备环境。

  16、列举三种按钮的类型,并说明其作用和创建方法之间的不同之处。

  常用的按钮有普通按钮、单选按钮、复选框,和组框。普通按钮作用是帮助用户触发指定动作;单选按钮一般各选项之间存在互斥性;复选框用来显示一组选项供用户选择,各选项之间不存在互斥;组框主要用于把控件分成不同的组并加以说明.

  17、要使一个静态控件显示一个位图并能接受用户输入,应该注意什么问题。

  要使静态控件显示位图,必须设定其风格包含SS_BITMAP,并在创建静态控件窗口,即调用CreateWindow时指定并加载位图;要使静态控件能够接收用户输入,必须设定其风格包含SS_NOTIFY。

  18、列举滚动条控件的四种类型的动作标识,并说明其发生的场合。

  常用的滚动条控件的动作标识包括(对于垂直滚动条):SB_LINEUP表示向上滚动一行;SB_LINEDOWN表示向下滚动一行;SB_PAGEUP表示向上滚动一页;SB_PAGEDOWN表示向下滚动一页。

  19、说明使系统定时器消息(WM_TIMER)的使用方法及其用到的Windows API函数

  使用定时器消息的方法是:首先调用SetTimer函数定义定时器消息,包括消息产生的时间间隔等;然后在相应的WM_TIMER消息处理里添加定时器消息响应代码;最后调用KillTimer释放该定时器。

  20、MFC应用程序向导能够创建那几种类型的应用程序框架,哪些采用了文档/视图结构。

  MFC应用程序向导能建立基于单文档(SDI),基于多文档(MDI)和基于对话框(Dialog Based)三种应用程序的框架。其中前两种采用了文档/视图结构。

  21、列举五种控件,说明其作用和MFC对应的类名

  CStatic是静态文本控件窗口,用于标注、分隔对话框或窗口中的其他控件;CButton是按钮控件窗口,为对话框或窗口中的按钮、单选按钮和多选按钮等提供一个总的类;CScrollBar是滚动条控件窗口,提供滚动条的功能,用于在对话框或窗口中的一个控件,通过它在某一范围内定位;CListBox是列表框控件窗口,列表框用于显示一组列表项,用户可以进行观察和选择;CProgressCtrl是进度条控件窗口,用于指示一个操作的进度。

  22、MFC的文档/视图结构中说明视图类如何访问文档类,文档类如何通知视图类进行更新,给出成员方法名?

  MFC的文档/视图结构中,视图类通过其成员方法GetDocument获得对应文档类的指针,从而访问文档类的数据;文档类通过其成员方法UpdateAllViews通知所有视图,文档已经被修改,视图应该被重画。

  23、简述在一个基于对话框的MFC应用程序框架中添加一个编辑框(编辑框的控件ID是IDC_EDIT1,已经为其连接了变量m_edit1),要求在其中动态显示示当前时间,时间格式为“HH:mm:ss",如"15:20:16",每一秒钟刷新一次,如何实现,给出代码片断。(提示:使用定时器SetTimer)

  实现方法:实现定时器,每隔一秒钟发出WM_TIMER消息,并在该消息相应函数中添加代码更新编辑框内容。

  第一步:为对话框的WM_INITDIALOG的消息响应函数OnInitDialog中添加代码: SetTimer(1,100,NULL);

  第二步: 为对话框添加WM_TIMER的消息相应函数OnTimer,并在其中添加代码:

CTime tNow;

tNow=CTime::GetCurrentTime();

CString sNow=tNow.Format("%I:%M:%S");

m_edit1.SetSel(0,-1);

m_edit1.ReplaceSel(sNow);

  第二步: 为对话框的WM_DESTRYOY的消息响应函数OnDestroy中添加代码 KillTimer(1);

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • MFC程序员的WTL指南之对话框与控件
  • 标准模板库(STL)学习指南之List容器
  • 用VC实现将自绘图形输出为bmp文件
  • DLL“地狱”的原因及其解决方案
  • 一步一步学习STL标准模板库
  • The Mobile Media Company 扩大3G移动服务
  • 奥斯卡样片令盗版猖狂 网上出现DVD下载版本
  • 去年深圳共出口手机2001万部价值19.5亿美元
  • 美电子垃圾问题严重 每年丢弃5000万台电脑
  • 富士发布新入门数码相机A350/345(多图)
  • 松下要做“中国本地的企业” 整合61家子公司
  • 短信风暴席卷上海除夕 高峰时刻处理2221万条
  • 日开发出高速传输信息新技术 有望用于手机
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索