请指点一下,为什么以下代码编译出错?

ruowuruoyou 2002-03-16 04:50:30
Private Const WM_CLOSE = &H10
Private Const WM_CREATE = &H1

Protected Overrides Sub DefWndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case WM_CLOSE
MessageBox.Show("WM_CLOSE")
Case WM_CREATE
MessageBox.Show("WM_CREATE")
Case Else
MessageBox.Show("haha")
End Select

End Sub
...全文
48 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruowuruoyou 2002-03-20
  • 打赏
  • 举报
回复
谢谢
Ninputer 2002-03-19
  • 打赏
  • 举报
回复
不能ExitSub,在退出窗口过程之前必须执行MyBase.WndProc
ruowuruoyou 2002-03-18
  • 打赏
  • 举报
回复
帮忙看一下拉,让我弄个明白...
ruowuruoyou 2002-03-17
  • 打赏
  • 举报
回复
请Ninputer(装配脑袋)再指教:
改成以下代码仍然出错?(我的目的是想禁止关闭窗体)
Protected Overrides Sub DefWndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_CLOSE Then Exit Sub
MyBase.WndProc(m)
End Sub
Ninputer 2002-03-16
  • 打赏
  • 举报
回复
你的程序极有问题,你不要把每一个消息都拦截
Ninputer 2002-03-16
  • 打赏
  • 举报
回复
不是是死循环,但窗体会不断收到消息,所有消息都会引发case else,所以你那句话会不断执行
ruowuruoyou 2002-03-16
  • 打赏
  • 举报
回复
谢谢:Ninputer(装配脑袋) ,编译已通过,但还是有问题?为什么老执行MessageBox.Show("haha")
这一句,而窗体不显示出来?(莫不是死循环?)
Ninputer 2002-03-16
  • 打赏
  • 举报
回复
改为
Protected Overrides Sub DefWndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case WM_CLOSE
MessageBox.Show("WM_CLOSE")
Case WM_CREATE
MessageBox.Show("WM_CREATE")
Case Else
MessageBox.Show("haha")
End Select
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MyBase.WndProc(m)
'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
End Sub

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧