MFC
文章平均质量分 93
墨然回首.
图形引擎开发
展开
-
对话框加载位图及拉伸后位图重叠问题
## 1.问题描述对话框中加载位图后,试图拉伸吐话框,出现以下问题:![](https://liyanliangpublic.oss-cn-hongkong.aliyuncs.com/img/QQ截图20201230163014.png)## 2.解决方法添加Onsize()消息函数,函数内调用Invalidate(),Invalidate()之后,Invalidate()->OnPaint()->OnPrepareDC()->OnDraw()所以只是刷新在OnPain原创 2020-12-30 17:18:25 · 240 阅读 · 0 评论 -
CRichEditCtrl更改为BCGControlBar的CBCGPEdit
1.添加Edit控件,设置其属性2.Button "Result" 的消息函数如下int CTestMFC2Dlg::m_Count = 0;void CTestMFC2Dlg::OnBnClickedButtonResult(){ // TODO: 在此添加控件通知处理程序代码 LOGFONT lf; // clear out structure. memset(&lf, 0, sizeof(LOGFONT)); //原创 2020-12-30 11:40:13 · 274 阅读 · 0 评论 -
MFC的CComboBox被BCG的替换BCG的CBCGPComboBox后程序崩溃
如果对话框包含列表框或组合框控件,则必须将其样式更改为owner-draw + “Has strings” ,并为这些控件添加CBCGPListBox / CBCGPComboBox变量。由于Windows的限制,提到的样式在列表后不能更改 框/组合框已创建,因此BCG无法进行此更改。参考:https://my.oschina.net/u/3992677/blog/4555550...原创 2020-12-24 14:31:20 · 460 阅读 · 0 评论 -
关于MFC中CString FindOneOf(_T(“0123456789.“))的使用
一、释意CString str;int nPos = str.FindOneOf(_T("0123456789."));表示查找字符串中第一个出现数字的位置。二、举个例子将钢筋符号 d25 转为其直径值 25。代码实现:int ConvertDiaStrToInt(const CString& strDia){ CString str = strDia; int iPos = strDia.FindOneOf(_T("0123456789.")); if(iP原创 2020-07-19 09:05:26 · 608 阅读 · 0 评论 -
MFC 删除ListBox控件中多条且非连续的的条目
问题描述:删除ListBox控件中多条且非连续的的条目解决方法:CListBox m_ListBox; //删除void CDetailDrawDWallDlg::OnBnClickedDelete(){ int nCount = m_ListBox.GetSelCount(); //选中的条目数量 if (nCount == 0) return; CArray<int> arSelectItems; arSelectItems.SetSize(nCount);原创 2020-06-04 19:31:13 · 356 阅读 · 0 评论 -
MFC-Serialization序列化保存、打开线段和多段线
题目描述:现有实体line和polyline,需要将这些实体序列化输入和输出,通过对话框保存和打开。一、保存模型数据(序列化)void CEncloseAreaDlg::OnBnClickedButtonSavedata(){ // TODO: 在此添加控件通知处理程序代码 if (!m_bFilePath) { AfxMessageBox(_T("请您先导入数据!"))...原创 2019-08-26 08:29:05 · 479 阅读 · 0 评论 -
MFC 给不规则的多边形闭合区域填充颜色
问题描述:现有多个由线段line汇成的闭合区域,将每个区域使用不同的颜色填充。实现的完整代码://绘制图形 // find the client area CRect rect; GetClientRect(rect); // draw with a thick blue pen CPen penBlue(PS_SOLID, 2, RGB(0, 0, 255)); CP...原创 2019-08-19 09:52:17 · 4312 阅读 · 1 评论 -
MFC-创建多线程应用程序
Microsoft基础类(MFC)库为多线程应用程序提供支持。 线程是进程内的执行路径。 当您启动记事本时,操作系统会创建一个进程并开始执行该进程的主线程。 当该线程终止时,该过程也是如此。 如果需要,可以在应用程序中创建其他线程。 MFC应用程序中的所有线程都由CWinThread对象表示。 在大多数情况下,您甚至不必显式创建这些对象; 而是调用框架帮助函数AfxBeginThread...翻译 2018-09-03 23:00:23 · 662 阅读 · 0 评论 -
【MFC】托盘程序开发示例(详细实现步骤)
概述:什么是托盘应用程序? 当你打开后会在电脑最右下角的任务栏上生成一个系统托盘,当你点击最小化或者点击关闭按钮后,若想恢复窗口,可以左键双击或者单机这个系统图标,同时鼠标右键点击,又会有其他的菜单弹出,比如退出。像QQ等可以停靠在电脑桌面的右下方:实现操作步骤(1)首先新建一个MFC项目 (2)在CTrayIconDlg.cpp文件中的OnInitDialog...原创 2018-08-29 22:57:44 · 2014 阅读 · 1 评论 -
MFC-打开文件对话框和文件拖拽功能的实现
一,打开文件对话框(1)创建一个基于对话框的MFC应用程序工程,名称设为“COpenFile”。(2)添加两个编辑框,ID分别为IDC_OPEN_EDIT和IDC_SAVE_EDIT;再添加两个按钮,ID分别设为IDC_OPEN_BUTTON和IDC_SAVE_BUTTON ,,标题分别设为“打开”和“保存”。 (3)为按钮IDC_OPEN_BUTTON添加点击消息的消息处理函...原创 2018-08-22 13:52:57 · 9437 阅读 · 7 评论