richedit2.0中关于GetLineCount的使用问题
我尽量说的明白点哈,发现新版的CSDN自己是中农。要节约用分。转正题
即时通讯中直接弹出对话框显示文字消息。有点飞鸽的感觉。问题在于
我有一个列表listbox 当我::SendMessage(MainForm->m_hWnd,WM_LISTDLBTNDOWN,(WPARAM)pItem,0);
这条消息和我双击列表打开一个窗口是同一个操作。是当接收到消息时弹出一个新的对话框,其中wparam里面是一个结构体,也就是存一些帐号,窗口指针什么的。
问题在于当我发送完毕这条消息,在代码下面紧跟着写了一段这样的东西。
int line_strart=pwnd->m_RichRead.GetLineCount(); //获取显示消息前的行数
文本为空的时候,line_strart这时为1.但是当我把文字插进去的时候。假如插入12个文字,之后第二次GetLineCount则会是12. WHY??搞的一下午头都大了!!!
下次再接受到文本前获取,又为正确值!!!
后来我发现,由于我是直接弹出窗口后立刻插入文字。所以好像是什么东西没初始化完,那么这是微软的一个BUG??把每一个字符都当作一行么??
于是我做了个实验。我先把要发送文字的那个人的窗口打开,不让他弹出后显示。 然后发送端发文字直接显示在窗口。这样便显示为正确值。看来真的有点原因
总结一下。用消息响应函数弹出窗口。下接文本插入获取行数为字符个数。第二次接收文本则正常。 提前打开要发送者对话框,直接接收,文本正常,行数正常。
救命啊!!!!!