社区
C++ 语言
帖子详情
MFC 如何让对话框运行之后立即创建线程
wenxian8
2013-08-22 09:18:02
如何让对话框运行之后立即创建线程,到底是发送什么消息,可以实现,请各位高手指点下,谢谢了。
...全文
97
4
打赏
收藏
MFC 如何让对话框运行之后立即创建线程
如何让对话框运行之后立即创建线程,到底是发送什么消息,可以实现,请各位高手指点下,谢谢了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wenxian8
2013-08-22
打赏
举报
回复
按照楼上提供的方法,表面解决问题,但是却出现另外问题,因为目前所做的项目,跟平时写代码不一样, 是根据USB设备发过来的数据,进行画线的,结果画线的长度比实际稍微长了点,但是采用点击 按钮来创建线条,那么就画线正常了。
wjjll123
2013-08-22
打赏
举报
回复
引用 1 楼 buyong 的回复:
C**Dlg::OnInitialDialog() { AfxBeginThread(....); }
+1
starytx
2013-08-22
打赏
举报
回复
在对话框的初始化函数中创建线程就可以了。
buyong
2013-08-22
打赏
举报
回复
C**Dlg::OnInitialDialog() { AfxBeginThread(....); }
VC学习大纲 VC学习讲义
第一课: Windows程序
运行
原理及程序编写流程,窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与cdecl调用规范的比较,初学者常犯错误及注意事项。我们通常不必要知晓每一个函数和消息。但另一方面,也不得不记住其中的一部分,否则很难将VC++运用自如。到底该记住哪些,这在我们的课程中都会涉及到。 第二课: C++经典语法与应用,类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数、析构函数先后调用顺序,如何在派生类构造函数中向基类的构造函数传递参数,this成员变量,类型转换的内幕,虚拟函数与奇妙多态性。VC工程的编译原理与过程,将工程中不同的类拆分到不同的原文件中,每一个类由一个.h和.cpp文件共同完成,然后解决头文件重复定义问题,培养了学员良好的编程习惯,也为以后分析
MFC
Appwizard生成的工程奠定了良好基础。 第三课: 讲述
MFC
AppWizard的原理与
MFC
程序框架的剖析。AppWizard是一个原代码生成工具,是计算机辅助程序设计软件,Winmain在
MFC
程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,
MFC
框架中的几个类的作用与相互关系,
MFC
框架窗口是如何产生和销毁的,对窗口类的PreCreateWidow和OnCreate两个函数的着重分析,Windows窗口与C++中的CWnd类的关系。 第四课: 讲述如何运用ClassWizard及对
MFC
消息响应函数机制的分析,理解发送给窗口的消息是如何被
MFC
框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。掌握设备描述表及其封装类CDC的使用,CDC是如何与具体的设备发生关联的,融合具体的画图程序进行分析。如何设置封闭图形的填充刷子(位图画刷与透明画刷的使用)。 第五课: 掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。通过对kala ok程序的编写,讲解定时器的使用和DrawText函数的巧妙运用。讲解如何使用CDC的裁减功能。 第六课: 菜单的工作原理及编写应用,菜单命令消息在
MFC
框架程序的几个类中的传递顺序和处理过程。标记菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)。 第七课.: 动态菜单的编写,如何让程序在
运行
时产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。 第八课.:
对话框
用户界面程序的编写,如何向
对话框
控件联接数据成员及其实现机理,如何向
对话框
控关联控件类,如何利用
对话框
类的成员函数向控件发送消息和获取
对话框
控件的类指针,如何直接利用
对话框
控件类操纵
对话框
控件(发送消息和直接调用成员函数)。如何在程序
运行
时产生和销毁控件。
对话框
控件的几种操作方式的优劣比较分析。 第九课: 如何让
对话框
上的文本框在程序启动后
立即
获得焦点,如何利用SetWindowLong改变窗口的回调函数,通过改变文本框的默认回车处理方式进行演示。实现多个输入文本框间通过回车逐一向下传递焦点的另一种巧妙方法(用缺省按钮来处理)。利用SetWindowLong和定时器轮回改变窗口的图标。如何实现
对话框
的部分收缩和展开。如何在主
对话框
程序启动时
立即
隐藏
对话框
的巧妙实现方式与精妙思想(不能直接在OnInitDialog处理。包括自定义消息的实现) 第十课: 如何制作属性页
对话框
和向导
对话框
,融合讲解组合框(如何调整组合框的大小)、列表框、单选按钮、复选按钮 等常用
对话框
控件的多种使用方法。如何限制用户在不满足设定的条件时切换到其他属性页和向导页。 第十一课: 如何修改
MFC
AppWizard向导生成的框架程序的外观,包括修改标题栏的多种方式及原理,修改图标、光标、背景的两种方法。如何给应用程序增加工具栏和删除工具栏按钮。定制状态栏,在CView中获取状态栏对象的几种方式,在状态栏中添加时钟显示(掌握CTime类和静态成员变量和函数的用法),鼠标坐标显示,进度条(主窗口产生后
立即
产生进度条的巧妙思想,不能在OnCreate函数中直接处理,要用到自定义消息的方法)。如何为窗口添加背景位图。 第十二课: 如何使用自定义画笔(颜色,线宽,线形),画刷(形状,颜色)。如何为程序中添加选项菜单和选项设置
对话框
,如何使用标准颜色
对话框
,窗口重绘原理,在选项
对话框
中实现预览功能。实现选项
对话框
和窗口类中的数据交换。 第十三课: 如何让CDC上输出的文字、图形具有保持功能,元文件设备描述表的使用,CpaintDC与CClientDC的区别与应用,OnPaint与Ondraw在CView中的关系及实现内幕,集合类CObArray的使用,滚动窗口的实现,设备坐标与逻辑坐标的转换。 第十四课: 文件读写,CFileDialog,CFile,fstream,CArchive类的使用与比较。在应用中讲解const char *与char * const的区别,字符串的使用原理,如何使用CString的内存缓冲区。注册表与win.ini文件的读写方式及相关知识点。 第十五课: 如何利用CDocument类的串行化存储功能及
MFC
框架程序提供的文件打开与保存功能的实现原理。如何实现类对串行化的支持,CObArray的串行化实现内幕。
MFC
框架程序的几个主要类之间如何获得相互的指针引用。 第十六课: 网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中
创建
,通过bind与驱动程序建立关系。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP+Port相关的数据后,由驱动程序交给Socket,应用程序便可从该Socket中提取接收到的数据。网络应用程序就是这样通过socket进行数据的发送与接收的。UDP与TCP的工作原理与编写过程,包含如何在程序中连接库文件,telnet工具软件在编写网络程序中的用途 第十七课: 多
线程
程序的编写,如何通过互斥来保证多
线程
的安全。如何利用命名互斥保证只有一份程序实例被
运行
,结合多
线程
,网络编程,自定义消息,数据类型转换,如何改变文本框对回车的默认处理方式等技术编写网络聊天程序。 第十八课: 动态连接库程序的编写,库函数的两种输出方式。调用程序对动态连接库的静态连接与动态连接方式,如何利用工具查看动态连接库里的函数,C/C++连接规范中的命名转变问题分析,如何获得动态连接库里的函数 的指针,如何用typedef声明指向函数的指针类型。如何调试动态连接库。 第十九课: ActiveX控件的应用与工作原理,ActiveX控件的编写,如何为控件安排属性,方法,事件,属性页,持久性存储。如何注册控件与取消控件注册。如何测试与调试控件。 第二十课: 综合答疑与一些高深主题的介绍,包括如何安装系统钩子函数,dll连接库里的全局变量数据共享问题分析,ADO数据库编程,如何将数据库记录显示在Clistview网格中。 以上内容为作者对课件的初步整理,还有很多课堂上要讲到,但在本大纲中还没有被撰稿的内容,以后将逐渐完善本大大纲。
C++小知识——VS2013
MFC
基于
对话框
编程
转载自:https://blog.csdn.net/wokaowokaowokao12345/article/details/53173966 前言 一直利用Qt库做Ui设计,但针对于一些
MFC
项目,掌握一些必要的
MFC
开发技巧还是很有必要的。这篇博客里就将自己所学的一些
MFC
浅显知识记录一下,方便今后的学习。博客里只记录关键步骤。 一、新建
MFC
项目 选择:基于
对话框
MFC
的使用: 在共享DLL中使用
MFC
(程序
运行
需要dll) 在静态库中使用
MFC
(程序较大,
运行
时不需要dll) 设置
MFC
程序
MFC
实战篇——
线程
的
创建
和多
线程
简单示例
MFC
实战篇——
线程
的
创建
和多
线程
简单示例
MFC
中的模态
对话框
与非模态
对话框
的消息循环及消息传递问题(都可以通过SendMessage传递消息)
还有一个必须重载的函数就是PostNcDestroy,这也是一个虚函数,通常的非模态
对话框
是用类的指针,通过new
创建
的,这就需要在PostNcDestroy函数中delete掉这个指针。众所周知,在
MFC
程序中,窗口对象的生存期应长于对应的窗口,也就是说,不能在未关闭屏幕上窗口的情况下先把对应的窗口对象删除掉。由于在Create返回后,不能确定
对话框
是否已关闭,这样也就无法确定
对话框
对象的生存期,因此只好在堆中构建
对话框
对象,而不能以局部变量的形式来构建之。但由于是
对话框
,它对一些消息有特殊的处理。
MFC
中实现模态
对话框
的结构与原理
1. 模态
对话框
在涉及GUI程序开发的过程中,常常有模态
对话框
以及非模态
对话框
的概念 模态
对话框
:在子界面活动期间,父窗口是无法进行消息响应。独占用户输入 非模态
对话框
:各窗口之间不影响 模态框和非模态框的主要区别: 1.模态
对话框
会阻塞
线程
其他窗口的输入消息,其他窗口无法响应包括用户输入; 2.模态
对话框
会中断执行流程,关闭模态窗口,后会继续执行; 在用户层的主要逻辑如下: TestDlg dlg; if (dlg.DoModal() == IDOK) { //.
C++ 语言
64,642
社区成员
250,580
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章