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- ...
随机推荐
- 递归函数的写法(以strcpy函数为例)
1. 递归函数模板 递归的前提是,找到一个公共子问题(或公共操作),然后将该函数构造为递归函数. retType function( ... ) { 结束条件 { [处理] 返回 } 递归条件 { [ ...
- [python测试框架学习篇] 分享一个和adb相关的测试框架
https://testerhome.com/topics/7106 (user: zteandallwinner password: same to qq ) 264768502 · # ...
- [错误解决]Ubuntu中使用dpkg安装deb文件提示依赖关系问题,仍未被配置
使用dpkg进行软件安装时,提示:dpkg:处理软件包XXX时出错:依赖关系问题,仍未被配置 使用如下命令,sudo apt-get install -f 等分析完之后,重新使用dpkg –i XXX ...
- xml和pandas结合处理的一个小例子-待完善
#!/usr/bin/env python3 # -*- coding:utf-8 -*- import pandas import json import xml.etree.ElementTree ...
- http.server()的理解
http.server()相当于实例化一个server,等价于http.createServer(). 以下为个人理解 http.server()为创建一个http服务,http.server()可以 ...
- Git 应用问题(一) —— failed to push some refs to git
今天在本地创建了一个新的 repository,想关联到 Github 上的时候出现问题,如下: Gerrard@LAPTOP-79570TK2 MINGW64 /g/github-workspace ...
- Coloring Torus(Atcoder Grand Contest 030 C)
怎么外国都喜欢考脑筋急转弯…… 题意 输入 $k$,要求构造一个 $n\times n$ 的矩阵($n$ 自选),使得恰好用 $k$ 中颜色把每个点都染色,并且同一种颜色的格子周围 相邻的每种颜色数量 ...
- linux下安装firefox
首先检查系统有没有安装:rpm -qa|grep firefox 如果有安装,先删掉rpm -e * firefox不同版本下载:http://liulanmi.com/firefox 具体方法如下: ...
- 树上的路径 BZOJ 3784
树上的路径 [问题描述] 给定一个N个结点的树,结点用正整数1..N编号.每条边有一个正整数权值.用d(a,b)表示从结点a到结点b路边上经过边的权值.其中要求a<b.将这n*(n-1)/2个距 ...
- 转 Python爬虫实战二之爬取百度贴吧帖子
静觅 » Python爬虫实战二之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 ...