MFC开发
文章平均质量分 57
Fourier_1024
happy coding
展开
-
MFC combo box使用总结 下拉菜单选择 设置默认显示项
前言有些参数需要用户通过一个下拉菜单选择,打开软件时显示最常用的菜单项。例如数据类型下拉菜单,可以选择文件数据或者测试数据。combo box属性设置使用combo box control来实现下拉菜单。在界面中添加该控件后,修改ID,修改type为drop list(下拉选择模式),sort改为false(固定各个选项的位置),数据改为需要的几个选项,使用英文;作为结尾。combo box下拉菜单大小设置这里注意下拉菜单大小和控件大小的区别。改为drop list模式后,控件大小只能调节宽度原创 2021-03-14 19:31:44 · 5728 阅读 · 0 评论 -
MFC ListControl使用总结 设置背景,双击修改值
前言现需要使用一个8*5的表格输入参数。添加控件如下图所示,使用了一个List control(ID: IDC_LIST_PARAM),一个Edit control(ID: IDC_EDIT_PARAM, 属性中visible改为false)以及一个static text.其中List control用来显示表格,Edit control用来辅助编辑List control中的内容。为控件添加变量及事件处理程序为List control添加control类型变量m_paramList,添加NM原创 2021-03-11 17:26:47 · 1727 阅读 · 0 评论 -
MFC 指示灯 状态灯 红绿灯 LED灯:对Static Text的拓展
前言需要在界面上实时显示设备的状态,希望通过指示灯来显示,例如绿色代表正常,红色代表异常。qt的实现方式见我的另一篇博文。1. 添加资源文件打开vs新建MFC工程,打开资源视图,如下图所示,添加资源。导入图片位图,这里我导入的是红绿灰三种颜色的bmp文件,添加完成后,修改其ID(右击资源文件,打开属性,在属性栏修改ID),如下图所示。2. 为工程导入Led.cpp和Led.h见我的GitHub。3. 实现Led在合适的位置添加一个text control控件,并修改其ID,这里我将其c原创 2021-02-24 18:20:14 · 4883 阅读 · 11 评论 -
MFC中如何调出控制台 使用printf打印调试信息
前言调试程序时,需要打印一些调试信息。使用AllocConsole在主视窗初始化中创建控制台窗口,并将输入输出做一定操作。 AllocConsole(); freopen("CONOUT$", "w+t", stdout); freopen("CONIN$", "r+t", stdin);之后在需要打印的地方直接使用printf即可。...原创 2021-02-22 15:09:17 · 581 阅读 · 0 评论 -
MFC高效修改图片像素RGB值,通过像素RGB值生成图片,lifegame图形演示
前言做一个lifegame的演示程序,lifegame是一个很有名的游戏,现在需要对其结果(二维bool数组)进行图形化演示。如果细胞存活(二维数组中的某一值为1),则对应黑色像素点,否则对应白色像素点。例如,开局全部像素随机取黑或白,在经历过40次迭代后,其效果如下:根据细胞的存活状态对图片的每一像素赋值是一个相当耗时的行为,本文将介绍MFC下的,基于openmp和CImage的解决思路。openmpvs2010中使用openmp的例子见Openmp。这篇博文中介绍了openmp的良好性能。原创 2021-02-13 01:36:01 · 1034 阅读 · 0 评论 -
MFC实现log日志信息显示,程序运行状态显示
前言在界面程序运行过程中,很多时候我们都希望知道程序运行到哪一步,或者程序的中间输出结果希望打印到界面上,这就是log信息显示功能。控件:Edit Control控件属性设置这里使用Edit Control显示log信息。首先,拖拽一个Edit Control控件以及一个Text Control控件到界面上,对其属性进行一些修改,其中Mutiline是最重要的,否则Edit Control不支持多行,会直接忽视换行符。为控件添加变量之后需要为新建的Edit Control控件关联两个变量。原创 2021-02-13 00:31:52 · 5553 阅读 · 7 评论 -
MFC 菜单项无法修改ID、无法添加事件处理程序
前言想通过点击主窗口顶部菜单栏打开其他窗口,添加菜单项后无法更改ID,同时无法添加事件处理程序。解决方法将属性中的Popup改为False即可。原创 2021-01-23 17:59:16 · 3380 阅读 · 0 评论 -
MFC 调用其他窗口的函数(获取窗口指针+消息机制)
前言在窗口程序中,很多时候需要调用其他窗口的函数,例如在其他窗口操作后需要在log信息窗口打印log信息。这里采用全局窗口指针以及postmessage的方法实现。现希望从testDlg窗口的OnBnClickedButton2()调用CfiletestDlg窗口的OnBnClickedButton1()函数,即在testDlg窗口点击一个按钮后调用CfiletestDlg窗口的一个按钮的点击函数。获取窗口指针要想调用其他窗口的函数,首先要明确窗口也是一个类,界面上显示的窗口是这一个窗口类创建的一原创 2021-01-23 17:45:58 · 3823 阅读 · 8 评论 -
工程实战:MFC新开线程+缓存队列存文件类的实现
前言想从网口持续接收大量数据并存文件,做上位机界面。因为还有其他功能要占用界面资源,需要新开存文件线程。至于缓存队列,当接收数据线程收到数据后,不希望因为存文件操作占用资源影响接收数据,将接收到的数据先缓存到队列中,存文件线程再从队列中取数据,一般来说存磁盘的速度是比网口速度快的,所以只要缓存队列稍微大些便不会溢出。当然类中也设计了等待机制,如果存文件缓存队列满了,会先存文件,等待队列空闲时再接收数据。做一个存文件类,流出来选择路径和Write接口,新建对象、选择路径,直接调用Write(BYTE*原创 2021-01-20 22:08:46 · 1524 阅读 · 0 评论