MFC程序,在主线程中显示对话框(无模式对话框),并在另一个线程中调用对话框上的子控件的SetWindowText方法设置文本.
因为在工作线程中要不断更新子控件上的文本,但是却出现了在主线程里设置的文本跟工作线程的文本重叠在一起,导致看不清控件的文本.不知有没有人碰到过这种情况?
因为在工作线程中要不断更新子控件上的文本,但是却出现了在主线程里设置的文本跟工作线程的文本重叠在一起,导致看不清控件的文本.不知有没有人碰到过这种情况?
解决方案 »
- 要是不想编程的时候,你一般干嘛
- QQ消息,获得QQ闪烁时的信息
- 问个很浅的问题(DLL和调用它的程序通信的问题)
- 怎样通过列表框控件中所列文件路径打开文件?
- richedit 自动 换行,像QQ的聊天记录一样,一条消息来后就换一行
- list问题!
- 为什么用ADO打开ORACEL中带BLOB字段的表格发生错误?望大虾能帮助解决!
- 切分视图的问题,很难啊,不知哪里出错了。
- 请问什么地方有TURBO C++3.0 的DOS版下载?
- 在一对话框中有一组按钮,都响应类似单击事件,怎样编程实现?不会一个一个地编吧!!
- 关于 非窗口类的定时器 问题!(内有代码)
- 如何 检查 一个相对路径 是否是当前目录的子目录
PostMessage的数据要new出来
::PostMessage((GetDlgItem(IDC_STATUS))->m_hWnd,WM_SETTEXT,0,(LPARAM)lpszStatus);IDC_STATUS是一个
CStatic控件的ID,lpszStatus是new出来的.不知有什么错在哪里
1、不要用PostMessage,此函数只是将消息放入队列并立马返回,有鉴于此,引用指针会造成不可预知的后果;最好改成SendMessage
2、当你用工作线程SetWindowText后,建议你让主线程能得到刷新的机会,即进行消息循环(PeekMessage然后PumpMessage),不然恐怕主线程会在它认为合适的时候更新控件Caption,或者根本不更新。
3、几乎所有的GDI函数都是线程不安全的,建议你采用同步机制