下面是个『VC++技术内幕』学习笔记(10)教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!
【 tulaoshi.com - 编程语言 】
第十篇:模式对话框和通用控件(下)
大家好,雷神由于出差在外,所以笔记今天才写出抱歉。不知道大家有没有做上篇提到的计算器,计算器对雷神来说可是经典的程序,学VB先搞了计算器,学VC也搞了个计算器,前不久在学扩展CBUTTON类时也是用计算器程序,为什么?按钮多呗,雷神最终做出了一个圆形按钮,液晶显示的计算器,感觉真的不错。学编程就是要编写代码,代码写的多少和编程水平是成正比的。
由对话框编辑器和Class Wizard生成的对话框可以很轻松的不需编写很多的代码而获得很多的功能,但如果我们想对对话框进一步的改进则需要手工编程了。
我们以上一篇的电脑体育彩票选号小程序为例进行一系列的改进工作。
(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)改进一:截获退出控制权
当我们的光标不在选号按钮上时(例如在文本框内),当按下回车(Enter)键则回退出程序的运行,还有当你按下ESC键时也会退出。为什么?因为当用户按下回车键时Windows就会自动查找“输入焦点”在哪个按钮上,如果所有的按钮都没有获得输入焦点,Windows会自动的寻找程序资源指定的默认按钮,如果对话框没有默认按钮,系统会调用OnOK函数。ESC键也会触发对OnCancel函数的调用,从而导致控制从对话框中退出。如果我们想截获退出控制权该如何做呢?用哑函数,就是将按下Enter和ESC后的处理函数写成空函数。
步骤1、由于我们的对话框没有OK和CANCEL按钮,我们只能手工添加代码。在guessDlg.h文件的类声名重载:virtual void OnOK()和virtual void OnCancel();两个虚函数。
class CGuessDlg : public CDialog
{
.......
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CGuessDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual void OnOK();
virtual void OnCancel();
/
来源:http://www.tulaoshi.com/n/20160219/1602642.html
看过《『VC++技术内幕』学习笔记(10)》的人还看了以下文章 更多>>