原创 VisualC++(包含WindowsAPI和MFC)开发中常见问题的答案[4]

2007-3-6 11:52 3401 3 3 分类: 软件与OS

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);

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /2 下一条