《Visual C++从入门到精通》
发表在C语言图书答疑 2012-12-19
是否精华
版块置顶:
老师,您好:
《Visual C++从入门到精通》2008年第1版,第12章习题1,在光盘上是:
E:\TM\sl\12\9\DigitStatic ,其中文件 DigitStatic.cpp中第92行:

SubclassDlgitem(uID, pParent);

为了查看其操作,我自己重新编写了个程序,可不能执行。
步骤如下:
(1)创建一个基本对话框应用程序 abc;
(2)向对话框中添加一个静态文本控件;
(3)改变此静态文本控件的 ID为:IDC_MY_STATIC,并为静态文本控件关联变量 m_abc;
(4)在应用程序的初始化函数 OnInitDialog()中,添加一个语句:

m_abc.SubclassDlgitem(IDC_MY_STATIC, this);

程序编译通过了,可运行 abc.exe 时,却出现错误:Debug Assertion Failed !
只能终止。
把以上语句改成为:SubclassDlgitem(IDC_MY_STATIC, this); 结果还是一样。
我用“调试”查看了一遍,每当走到这条语句就出错。

问题可能是在创建基本对话框的步骤中,特别是如何设置静态文本控件,
请老师能给出一个详细的步骤,列出(1)、(2)、(3)... 的创建步骤。谢谢!
分享到:
精彩评论 1
过冬的松鼠
学分:0 LV1
TA的每日心情
Q
2021-01-03 22:18:14
2012-12-20
沙发
读者朋友,您好。
SubclassDlgitem这个函数主要用于子类化。子类化的意思就是本章所提到的使用已有的控件作为基类,使用子类继承它,使当前对话框与其相连接,并切使这个子类控件能够接受消息。
那么,使用此函数时,必须先创建一个子类控件继承对话框上已有的控件。在对话框内创建子类控件的实例成员(例如一个继承自CStatic的子类CStaticEx,在对话框累中创建一个此类型的成员变量),使用这个函数将它和当前对话框相联系起来。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照