java与MFC中的一些常识
一个.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中。
java与MFC中的一些常识的更多相关文章
- MFC中使用post提交form-data上传文件
已经有将近6年时间没写过MFC了,想想以前我也是写VC++入门程序开发的,那时候写协议栈.搞语音编码.做视频压缩和实时数据传输,相比现在更多偏业务的开发,那时候搞得都是非常技术的东西.眨眼间,MFC已 ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- 揭开Java IO流中的flush()的神秘面纱
大家在使用Java IO流中OutputStream.PrintWriter --时,会经常用到它的flush()方法. 与在网络硬件中缓存一样,流还可以在软件中得到缓存,即直接在Java代码中缓存. ...
- JAVA安装过程中出现的“javac不是内部或外部指令”的解决方法
近来重新安装了JAVA,安装过程中出现问题,网上找到解决办法,汇总发布. 解决流程: 1.确定自己的环境变量设置没问题,没有出现遗漏 : . 等情况 (具体环境变量设置百度) 2.环境变量设置后 ,d ...
- Java Web开发中MVC设计模式简介
一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条 ...
- MFC中使用FLASH
一.准备工作 第一步:下载并安装Adobe Flash Player. 从官方网站(http://get.adobe.com/cn/flashplayer/)上下载最新的Flash Player(大约 ...
- Java EE 编程中路径
版权声明:未经博主允许,不得转载 首先我们要限定一个范围,是一个项目,或是以个访问地址..就先以一个项目为限定的范围 前述: 学过物理学的都知道相对运动和绝对运动, 虽然是相似的概念,但这里的要简单得 ...
- MFC中换行实现
在mfc中编辑框允许输入多行时,换行符被表示为<归位><换行>即"\r\n",用ascii码表示为13 10 如果为编辑框中想要输入换行,就请将编辑框的属性 ...
- 【java】jackson 中JsonFormat date类型字段的使用
为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解具体格式如下 @JsonFormat(pattern = "yyyy-MM- ...
随机推荐
- Django Rest Framework 教程及API向导
Django Rest Framework 教程及API向导. 一.请求(Request)REST_FRAMEWORK 中的 Request 扩展了标准的HttpRequest,为 REST_FRAM ...
- django html render_to_response
#coding=utf-8 from django.shortcuts import render from blog.models import BlogPost from django.short ...
- MFC拾遗
c++处理文件,对txt进行处理,学了那么久才发现我还不会这些操作,另外c++处理文本真是快得可怕啊 #include <iostream> #include <fstream> ...
- 九度oj 题目1084:整数拆分 清华大学2010年机试题目
题目描述: 一个整数总可以拆分为2的幂的和,例如:7=1+2+4 7=1+2+2+2 7=1+1+1+4 7=1+1+1+2+2 7=1+1+1+1+1+2 7=1+1+1+1+1+1+1总共有六种不 ...
- 九度oj 1004
题目1004:Median 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:17536 解决:4860 题目描述: Given an incre ...
- 【bzoj1043】[HAOI2008]下落的圆盘 计算几何
题目描述 有n个圆盘从天而降,后面落下的可以盖住前面的.求最后形成的封闭区域的周长.看下面这副图, 所有的红色线条的总长度即为所求. 输入 第一行为1个整数n,N<=1000接下来n行每行3个实 ...
- 【bzoj3251】树上三角形 朴素LCA+暴力
题目描述 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边长构成一个三角形.同时还支持单点修改. 输入 第一行两个整数n.q表示树的点数和操 ...
- PHP的发展史,功能与特点
web1.0时代:所有的代码都是在浏览器端执行的静态脚本,用户请求的也都是服务器上事先已经存在的静态网页,用户和服务器之间不能进行任何的交互!(不需要数据库的支持) web2.0时代:用户和服务器之间 ...
- Dancing Links 模板
struct dl{ // x: line, y: column struct node{ int c, left, right, up, down; }; vector<node> a; ...
- mybatis学习(十一)——springmvc++spring+mybatis整合
做任何一个项目都以一个需求,这里先定义一下需求:利用三大框架查询酒店列表. 一.搭建开发环境 1.创建一个web项目 我这里用的是 jdk1.8+tomact7.0 2.创建hotel表 CREATE ...