0
点赞
收藏
分享

微信扫一扫

流水账——利用MFC开发的小软件


本篇是记录硕士期间开发的小软件。图形界面是基于MFC开发的,其中利用了​​OpenCV​​还有MySQL数据库。下面开始记录流水账式开发过程:

MFC框架

新建MFC项目,基于单文档,MFC标准项目,去掉工具栏

流水账——利用MFC开发的小软件_c++

流水账——利用MFC开发的小软件_MFC_02


由于微软在VS2013中不建议使用C/C++的传统库函数scanf、strcpy、sprintf等函数,所以直接使用这些库函数会提示C4996错误。VS建议采用带_s的函数,如scanf_s、strcpy_s,但这些并不是标准C/C++函数。要想继续使用此函数,需要添加_CRT_SECURE_NO_WARNINGS预定义。或(项目->属性->C/C++预处理器->预处理器定义,添加_CRT_SECURE_NO_WARNINGS)设置窗口属性

设置图标

打开资源视图,添加本地ICO图标,在res文件夹中添加图标资源

流水账——利用MFC开发的小软件_内核对象_03

流水账——利用MFC开发的小软件_html_04


流水账——利用MFC开发的小软件_c++_05


流水账——利用MFC开发的小软件_c++_06


流水账——利用MFC开发的小软件_MFC_07


流水账——利用MFC开发的小软件_MFC_08


流水账——利用MFC开发的小软件_内核对象_09

//设置图标 IDI_ICON_SECLITE为图标资源ID
SetClassLong(m_hWnd, GCL_HICON, (LONG)AfxGetApp()->LoadIconW(IDI_ICON_SECLITE));
//设置右侧标题
SetTitle(TEXT("Version 1"));
//设置窗口位置和大小 (0,0)起点坐标x,y (800,500)窗口宽度和高度
MoveWindow(0, 0, 800, 500);
//将窗口移动到屏幕中央
CenterWindow();

利用上面的过程新建自己的项目界面,如下:

流水账——利用MFC开发的小软件_c++_10



搭建内部框架

流水账——利用MFC开发的小软件_MFC_11


流水账——利用MFC开发的小软件_内核对象_12


流水账——利用MFC开发的小软件_.net_13


流水账——利用MFC开发的小软件_内核对象_14


流水账——利用MFC开发的小软件_c++_15










树控件切换时会触发TVN_SELCHANGED消息(指定选定项从一项变为另一项)



IDD_DIALOG_AUTHEN













CUserDlg 初始化m_user变量和m_name变量,并使用UpdateData将变量值显示到输入框控件中


没有OnInitialDalog()函数,使用下面函数试试效果,效果是显示出来后又被默认背景刷新掉

流水账——利用MFC开发的小软件_MFC_16



在初始化中画一次,则在后序的消息中,很有可能会导致各控件重画,这样就会把你原本画好的内容给刷掉了。

要么是放在对话框的OnPaint()中画,要么是放在picture control的子类中画,建议是放在picture control的子类中画,这样就会更好。

添加类CEployeePicture继承自CFromView,重载OnPaint()函数,对画框进行更新

流水账——利用MFC开发的小软件_.net_17


不可行

重写CAutheDlg类的OnDraw方法,加入对图片的显示


更改静态控件static text中的值
GetDlgItem(IDC_DATA)->SetWindowTextW(data1);


List Control
报表模式

流水账——利用MFC开发的小软件_.net_18

流水账——利用MFC开发的小软件_c++_19

流水账——利用MFC开发的小软件_.net_20


流水账——利用MFC开发的小软件_c++_21

流水账——利用MFC开发的小软件_MFC_22


流水账——利用MFC开发的小软件_MFC_23


流水账——利用MFC开发的小软件_c++_24

流水账——利用MFC开发的小软件_.net_25


流水账——利用MFC开发的小软件_MFC_26



流水账——利用MFC开发的小软件_MFC_27


流水账——利用MFC开发的小软件_html_28

流水账——利用MFC开发的小软件_html_29

流水账——利用MFC开发的小软件_c++_30


流水账——利用MFC开发的小软件_.net_31


流水账——利用MFC开发的小软件_html_32


流水账——利用MFC开发的小软件_MFC_33


流水账——利用MFC开发的小软件_内核对象_34


流水账——利用MFC开发的小软件_c++_35


用内核对象进行线程同步
几乎所有内核对象都可以用来进行同步,对线程同步来说,这些内核对象中的每一种要么处于触发(signaled)状态,要么处于未触发(nonsignaled)状态。Microsoft为每种对象创建了一些规则,规定如何在这两种状态之间进行转换。例如,进程内核对象在创建的时候总是处于未触发状态。当进程终止时,操作系统会自动使进程内核对象变成触发状态。当内核对象被触发后,将永远保持这种状态,再也不会变回到未触发状态。(进程内核对象的内部有一个布尔变量,当系统创建内核对象的时候会把这个变量的值初始化为FALSE(未触发)。当进程终止的时候,操作系统会自动把相应的内核对象中的这个布尔值设为TRUE,表示该对象已经被触发)。

流水账——利用MFC开发的小软件_MFC_36

​​https://fishc.com.cn/forum.php?mod=viewthread&tid=78658&typeid=502​​

串口部分

流水账——利用MFC开发的小软件_c++_37



最终效果

流水账——利用MFC开发的小软件_MFC_38


流水账——利用MFC开发的小软件_html_39


举报

相关推荐

291119流水账

160819流水账

061621流水账

251119流水账

301119流水账

200819流水账

081219~111219流水账

0 条评论