第五篇 对话框控件的使用

MFC 学习之 模态对话框图片控件上作图 首先说明一点,onpaint 是更新面板用的,作图的话应在控件上进行。 新建 MFC 对话框工程,面板上添加按钮 IDC_START , IDC_SHOW , IDC_STOP 添加两个对话框,ID 分别设为(简写)ld 和 cd。 ld 上添加三个图片控件,并且每一个均关联一个 CSTATIC 型变量。 cd 上添加一个图片控件,操作如上。 分别为两个对话框添加类,名称自己设,我的是 阅读详情

对话框对控件的支持使得建立对话框变得格外的简单,而不需要再像建立普通窗口那样

麻烦。用户只需在资源文件中定义好控件,那么Windows在初始化对话框时就会为我们

把控件一一添加上去。当然,用户还需要对控件进行一些初始化的工作。

 

一、控件使用

1、控件的定义

control  文本 , ID , 类 , 风格 , x , y , 宽度 ,高度 [ ,扩展风格 ]

其中值得注意的是 文本 是控件的初始化值。

这种定义较为麻烦,RC.EXE还为用户提供了一种更加简单的定义方法。

控件名称  [ 文本, ]  ID , x , y , 宽度 , 高度   [ ,风格] [ ,扩展风格 ]

控件名称主要如下:

2、为什么可以在资源文件中定义即可?

这是因为Windows在初始化对话框时将每一天控件定义语句转化为:

invoke	CreateWindow,类名,文本,风格,x,y,宽度,高度,\
	对话框窗口句柄,ID,hInstance,NULL

3、实例

#include	<resource.h>

#define		ICO_MAIN	0x1000  //图标
#define		DLG_MAIN	1       //对话框

//位图文件ID
#define		IDB_1		1
#define		IDB_2		2

//控件ID
#define		IDC_ONTOP	101
#define		IDC_SHOWBMP	102
#define		IDC_ALOW	103
#define		IDC_MODALFRAME	104
#define		IDC_THICKFRAME	105
#define		IDC_TITLETEXT	106
#define		IDC_CUSTOMTEXT	107
#define		IDC_BMP		108
#define		IDC_SCROLL	109
#define		IDC_VALUE	110

//定义图标以及两个位图
ICO_MAIN	ICON	"Main.ico"
IDB_1		BITMAP	"Picture1.bmp"
IDB_2		BITMAP	"Picture2.bmp"

//定义对话框
DLG_MAIN	DIALOG	193,180,310,134
//对话框属性定义
STYLE		DS_MODALFRAME | WS_POPUP | WS_VISIBLE | 
		    WS_CAPTION | WS_SYSMENU | WS_THICKFRAME |
			WS_MAXIMIZEBOX | WS_MINIMIZEBOX 
CAPTION		"对话框窗口控件实例"
FONT		9,"宋体"
BEGIN
//子窗口控件定义
		GROUPBOX "选项",-1,55,5,120,100
		AUTOCHECKBOX "总在最前面",IDC_ONTOP,65,20,
				100,12
		AUTOCHECKBOX "显示图片",IDC_SHOWBMP,65,35,
				100,12
		AUTOCHECKBOX "允许更换图片",IDC_ALOW,65,50,100,12
		CONTROL "",-1,"Static",SS_ETCHEDHORZ | WS_CHILD | 
			WS_VISIBLE,60,65,110,1
		AUTORADIOBUTTON "模态边框(&Modal Frame)",IDC_MODALFRAME,
				65,70,100,12,WS_TABSTOP
		AUTORADIOBUTTON "可变边框(&Thick Frame)",IDC_THICKFRAME,
				65,85,100,12,WS_TABSTOP
		GROUPBOX "标题栏文字",-1,180,5,125,100,BS_GROUPBOX
		COMBOBOX IDC_TITLETEXT,190,20,105,70,CBS_DROPDOWNLIST | 
			WS_TABSTOP
		LTEXT "自定义文字: ",-1,190,40,105,10
		EDITTEXT IDC_CUSTOMTEXT,190,55,105,12
		LTEXT "请在此选择显示在标题栏上面的文字,或者选择'自定义'后自行输入",
			-1,191,73,105,26,WS_BORDER
		CONTROL "",-1,"Static",SS_ETCHEDHORZ | WS_CHILD | WS_VISIBLE,
			5,110,300,1
		DEFPUSHBUTTON "更换图片(&C)",IDOK,200,115,50,14
		PUSHBUTTON "退出(&X)",IDCANCEL,255,115,50,14

		;这条语句定义了一个图片框
		CONTROL IDB_1,IDC_BMP,"Static",SS_BITMAP | WS_CHILD | WS_VISIBLE,
			5,5,40,95       
		SCROLLBAR IDC_SCROLL,6,119,125,10
		LTEXT "0",IDC_VALUE,138,120,50,8
END


 

二、如何在代码中使用资源?

这里的主要内容就涉及两个方面的内容:

1、调用DialogBoxParam建立对话框时,对话框管理器会自动按照资源文件中定义的对话框模版为用户建立起

对话框。

把用户自定义的对话框过程中WM_INITDIALOG消息去掉:

即去掉该段:

 		.elseif	eax == WM_INITDIALOG
			;获得位图句柄备用
			invoke	LoadBitmap,hInstance,IDB_1
			mov	hBmp1,eax
			invoke	LoadBitmap,hInstance,IDB_2
			mov	hBmp2,eax
			;设置对话框图标
			invoke	LoadIcon,hInstance,ICO_MAIN
			invoke	SendMessage,hWnd,WM_SETICON,ICON_SMALL,\
				eax

			;组合框的下拉项的三项内容
			invoke	SendDlgItemMessage,hWnd,IDC_TITLETEXT,\
				CB_ADDSTRING,0,addr szText1
			invoke	SendDlgItemMessage,hWnd,IDC_TITLETEXT,\
				CB_ADDSTRING,0,addr szText2
			invoke	SendDlgItemMessage,hWnd,IDC_TITLETEXT,\
				CB_ADDSTRING,0,offset szText3
			;设置组合框的初始内容
			invoke	SendDlgItemMessage,hWnd,IDC_TITLETEXT,\
				CB_SETCURSEL,0,0
			;灰化自定义框
			invoke	GetDlgItem,hWnd,IDC_CUSTOMTEXT
			invoke	EnableWindow,eax,FALSE

			;选中"显示图片"
			invoke	CheckDlgButton,hWnd,IDC_SHOWBMP,BST_CHECKED
			;选中"允许更换图片"
			invoke	CheckDlgButton,hWnd,IDC_ALOW,BST_CHECKED
			;选中"可变边框"
			invoke	CheckDlgButton,hWnd,IDC_THICKFRAME,BST_CHECKED

			;设置滚动条的范围
			invoke	SendDlgItemMessage,hWnd,IDC_SCROLL,\
				SBM_SETRANGE,0,100

可以发现建立的对话框如下:

显然其中没有任何对对话框的初始化,因为初始化的工作需要用户在自定义的对话框过程中

处理。

2、对对话框控件的操作的处理。

操作对话框控件时,对话框过程会接收到WM_COMMAD消息,其wParam参数的低十六位即为用户定义

的ID。可以据此对不同的操作进行处理。另外,值得注意的是,操作滚动条时是不会发送WM_COMMAND

消息的,发送的WM_HSCROLL或WM_VSCROLL。

3、主程序

主程序是相对简单的,只要调用GetModuleHandle获得实例的句柄,保存以备用;然后调用DialogBoxParam

建立模态对话框;最后就是在对话框销毁后调用ExitProcess退出进程。

4、例子代码

.386
.model	flat,stdcall
option	casemap:none

include		windows.inc
include		user32.inc
includelib	user32.lib
include		kernel32.inc
includelib	kernel32.lib
include		gdi32.inc
includelib	gdi32.lib

;此处的equ定义要和资源文件中的定义一一对应
ICO_MAIN	equ	1000h
DLG_MAIN	equ	1
IDB_1		equ	1
IDB_2		equ	2
IDC_ONTOP	equ	101
IDC_SHOWBMP	equ	102
IDC_ALOW	equ	103
IDC_MODALFRAME	equ	104
IDC_THICKFRAME	equ	105
IDC_TITLETEXT	equ	106
IDC_CUSTOMTEXT	equ	107
IDC_BMP		equ	108
IDC_SCROLL	equ	109
IDC_VALUE	equ	110

.data?
;实例句柄与位图句柄
hInstance	dd	?
hBmp1		dd	?
hBmp2		dd	?
;滚动条位置
dwPos		dd	?

.const
;0代表字符串的结束,必须以0结束
szText1		db	'Hello,World!',0
szText2		db	'Title change!',0
szText3		db	'user-defined!',0

.code
;用户定义的对话框过程
_ProcDlgMain	proc	uses edi ebx esi hWnd,wMsg,wParam,lParam
		local	@szBuffer[128]:byte
		local	@stPs

		mov	eax,wMsg

		.if	eax == WM_CLOSE
			;销毁对话框,释放位图资源
			invoke	EndDialog,hWnd,NULL
			invoke	DeleteObject,hBmp1
			invoke	DeleteObject,hBmp2
 		.elseif	eax == WM_INITDIALOG
			;获得位图句柄备用
			invoke	LoadBitmap,hInstance,IDB_1
			mov	hBmp1,eax
			invoke	LoadBitmap,hInstance,IDB_2
			mov	hBmp2,eax
			;设置对话框图标
			invoke	LoadIcon,hInstance,ICO_MAIN
			invoke	SendMessage,hWnd,WM_SETICON,ICON_SMALL,\
				eax

			;组合框的下拉项的三项内容
			invoke	SendDlgItemMessage,hWnd,IDC_TITLETEXT,\
				CB_ADDSTRING,0,addr szText1
			invoke	SendDlgItemMessage,hWnd,IDC_TITLETEXT,\
				CB_ADDSTRING,0,addr szText2
			invoke	SendDlgItemMessage,hWnd,IDC_TITLETEXT,\
				CB_ADDSTRING,0,offset szText3
			;设置组合框的初始内容
			invoke	SendDlgItemMessage,hWnd,IDC_TITLETEXT,\
				CB_SETCURSEL,0,0
			;灰化自定义框
			invoke	GetDlgItem,hWnd,IDC_CUSTOMTEXT
			invoke	EnableWindow,eax,FALSE

			;选中"显示图片"
			invoke	CheckDlgButton,hWnd,IDC_SHOWBMP,BST_CHECKED
			;选中"允许更换图片"
			invoke	CheckDlgButton,hWnd,IDC_ALOW,BST_CHECKED
			;选中"可变边框"
			invoke	CheckDlgButton,hWnd,IDC_THICKFRAME,BST_CHECKED

			;设置滚动条的范围
			invoke	SendDlgItemMessage,hWnd,IDC_SCROLL,\
				SBM_SETRANGE,0,100
		.elseif	eax == WM_COMMAND
			;用户操作对话框中定义的控件时,对话框过程会收到消息WM_COMMAND,
			;消息的wParam的第十六位用户定义的控件ID
			mov	eax,wParam

			.if	ax == IDCANCEL
				invoke	EndDialog,hWnd,NULL
				invoke	DeleteObject,hBmp1
				invoke	DeleteObject,hBmp2
			.elseif	ax == IDOK
				mov	eax,hBmp1
				xchg	eax,hBmp2
				mov	hBmp1,eax
				invoke	SendDlgItemMessage,hWnd,IDC_BMP,\
					STM_SETIMAGE,IMAGE_BITMAP,eax
			.elseif	ax == IDC_ONTOP
				invoke	IsDlgButtonChecked,hWnd,IDC_ONTOP
				.if	eax == BST_CHECKED
					invoke	SetWindowPos,hWnd,HWND_TOPMOST,\
						0,0,0,0,SWP_NOMOVE or SWP_NOSIZE
				.else
					invoke	SetWindowPos,hWnd,HWND_NOTOPMOST,\
					0,0,0,0,SWP_NOMOVE or SWP_NOSIZE
				.endif
			.elseif	ax == IDC_SHOWBMP
				invoke	GetDlgItem,hWnd,IDC_BMP
				mov	ebx,eax
				invoke	IsWindowVisible,ebx
				.if	eax
					invoke	ShowWindow,ebx,SW_HIDE
				.else
					invoke	ShowWindow,ebx,SW_SHOW
				.endif
			.elseif	ax == IDC_ALOW
				invoke	IsDlgButtonChecked,hWnd,IDC_ALOW
				.if	eax == BST_CHECKED
					mov	ebx,TRUE
				.else
					mov	ebx,FALSE
				.endif
				invoke	GetDlgItem,hWnd,IDOK
				invoke	EnableWindow,eax,ebx
			.elseif	ax == IDC_MODALFRAME
				invoke	GetWindowLong,hWnd,GWL_STYLE
				and	eax,not WS_THICKFRAME
				invoke	SetWindowLong,hWnd,GWL_STYLE,eax
			.elseif	ax == IDC_THICKFRAME
				invoke	GetWindowLong,hWnd,GWL_STYLE
				or	eax,WS_THICKFRAME
				invoke	SetWindowLong,hWnd,GWL_STYLE,eax

			.elseif	ax == IDC_TITLETEXT
				shr	eax,16
				.if	ax == CBN_SELENDOK
					invoke	SendDlgItemMessage,hWnd,\
						IDC_TITLETEXT,\
						CB_GETCURSEL,0,0
					.if	eax == 2
						invoke	GetDlgItem,hWnd,\
							IDC_CUSTOMTEXT
						invoke	EnableWindow,eax,\
							TRUE
					.else
						mov	ebx,eax
						invoke	SendDlgItemMessage,\
							hWnd,IDC_TITLETEXT,\
							CB_GETLBTEXT,ebx,\
							addr @szBuffer
						invoke	SetWindowText,hWnd,\
							addr @szBuffer
						invoke	GetDlgItem,hWnd,\
							IDC_CUSTOMTEXT
						invoke	EnableWindow,eax,\
							FALSE
					.endif
				.endif
			.elseif	ax == IDC_CUSTOMTEXT
				invoke	GetDlgItemText,hWnd,IDC_CUSTOMTEXT,\
					addr @szBuffer,sizeof @szBuffer
				invoke	SetWindowText,hWnd,addr @szBuffer
			.endif
		;注意,操作滚动条,不会收到WM_COMMAND消息,而是WM_HSCROLL
		.elseif	eax == WM_HSCROLL
			mov	eax,wParam
			;左移一位
			.if	ax == SB_LINELEFT
				dec	dwPos
			;右移一位
			.elseif	ax == SB_LINERIGHT
				inc	dwPos
			;左移一页,移动长度自定义
			.elseif	ax == SB_PAGELEFT
				sub	dwPos,20
			;右移一页
			.elseif	ax == SB_PAGERIGHT
				add	dwPos,10
			;拖动滚动条
			.elseif	ax == SB_THUMBPOSITION || ax == SB_THUMBTRACK
				mov	eax,wParam
				shr	eax,16
				mov	dwPos,eax
			.else
				;有些滚动条事件未处理,留给对话框管理器
				mov	eax,FALSE   
				ret
			.endif
			;保证滚动条范围为0~100
			cmp	dwPos,0
			jge	@F
			mov	dwPos,0
			@@:
			cmp	dwPos,100
			jle	@F
			mov	dwPos,100
			@@:
			invoke	SetDlgItemInt,hWnd,IDC_VALUE,dwPos,FALSE
			invoke	SendDlgItemMessage,hWnd,IDC_SCROLL,\
				SBM_SETPOS,dwPos,TRUE
		.else
			mov	eax,FALSE
			ret
		.endif

		mov	eax,TRUE
		ret
_ProcDlgMain	endp

start:
	invoke	GetModuleHandle,NULL
	mov	hInstance,eax
	;调用建立模态对话框的程序,改程序一直到对话框销毁才返回
	invoke	DialogBoxParam,hInstance,DLG_MAIN,\
		NULL,offset _ProcDlgMain,NULL
	invoke	ExitProcess,NULL

	end	start



5、例子运行结果

可见,其中有了对对话框的初始化。

 

三、控件资源文件下载

 

 

MFC对话框中Radio控件的使用 MFC中radiobutton的使用 阅读详情

相关推荐

VC对话框上Tab控件的各子标签及其与主对话框之间的数据传递

假设主对话框已经初始化好了Tab控件(具体参考:MFC的TAB控件使用详细说明),主对话框CMainDlg成员变量m_tab, m_d1, m_d2,分别代表Tab控件,子标签1,子标签2。主对话框及各标签的编辑控件绑定一个变量m_data。 一、子标签调用主对话框的数据成员 方法:在子标签的处理函数OnClickedBtn1中,使用GetParent()-&gt;GetParent()得到主...

yxq1122的博客 2480

如何创建与使用MFC对话框工程

详细的MFC 对话窗的创建与使用介绍

everything is possible,anything is OK. 9922

深入理解MFC对话框与控件的源代码实践

创建自定义对话框类的基本步骤如下:定义类:首先,在项目中定义一个新的C++类,并使其继承自CDialog类。添加控件:使用资源编辑器或代码添加所需的控件,并为每个控件设置合适的ID。实现消息处理函数:为对话框中的控件编写消息处理函数。这通常通过在类中重载虚函数或者处理消息映射宏来完成。初始化对话框:实现OnInitDialog()函数来执行对话框初始化时需要的操作,如设置控件的初始值。数据交换与验证。

weixin_42361478的博客 1089

mfc入门基础(四)对话框添加控件、创建对话框类和为对话框控件添加变量

学习

Littlehero_121的博客 6105

mipi协议中的calibration和scramble模式

在MIPI(Mobile Industry Processor Interface)协议中,calibration(校准)和scramble(加扰)模式是两个重要的特性,它们分别用于优化数据传输的准确性和减少信号干扰。

flomingo1的专栏 2402

从Frenet坐标系到多项式拟合:Lattice Planner核心原理拆解与调参指南

本文深入解析了自动驾驶轨迹规划中Lattice Planner的核心原理,重点阐述了其在Frenet坐标系下解耦横纵向规划、利用五次和四次多项式拟合轨迹的数学基础。文章提供了从坐标系转换、采样策略到成本函数设计的完整工程实践指南,并分享了关键的参数调优经验,旨在帮助开发者高效实现稳定、平滑且安全的轨迹规划。

tech5的博客 1111

windows 对话框创建及其标准控件的使用

非模态,模态对话框,按钮单选,多选,列表视图,滑轮,滚动条,复选框

ylh的博客 1280

C#实战:如何用winmm.dll打造毫秒级高精度定时器(附完整代码)

本文详细介绍了在C#中利用winmm.dll实现毫秒级高精度定时器的完整方案。针对.NET内置定时器精度不足的问题,通过调用timeSetEvent等原生API,提供了超越系统时钟中断周期的精准定时能力。文章包含核心原理剖析、完整的封装类代码以及音视频处理、游戏开发等场景下的实战应用与性能调优指南。

ujm5678901的博客 690

day5 – 对话框的创建和控件的基本使用

对话框 1) 模态对话框 创建的步骤: 编辑对话框资源模板 创建对话框 实现对话框过程函数 模态对话框会阻塞父窗口的原因: a. 模态对话框内部自建消息循环 b. 模态对话框调用Enablewindow禁用了父窗口的鼠标和键盘输入 一、概述 对话框是一种特殊的窗口,它依据对话框模板资源而建立。 它与一般的窗口有些不同,很多过程由系统完成了,虽然用户还是要提供一个消息处理函数,但在此消息处理函...

Break-attack的博客 350

MSDN Win10镜像缺少驱动?这里有全面解决方案

针对MSDN Win10镜像缺少驱动的问题,本文提供了四种解决方案:厂商官网下载驱动程序、利用Windows更新获取驱动、使用第三方驱动更新工具以及使用集成驱动的Win10系统镜像。每种方案都有其优缺点,用户可以根据自己的需求和实际情况选择合适的方案。建议优先考虑官方渠道:官方渠道下载的驱动程序稳定可靠,是解决问题的首选方案。谨慎选择第三方工具:使用第三方工具时,务必选择信誉好、无广告捆绑的工具,并注意保护个人隐私和计算机安全。备份重要数据:在进行系统安装或更新前,务必备份重要数据以防丢失。

nntxthml的博客 1534

【社区分享】从零开始学习 TinyML,建立 TensorFlow 深度学习模型(技术优化篇)

本文来自社区投稿与征集,作者王玉成,ML&IoT Google Developers Expert,温州大学智能锁具研究院总工程师。 了解更多:https://blog.youkuaiyun.com/wfing 经过前面几章的讨论,我们了解了TinyML 的概念,完成了一个最简单的TinyML 的模型并且运行在微控制器上,得出最基本的结果。但是在实际的工程应用中,模型建立之后,也需要再进一步结合许多优化方面的技术,这就是我们接下来想要探讨的。 5. 优化 TinyML 这本书也详细的向我...

tensorflowforum的博客 1万+

MFC 对话框与控件的使用

用VS编写关于MFC 对话框与控件的一个小项目

qq_51679695的博客 4060

WorkBuddy KiCad 实战:国产 AI 搭子不只会写代码,传感器板从零走到可审查

真正可用的 PCB 教程不能承诺“一键打样”。本课把 WorkBuddy 放在需求拆分、文件生成和审查记录的位置,KiCad 负责 ERC、DRC 与制造文件,工程师负责最终判断。 本课不会用“AI 一键完成”制造错觉,而是把 WorkBuddy、KiCad 8.0、Python 3.11 与人工审阅组成一条可复现链路。你会从“已确认的接口表、器件库来源、板框与电源方案”出发,得到“KiCad 工程、原理图、初始 BOM、ERC 报告与审查记录”,并学会用真实命令、错误信号和停止条件判断成果能不能进入下一阶

yueyeguzhuo的专栏 229

MFC实现菜单弹出对话框,并在对话框中实现控件触发

首先我们要新建一个mfc工程,实验工具是vs,选择图中选项然后下一步当中,设置成基于对话框然后可以完成,也可以继续下一步设置窗口的一下小部件。1.第一步,我们要在窗口上添加菜单。找到资源视图,右键添加资源。选择menu,新建之后,输入自己想要的菜单名最后在添加图中所缺代码:        CMenu menu; menu.LoadMenu(IDR_MENU1);  //IDR_MENU1为菜单栏I...

felicityPY的博客 1万+

android osmdroid 加载常用离线地图格式(开源的在线地图)

osmdroid是(几乎)完整/免费更换为Android MapView(v1 API)类。它还包括一个模块化的瓷砖供应商系统支持众多的在线和离线瓷砖来源和覆盖支持内置覆盖绘制图标,跟踪位置和形状。如果想在你项目中使用osmdroid,绝对是灵活度最高,不用申请百度,高德等的key。还有一堆规则要遵循。osmdroid可以支持多图层叠加,绘制自已的图层。离线加载常用地图格式zip,sqlite,.

mmsx990的博客 1万+

霜冰优化算法(RIME)详解:从自然现象到智能优化

霜冰优化算法(RIME)是一种新型元启发式优化算法,灵感源于自然界中霜冰的形成过程。该算法通过模拟软霜和硬霜的不同生长特性,实现了高效的全局探索和局部开发平衡。RIME算法包含三个核心机制:软霜搜索策略模拟随机覆盖特性实现全局探索;硬霜穿刺机制模拟定向生长特性进行局部开发;正向贪婪选择机制确保解的持续优化。与遗传算法、粒子群算法相比,RIME具有参数少、收敛快、自适应平衡等优势,特别适合处理高维复杂优化问题。算法已在工程优化、机器学习等领域获得广泛应用,发表一年内即成为高被引论文。

qq_42212808的博客 787

MFC对话框、菜单栏、工具栏、控件的创建和基本使用

下面让我们通过一个实例 来了解MFC对话框的建立,菜单栏、工具栏、控件的一些基本使用 先简单看一下效果 系统环境 window10 Visual Studio 2017 项目的目录 一、对话框 首先需要知道的是 MFC中创建的对话框分为两种 模态对话框 非模态对话框 两者区别简单来说就是 模态对话框就像和你女朋友聊天,一旦你打开了她的对话框,除非你把她哄好打点好之后,你才能干其他...

weixin_44984664的博客 8084

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

对话框和常用控件

<br />对话框是Windows应用程序中最重要的用户界面元素之一,是与用户交互的重要手段,在程 序运行过程中,对话框可用于扑捉用户的输入信息或数据。对话框是一个特殊类型的窗口,任何对窗口进行的操作(如:移动、最大化、最小化等)都可在对话框中 实施,一般来说,在对话框中通过各种控件(如:按钮、编辑框、列表框、组合框等)来和用户进行交互。控件是在系统内部定义的用于和用户交互的基本单元。<br />一、对话框的使用<br />    Visual C++提供的对话框编辑器能“可视”地进行设计、编辑,并可用<b

simon7in的专栏 5522

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Win32对话框中使用Tab控件

windows编程学习任重而道远。一个tab控件折腾好久才勉强能用,还有好多问题存在。暂且将已经实现的记录下来。 首先,初学windows编程,就算知道了一个控件的所有信息,没有示例,学起来也是很迷茫的。msdn官网方文档中有一个叫using...的模块,很有帮助。 就像上方所示,参考using tab controls中的示例代码,能让初学者在使用控件的时候省力不少。 tab控件在di...

majalis_C的博客 2273

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

CMFCTabCtrl控件在对话框中的使用

CMFCTabCtrl控件相比于CTabTrcl的使用更加方便灵活,但是在对话框控件中只有CTabTrcl控件,因此如果开发人员想使用CMFCCtrl控件的话需要做一些小小的修改。 开发环境:Win10+Visual Studio 2010 1、重载对话框的OnCreate(LPCREATESTRUCT lpCreateStruct)函数,并在其中创建CMFCTabCtrl和tab...

chuajiang的专栏 1902

ATL/WTL 对话框和控件

  选择自 titilima 的 Blog第四章 对话框和控件对于Win32 GUI的程序设计来说,其实大部分的情况下我们都不需要自己进行窗口类的设计,而是可以使用Win32中与用户交互的标准方式——对话框(Dialog Box)。我们可以在VC IDE的资源设计器中设计对话框资源,并在其上放置各种控件资源——的确是非常方便。在本章里,李马将要向诸位介绍如何利用ATL来操作对话框,以及如何

编爱程 6452

【MFC】对话框类的控件中变量如何获取其他对话框类的控件变量的值并使用

——————通过全局变量的使用来获取对话框的指针—————— 问题描述:假设CMyDialog为对话框类1,CLoginDialog为对话框2,对话框1的IDC_STATIC2控件要获取对话框2的控件变量m_name 1.先在CLoginDialog.cpp中声明一个全局变量:CLoginDialog* pLogin;(指的是一个类对象) // 注意:这里的声明必须在CPP文件中的所有函数外部,而...

pengpengbenben的博客 2768

C++编程逻辑讲解step by step:使用对话框与控件(2)

3)单击“ADD Function”按钮,弹出“Add Member Function”对话框,使用默认的函数名(OnDialogModaldialog),单击“OK”按钮返回,“MFC Class Wizard”对话框,再单击“OK”按钮,则函数添加成功。“Ok”按钮的响应函数,OnOk(),该函数响应BM_CLICK消息,将用户选择的各个选项(性别,学历,兴趣、爱好),组成一个字符串,赋给m_Edit,通过“文本框”控件显示该字符串。//将设置Raiod Button的缺省值为“男”

技术日常 2059

基础语法篇_10——设置对话框、颜色对话框、字体对话框、示例对话框、改变对话框和控件的背景及文本颜色、位图显示

文章目录一、简单绘图二、设置对话框2.1 设置线宽2.2 设置线型 新建一个单文档类型的MFC工程,取名:Graphic。此程序将实现简单的绘图功能。 一、简单绘图 实现简单的绘图功能,包括点、直线和椭圆的绘制。为了实现这些功能: ⭕⭕1)首先为此程序添加一个子菜单,菜单名称为“绘图”; ⭕⭕2)为其添加四个子菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选...

WaitFoF 2835

如何使MFC对话框上的控件可以拖动

有人问我,怎么才能使对话框上的控件可以通过鼠标来拖动. 他的方法是: 1) 从标准控件类派生新的类. 2) 处理控件的鼠标消息来实现拖动效果. 这样做当然可以实现,但似乎不太符合常规, 且需要对需要可拖动的所有控件进行子类化以便能响 应控件的鼠标消息. 在这里, 我写了一个类,专门用来处理对控件的拖动, 使用该类只需要少许修 改包含需要拖动的控件的对话框,而不需要对控件再做任

angusing的专栏 2983

MFC控件随对话框大小改变而改变

这也是我项目中碰到的问题,要让对话框中的控件随着对话框大小的变化进行自动调整,一般的做法是在WM_SIZE的响应函数中对所有的控件用MoveWindow()或者SetWindowPos()设置其变化比例。 但是由于需要自己计算,并且还有各种系统引起的情况,比如WIN7里有个选项“拖动时显示窗口内容”,选中与不选中导致对话框内容显示完全不一样,选中时错误,不选正确,确实让人头大。 如Ea

Sin_Geek成长の迹 3641
上一篇: 分解因式
下一篇: 第九篇 单步中断
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值