一个.java文件中可以有很多类。不过注意以下几点:
1.public 权限的类只能有一个(也可以一个都没有,但最多只有1个)
2.这个.java文件的文件名必须是public类的类名(一般的情况下,这里放置main方法是程序的入口。)
3.若这个文件中没有public的类,则文件名随便是一个类的名字即可
4.你用Javac 编译这个.java文件的时候,它会给每一个类生成一个.class文件

使用MFC的应用程序,如果某个按钮的处理函数一直在执行循环做某一个任务,那还能响应其它的消息吗?

就比如说某一个消息对应的处理函数一直在执行WHILE循环,然后我希望关闭程序或按其它按钮执行其它功能那产生的消息还能被应用程序响应吗?
据说是由APP下的RUN()函数维持消息循环的,如果处理函数不结束函数不就没法返回了吗,那是不是就没法回到RUN()进行消息循环来响应其它消息了? 假如能响应其它消息又是如何实现的?
如果的确是在执行while循环的话,确实不能再被响应了。函数不结束也的确无法返回。
要响应其他消息的话也做不到。
但是很多情况下如果有需要大量处理的数据要使用WHILE循环的话,完全可以另开一个线程去处理。没有必要堵塞主线程。 而且很多WHILE是可以被避免的,具体还是要看你实际应用。
追问
我是要做一个监控和控制电机的软件,要不停的读传感器数据计算后立刻输出控制信号,这么做可能只能用WHILE吧。。另开一线程麻烦吗,我不太懂这个,我翻了基本书也没找着啊,有没有简单快速介绍这个怎么用的书? 是不是用一个什么afxbeginthread命令什么的。。?
回答     是啊。这种情况下没有办法,只能另开线程。用AfxBeginThread或者CreateThread
但是按照目前的设计思路而言,这样的WHILE循环处理消息应该单独开一个线程进行监听。这样不会影响主线程和其他线程。监听线程接受到了消息后,MFC应该是使用函数指针来进行回调,这个有些记不住了,拿不准。

把画图窗口的指针利用这个参数LPVOID PARAM传给线程。
CWnd *pWnd = (CWnd *)PARAM;
CDC *pDC = pWnd->GetWindowDC();
1、使用全局变量,CDC *g_pDC = NULL;
在OnDraw中为其赋值。
在线程中判断g_pDC不为空,则执行函数体。
2、将pDC作为PARAM传进去。
3、使用全局变量theApp来获取所需的CDC。
这个做法不好,GDI并不是线程安全的,正确的做法是你不断更新内存中的一张位图,然后在正常的OnPaint里面,把内存中的位图复制到DC中。复制的时候你还要注意保证复制的同时,你的线程没有正好在更新这张位图。

位图的句柄等可以通过线程函数的参数(你这里是PARAM)来传递。

CreateThread或者AfxBeginThread均有一个参数,可以直接传递到你的线程函数的PARAM中。

最新文章

  1. ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave由于鼠标移动速度过快导致问题解决办法
  2. BZOJ 2456 杂题 卡内存
  3. ilbc编解码
  4. PHP--浏览器禁用cookie后,怎么使用session
  5. Python ImportError: No module named *****
  6. jedis源码阅读
  7. C#.net 创建XML
  8. Java:Json与其他Java对象集合的转换
  9. MFC可执行文件问题
  10. uri 和 url 的区别
  11. mysql计算指定的时间TPS
  12. spring实现读写分离
  13. 【笔记】归纳js getcomputedStyle, currentStyle 以及其相关用法
  14. 关于Yuri Boykov and Vladimir Kolmogorov 于2004年提出的max flow / min cut的算法的详解
  15. _Bool and bool
  16. CentOS6.8安装360 pika
  17. 分布式文件系统---GlusterFS
  18. flex 布局 计算器
  19. Python_Xlrd&Xlwt
  20. [Module] 06 - DataBinding and MVVM

热门文章

  1. JAVA-两种后台页面跳转方式
  2. [持续集成学习篇]【1】[jenkins安装与配置]
  3. Linux Shell系列教程之(五)Shell字符串
  4. HDU2013 蟠桃记【递推】
  5. BZOJ2653 middle 【二分 + 主席树】
  6. Eclipse项目类型转换
  7. Microsoft IIs tilde directory enumeration
  8. java面试题之如何实现处理线程的返回值?
  9. mysql的简单介绍
  10. ajax提交数据服务端返回报错