孫鑫的vc教學視頻廣為流傳,不失為一個好的vc教學視頻。
其18講中有個問題,多次被人問到,索性發了上來。
18課用到的activex控件用debug 版本生成的控件,在vc中插入這個控件,
調整interval屬性的時候,會出錯。
只要是debug版本在 VC下就會出錯。release版本不會?
為什么?
原因是因為當將 Clock控件放到VB 的Form上時,該控件的窗體已經創建,也就是說, CClockCtrl類的 OnCreate()方法被執行了,這樣就設置了定時器,而在VC 的對話框上插入Clock 控件時,卻沒有調用 CClockCtrl類的 OnCreate()方法, 而在修改 Interval 屬性時,會調用 CClockCtrl 類的 OnIntervalChanged() 方法,在這個方法中,調用了 KillTimer(1) ,因為定時器根本就沒有創建,因此就出現了非法操作。這可能是因為對話框并不是真正的容器組件。解決辦法,用一個變量保存定時器的返回值,然后在 OnIntervalChanged() 方法中對返回值進行判斷。