
MFC
文章平均质量分 91
记录MFC学习
聚沙塔
这个作者很懒,什么都没留下…
展开
-
MFC显示文本文档
新建基于对话框的MFC应用程序。资源视图的对话框上添加编辑框(Edit Control)和按钮(Button), 将编辑框属性:Mutiline、Auto HScroll、Auto VScroll设为true。目的将文本文档在编辑框中显示。图示如下:添加“开始”按钮的响应函数:void CTest20Dlg::OnBnClickedButton1()//“打开”按钮响应函数{ //原创 2014-12-30 10:03:12 · 6309 阅读 · 3 评论 -
关于BMP
关于BMP位图的资料网上有很多,内容也比较基础。本文实现BMP位图的读取、显示、保存,并对一些重要的问题进行说明(包括字节对齐、内存中的存储顺序、调色板)。BMP共包括文件头、信息头、调色板(位深各部分的具体说明可以参考[1]。下面是位图的读取、显示、保存实现的主体代码,完整工程下载:Bmptest原创 2016-06-03 09:35:45 · 1056 阅读 · 0 评论 -
GDI双缓冲绘图
一、简介在进行复杂图形绘制时,若直接在屏幕DC上进行绘制,则会出现明显的闪烁。闪烁产生的原因是当绘制的图形较为复杂时,图形绘制过程中就被刷新到屏幕上,导致结果断断续续地显示出来。双缓冲绘图的原理是在另开辟一块内存用于绘制,当所有绘制工作完成后将内存数据一次性拷贝到屏幕上。双缓冲绘图步骤:创建兼容DC(CreateCompatibleDC)创建兼容位图(CreateCompati原创 2016-06-25 21:50:19 · 1934 阅读 · 0 评论 -
多媒体定时器
一、简介在工业生产控制系统中,有许多需要定时完成的操作,如数据采集程序。Win32提供了一个基于消息机制的定时器,使用SetTimer函数创建一个内存对象,设定间隔时间,当到达要求的间隔时,计时器对象发送一个WM_TIMER消息,由相应函数处理。但是由于WM_TIMER优先级低,只有等待消息队列中的其他消息都处理完毕后系统才会响应该消息。而且消息队列中的多个WM_TIMER会被合并,因此Win原创 2016-08-18 10:24:15 · 3960 阅读 · 1 评论 -
StretchDIBits速度测试(COLORONCOLOR)
StretchDIBits速度测试(COLORONCOLOR)下面实验中显示窗口大小为1024*768,缩放模式设为COLORONCOLOR.一、单通道图像(1)保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系:图像大小耗时(ms) 24*10240.485881原创 2016-08-21 11:39:38 · 2047 阅读 · 0 评论 -
StretchDIBits速度测试(HALFTONE)
StretchDIBits速度测试(HALFTONE)下面实验中显示窗口大小为1024*768,拉伸模式设为HALFTONE.一、单通道图像(1) 保持图像高度为1024,宽度从24到2024递增,递增间隔为50,下表为统计的显示耗时与图像宽度的关系:图像大小耗时(ms) 24*10249.796325原创 2016-08-21 11:54:33 · 1786 阅读 · 0 评论 -
MFC中的模态对话框与非模态对话框
模态对话框创建:MyDialog mydlg;mydlg.DoModal()当前只能运行此模态对话框,且停止主窗口的运行,直到模态对话框退出,才允许主窗口运行。模态对话框的关闭顺序:OnClose:按关闭符号X后,响应WM_CLOSE消息OnKillFocus:窗口即将失去输入焦点,响应WM_KILLFOCUS消息OnDestroy:窗口即将被销毁时,响应WM_DESTR原创 2016-10-30 16:32:18 · 3520 阅读 · 0 评论 -
模态对话框测试
模态对话框只能屏蔽来自鼠标、键盘的消息,而不能屏蔽其他消息,也即模态对话框会独占用户输入。其实现原理如下:1. 让父窗口失效EnableWindow(pardent,FALSE);2. 建立模态对话框自己的消息循环3. 直至接收关闭消息,消息循环终止并销毁窗口其中EnableWindow作用是(摘自MSDN)Enables or disables mouseand keyboa原创 2016-10-30 23:38:54 · 864 阅读 · 0 评论 -
MFC 创建UI线程
对于windows来说,所有的线程都是一样的,但MFC却把线程区分为两种:用户界面(UI)线程和工作者线程。用户界面线程具有消息循环而工作者线程没有。UI线程可以创建窗口并给这些窗口发送消息,工作者线程执行后台任务,因其不接受用户直接输入蘑菇不需要窗口和消息循环。创建UI线程需要首先从CWinThread派生一个线程类,改类与CWinApp类派生额应用程序类很相似(CwinApp继承自CWin原创 2016-10-31 17:10:11 · 6380 阅读 · 0 评论 -
工作线程不要对界面操作
MFC并不是线程安全的,用子线程操作用户界面,可能导致线程主线程无法终止。例如在子线程处理函数中进行如下操作:Ondestroy中等待子线程结束:当关闭对话框时后,从资源管理器中依旧可以看到线程并未终止。另外,企图在线程处理函数结束时弹出一个MessageBox进行直观确认时,不能使用MFC中的MessageBoX,因其默认以对话框作为父窗口,这样也原创 2016-11-09 23:44:49 · 1964 阅读 · 1 评论