大家好,又见面了,我是你们的朋友全栈君。 在多线程设计中,许多人为了省事,会将对话框类或其它类的指针传给工作线程,而在工作线程中调用该类的成员函数或成员变量等等。 但是在Debug版本时,在某些情况下,特别是在工作线程中调用pWnd->UpdateData(FALSE)时,会出现错误。 这个错误的原因网上有许多地方讲到了,但是,令人失望的是,讲得好的没几篇,都是非要讲什么线程模块状态什么的,让人看得云里雾里(不过,说实话,也就是从这些文章中才知道是怎么回事的)。
我也赞同书中所讲,应用MFC框架开发Windows程序需要深入到底层,如果只停留在表面应用知其然而不知其所以然,这样会限制你更好的应用MFC框架。
这段时间在使用MFC做媒体播放器项目,查询了不少资料,用到的技术主要有ADO、多线程、DirectShow、MFC相关控件包括ActiveX控件(Windows Media Player、Active Movie3)的使用等等一些东西。用的主要参考文档有Windows Media Player相关的开发文档、MSDN。
这里不知道会不会有人是真的新手 新新手 不知道怎么 如何建立一个MFC 工程 应该不会吧? 就是 打开VS 新建项目-MFC -MFC工程-点基于对话框 -和在静态库中使用 然后下一页将关于对话框
1.选择菜单项File->New->Project,弹出“New Project”对话框。
一、上机之前的介绍 软件环境:VC++6.0 目的:熟悉基本的MFC框架搭建和了解界面 二、MFC上机操作步骤 1,在Windows桌面上运行VC++6.0。 2,新建项目工程文件。 3,在MFC 应
win32直接操作的是句柄HANDLE。每一个句柄就相应windows窗体,而vc对HANDLE进行类封装,间接操作的都是HANDLE,如今句柄仅仅是类的一个成员变量。
模仿windows任务管理器制作一个任务管理器软件。设计语言不限。 二知识要求 Windows编程,MFC编程,API调用 三.开发环境 使用Microsoft Visual Studio 2013的开发环境,模拟Windows的任务管理器。首先分析进程管理器软件的相关功能;其次,综合运用以前所学的相关知识,广泛查阅资料。 四.主要功能及实现思路 4.1设计要求实现的主要功能进程管理功能,具体包括以下内容: (1) 使用系统API。 (2) 制作出相应的图形用户界面。 (3) 至少包括三个功能: 获取
在编写应用程序时,有时需要用户选择某个文件,以供应用程序使用,比如在某些管理程序中需要打开某一个进程,这个时候需要弹出一个对话框来将文件路径以树形图的形式表示出来,以图形化的方式供用户选择文件路径,而不是需要用户自己输入文件路径。
留个纪念,不错的总结。十个例子清晰列举啦多线程编程的奥妙。 VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好. 一、问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为 “延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000
ASSERT_VALID宏用来在运行时检查一个对象的内部合法性,比如说现在有一个学生对象,我们知道每个学生的年龄一定大于零,若年龄小于零,则该学生对象肯定有问题。
讲讲什么是模态对话框和非模态对话框,以及模态对话框怎样弹出。 一.模态对话框和非模态对话框 Windows对话框分为两类:模态对话框和非模态对话框。 模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。 非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。 大家对Windows系统很了解,相信这两种对
(2)HKEY_CURRENT_USER/Software/Microsoft/Windows/CurentVersion/Polioies/Explores下的”No Save Setting”值为1则禁止修改桌面(需要重启)
打开 Visual Studio Installer , 然后选择 修改 Visual Studio 2019 , 弹出如下对话框 , 选择 " 使用 C++ 的桌面开发 " , 然后打开右侧的 " 使用 C++ 的桌面开发 " 选项卡 , 勾选 " "
现代的桌面应用基本上很少使用原始的 Windows API 进行开发了,因为使用原始 API 堆砌出来的应用代码逻辑非常繁琐,特别是窗口消息的处理非常不方便,大多数直接使用 C# 或者 QT 这种跨平台的开发库,而那种直接封装 Windows API 而存在的 MFC 早已半步入土。
之前自己学习了PE文件的格式,后来自己写了个PE文件的解析器,这段时间工作上刚好要用到它,老板需要能查看某个exe中加载的dll的一个工具,我在使用之前自己写的这个东西的时候,发现很多东西都忘记了,所以,我在这回顾下当时的思路,并记录下来,方便以后直接使用。也算是回顾下之前学习的内容,将学的东西学以致用 工具总体分为这样几个部分: 1. 文件头的信息 2. pe文件节表的信息 3. pe文件数据目录表的信息 4. 简单的从RVA到Frva的计算 工具主要采用MFC的框架作为界面,pe文件的解析部分完全由自己编写,主要使用了Windows中定义的一些结构体。刚开始开启界面时,所有功能按钮和显示界面都为空,当我们正确加载一个pe文件后这些按钮就都可以使用。
大家都在忙着研究WP7了,每天在园子里有好多精彩的文章出现。这几天受朋友的委托,帮忙把他手头的一个项目进行升级。情况大概是这样的:项目是用EVC 3来开发的,一开始运行在PocketPC 2002上(估计是很久以前的事情了),随着操作系统版本的更新,该程序已经不能运行在Windows Mobile 6.5平台上了。其实,按照微软官方的说法,EVC 4已经不能开发Windows Mobile 6.0以上的应用程序了,取而代之的是使用Visual Studio 2005/2008。自己的电脑上已经安装
一. 理解鼠标事件.之前对鼠标事件的认识仅仅局限于处理控件的单击与双击事件.但实际鼠标的操作包含很多.这里将以一个画图的小程序讲解对鼠标的响应.
进度条MFC已经帮我们封装好类了. 叫做 CProgressCtrl 进度条编程也很简单.
============================================================================= ============================================================================= 涉及到的知识点有: 一、c++基础知识01 二、c++基础知识02 1、c语言中,如何在调用main函数之前就执行一段代码? 三、类与结构的区别01 四、类与结构的区别02 五、类的继承概念 1、一个mfc程序的例子的核心代码: 2、破解MFC中按钮的例子。 3、MFC版的小小IDE: 4、MFC版的小小浏览器: ============================================================================= ============================================================================= 会用到两个界面工具:vs2017下的MFC和QT,它们都是基于图形的。所以有些知识我们还没有学习到。 它们本身的构架就是用c++来完成的。
第一步:首先建立一个MFC工程,成功后会跳出一个对话框,直接在对话框上点击右键-》点击插入ACTIVAE控件-》选择MicrosoftCommunications Control, version 6.0
最近学习了生成静态链接的dll及其调用,写一下笔录和大家分享,有错误的地方欢迎大家指出来
在windows mobile上设计UI的时候,经常会碰到多个窗口的情况。有时候,我们需要将一个窗口中的用户输入信息反应到另一个窗口中去,这就涉及到窗口之间的数据传递问题。下面就分native和managed这两种方式来讲讲这个窗口之间数据传递的方法。 1. Native 这个方法是当时我在看MFC时学到的,当时应用的场景是这样的。我建立了一个基于对话框的应用程序(Dialog-based),一些参数设置需要另外一个对话框来呈现给用户,在用户输入完之后,就需要将数据传递给主对话框。当时我是这
1. 新建一个MFC工程,取名xyTabControl,选择Dialog based,然后Finish。
本节开始为大家讲解偏向应用的知识——创建对话框。 对话框,大家应该很熟悉了,在我们常用的软件中大多都有对话框界面,例如,360安全卫士的主界面其实就是对话框,知识它做了很多美工 方面的工作,将其大大美化了。 创建对话框主要分为两大步: 第一,创建对话框资源,主要包括创建新的对话框模板、设置对话框属性和为对话框添加各种控件; 第二,生成对话框类,主要包括新建对话框类、添加控件变量和控件的消息处理函数等。
OCX入门:http://blog.csdn.net/hkcsdn/article/details/52908748 前言 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。 ActiveX控件是一种实现了一系列特定接口而使其在使用和外观上更象一个控件的COM组件。ActiveX控件这种技术涉及到了几乎所有的COM和OLE的技术精华,如可链接对象、统一数据传输、OLE文档、属性页、永久存储以及OLE自动化等。 ActiveX控
本文链接:https://blog.csdn.net/acoolgiser/article/details/100033499
const char* p == char const *p 常量指针,表示指向的内容为常量,指针的指向可以修改,指针指向的内容不能修改。
今天主要了解了Visual C++的开发环境Visual Studio(话说以前都是用来调试控制台程序的)和用mfc写了一个最简单的程序。
2.注意TAB键顺序. EDIT + 数值按钮. EDIT为1.那么数值按钮就要为2
假设用MFC的话,请尽量使用afxmessagebox,由于这个全局的对话框最安全,也最方便。 可是在WIN32 SDK的情况下仅仅能使用MESSAGEBOX。
这段时间通过使用MFC做车牌识别系统和媒体播放器,重新温习了一下MFC,特别是控件的使用,同时也学习了ADO技术、Socket网络编程、文件传输、OpenCV、多线程、数字图像处理、Windows Media Player、CActiveMovie控件、DricetShow多媒体等的知识,不过由于时间有限,有些东西也没有深入,但是学习编程的方法都是相通的。觉得有时还是通过项目实践学习的知识比较快,通过参考别人的代码结合MSDN这些API参考文档,加深对一门新技术的理解和消化对于初学者来时往往不失为一种快速的入门手段。废话不多说了,进入主题吧,今天把我学习到的MFC控件做一个小结吧,希望能给其他的人以帮助吧。
Visual C++配有C运行库的源代码,可以在crt\src\crt0.c 文件中找到启动函数的源代码。控制台程序的启动代码存放在crt\src\wincmdln.c //开发人员可以修改启动源代码,尝试一下。 作用:检索指向新进程的命令行指针,检索指向新进程的环境变量指针,全局变量初始化,内存堆栈初始化 比如:GetCommandLineA、GetStartupInfoA、GetModuleHandleA.
这里不知道会不会有人是真的新手 新新手 不知道怎么 如何建立一个MFC 工程 应该不会吧? 就是 打开VS 新建项目-MFC -MFC工程-点基于对话框 -和在静态库中使用 然后点击完成 注意啦 命名 都用英文 源码在这https://pan.baidu.com/s/1chRMPK 工具:vs2013,mysql5.7.6 操作系统:win64位 注意啦 我这里是VS2013 你们要是拷贝我的工程在其他版本上可能不能用 这时候只要点击项目 - 属性-配置属性 -右边的工具集 改成你们自
BCGSoft Ltd.成立于1998年,是一家专门为Microsoft Windows开发业务组件的软件公司。BCGSoft旨在帮助开发人员将当今市场上先进的技术整合到他们的应用程序中。
学VC并不是传说的那么难,可不下些功夫是学不成的。学编程急不得,没有编程的基础知识上来就学VC肯定碰一头灰,说VC难就难在这点上了。如果硬上,意志坚强的话还能挺过来,但最后还得回头来补习基础知识。意志不坚强的话,很有可能就此放弃,并留下一个VC难得不得了的印象。
创建MFC工程 1、新建项目 2、选择MFC应用并设置项目路径 3、应用程序类型选择基于对话框,点击完成,可以看到类视图和资源视图 4、在左侧对话框编辑器拖入一个Button控件 5、在该控件上面右键,点击添加事件处理程序 6、选择CMFCHelloWorldDlg 7、进入事件处理程序,添加如下代码: void CMFCHelloWorldDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码 CString str; //定义字
-----------------------------------------------------------------
本文描述了二维复合变换的基本方法和思想,根据鼠标位置坐标获取起始点pStart和终止点pEnd的坐标,设计实现每个基本图形的画图方法,根据pStart和pEnd即可确定基本图形的控制点,进而绘制对应图形。规范化齐次坐标以后,图形几何变换可以表示为图形控制点点集合的规范化齐次坐标矩阵与二维变换矩阵相乘的形式,分别设置二维变换矩阵的参数信息,设计实现对应的方法,即可实现图形的二维变换功能。
系统环境:Windows 7 软件环境:Visual Studio 2013 本次目的:实现MFC对话框换肤
暑假想学习一下Windows API的使用,于是想利用Windows窗口设计一个简单的计算器,虽然之前在图书馆借了一本书但过于硬核,后来在bilibili找到一个MFC的教程才开始上手做这个。
每次在使用MFC创建一个框架时,需要一步步选择自己的程序的外观,基本功能等选项,最后MFC会生成一个基本的程序框架,这个就是向导对话框;而属性表单则是另外一种对话框,表单上有多个属性页,每点击某一页,会显示该页的内容,最好的例子是Visual C++6.0中的Option对话框; 属性表单的创建: 属性表单上由许多属性页组成,每个属性页都可以在可视化的编辑环境中编辑,需要添加的资源名称是对话框下面的IDD_PROPPAGE_LARGE、IDD_PROPPAGE_MEDIUM, IDD_PROPPAGE_SMALL,
// TODO: Add extra initialization here m_ctrlProgress.SetRange(0,99); m_nMilliSecond=10; UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control } 添加线程处理函数: UINT ThreadFunc(LPVOID lpParam) { threadInfo* pInfo=(threadInfo*)lpPar
原文地址:https://www.cnblogs.com/DOMLX/p/13115873.html
研究Flash嵌入游戏中的可行性....... 渲染问题已解决 事件响应已解决 下面是C++与Flash AS的交互, 以MFC为例: 1. 新建一个MFC Dialog程序 2. 添加一个Flash控件 3. 把Flash控件添加一个变量 4. 在OnInitDialog()中添加载.swf文件 // CCppFlashDlg 消息处理程序 BOOL CCppFlashDlg::OnInitDialog() { CDialog::OnInitDialog(); // 设置此对话框
{m_DC.FillSolidRect(0,0,m_Width,m_Height,clr);}
实现鼠标点击的任意一个前台窗口,并且使它震动起来,实现电脑地震的效果。并且屏蔽掉任务管理器,和关闭按钮,通过输入密码123来关闭此程序。
mfc.bsc的路径如下: vc2008sp1位置:C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc 将mfc.bsc文件加载到对象查看器的步骤:
在大学大一的时候学的是C,然后后来大二的时候专业又开了C++这个课程,然后再后来自己又自学了一点VC++,大三的时候也试着编写过一个MFC的最简单的窗口程序。到大四的时候,自己又做了一个GIS的项目,是用C#.NET来编写的,然后发现C#上手好容易,而且还大部分语法规则都沿用了C,C++的习惯,于是觉得C++实在是没有一点优势可言啊。但这个暑假的实习经历又改变了我的观点:C++在写窗口程序虽然麻烦,但是却什么能做,而且对比C#来说,对运行环境的要求不高,不用像C#程序在安装之前还要安装100M多的运行.NET环境。C++和C#各有优缺,目前我对它们俩的定位是:C++用来写一些底层的程序,比如驱动,或者是一些算法类型的函数接口,然后用C#来调用这些接口并进行界面设计。如何函数的实现跨语言呢?显然DLL是个很重要的内容,故在此对VC++的DLL模块进行介绍。
领取专属 10元无门槛券
手把手带您无忧上云