早教吧 育儿知识 作业答案 考试题库 百科 知识分享

有关VBsendmessage的请教我在读取TEXTBOX行数时用到sendmessagedimlcountaslonglcount=SendMessage(Text1.hwnd,EMGETLINECOUNT,0&,ByVal0&)为什么lcount总是为零?而在立即窗口?SendMessage(Text1.hwnd,EMGETLIN

题目详情
有关VB sendmessage的请教我在读取TEXTBOX行数时用到sendmessage dim lcount as long lcount =SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, ByVal 0&) 为什么lcount总是为零? 而在立即窗口?SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, ByVal 0&)却显示正确的行数? 由于我初学VB,不太懂,请赐教,谢谢 !
▼优质解答
答案和解析
变量是有生存期的, 你在过程中用DIM声明的变量,一旦过程结束后这个变量就不存在了, 例如: Private Sub Form_Click() Dim lcount As Long lcount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, ByVal 0&) Print lcount End Sub Private Sub Command1_Click() Print lcount End Sub 由于lcount是在Form_Click这个过程中声明的,Form_Click执行完后lcount就被释放了,你在Command1_Click中调用lcount只会返回0。 如果你这样声明就不同了: Dim lcount As Long Private Sub Command1_Click() Print lcount End Sub Private Sub Form_Click() lcount = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, ByVal 0&) Print lcount End Sub 这时候这个lcount是模块级变量,可以被不同的过程调用。