MiniGUI编程速查表

前言

自己学习MiniGui也快一年了,粗浅的学习了一下,本文是根据《MINIGUI-PROG-GUIDE-V3.0-C》中的内容整理而来,根据自己的理解做了一些分类,大部分都是一些函数的说明,方便自己以后学习MiniGui时查阅。现在分享出来,供大家一起学习。当然在学习的过程中也遇到过一些坑,像自定义控件,主窗口透明背景,窗口弹出动画啊,控件动画等等,有时间也会分享出来。


1 窗口的创建

1.1 创建函数

函数 含义 备注
CreateMainWindowEx 主窗口创建函数 以Ex结尾的函数都是新增加的函数
CreateWindowEx 控件的创建函数 以Ex结尾的函数都是新增加的函数
DialogBoxIndirectParamEx 模态对话框的创建函数 以Ex结尾的函数都是新增加的函数
CreateMainWindowIndirectParamEx 非模态对话框的创建函数 以Ex结尾的函数都是新增加的函数
CreateMainWindow 无扩展主窗口创建函数
CreateWindow 无扩展控件的创建函数
DialogBoxIndirectParam 无扩展模态对话框的创建函数
CreateMainWindowIndirectParam 无扩展非模态对话框的创建函数
CreateWindowEx2 对CreateWindowEx的封装

1.2 主窗口创建属性

属性 含义
CreateInfo.dwStyle 窗口风格
CreateInfo.spCaption 窗口的标题
CreateInfo.dwExStyle 窗口的附加风格
CreateInfo.hMenu 附加在窗口上的菜单句柄
CreateInfo.hCursor 在窗口中所使用的鼠标光标句柄
CreateInfo.hIcon 程序的图标
CreateInfo.MainWindowProc 该窗口的消息处理函数指针
CreateInfo.lx 窗口左上角相对屏幕的绝对横坐标,以象素点表示
CreateInfo.ty 窗口左上角相对屏幕的绝对纵坐标,以象素点表示
CreateInfo.rx 窗口右下角相对屏幕的绝对横坐标,以象素点表示
CreateInfo.by 窗口右下角相对屏幕的绝对纵坐标,以象素点表示
CreateInfo.iBkColor 窗口背景颜色
CreateInfo.dwAddData 附带给窗口的一个 32 位值
CreateInfo.hHosting 窗口消息队列的托管窗口

2 预定义的控件类

控件类 类名称 宏定义
静态框 “static” CTRL_STATIC
按钮 “button” CTRL_BUTTON
列表框 “listbox” CTRL_LISTBOX
单行编辑框 “sledit” CTRL_SLEDIT
多行编辑框 “mledit” CTRL_MLEDIT
文本编辑框 “textedit” CTRL_TEXTEDIT
单行双向文本编辑框 “bidisledit” CTRL_BIDISLEDIT
组合框 “combobox” CTRL_COMBOBOX
菜单按钮 “menubutton” CTRL_MENUBUTTON
进度条 “progressbar” CTRL_PROGRESSBAR
滑块 “trackbar” CTRL_TRACKBAR
工具栏 “newtoolbar” CTRL_NEWTOOLBAR
属性表 “propsheet” CTRL_PROPSHEET
滚动窗口控件 “ScrollWnd” CTRL_SCROLLWND
滚动型控件 “ScrollView” CTRL_SCROLLVIEW
树型控件 “treeview” CTRL_TREEVIEW
列表型控件 “listview” CTRL_LISTVIEW
月历 “MonthCalendar” CTRL_MONTHCALENDAR
旋钮控件 “SpinBox” CTRL_SPINBOX
酷工具栏 “CoolBar” CTRL_COOLBAR
动画控件 “Animation” CTRL_ANIMATION
网格控件 “gridview” CTRL_GRIDVIEW
图标型控件 “IconView” CTRL_ICONVIEW
滚动条控件 “ScrollBar” CTRL_SCROLLBAR

#3 风格

3.1 窗口通用风格

风格 含义 备注
WS_NONE 未指定任何风格
WS_CHILD 创建子窗口
WS_VISIBLE 创建初始可见的窗口
WS_DISABLED 创建初始被禁止的窗口
WS_CAPTION 创建含标题栏的主窗口 仅用于主窗口
WS_SYSMENU 创建含系统菜单的主窗口 仅用于主窗口
WS_BORDER 创建有边框的窗口
WS_THICKFRAME 创建具有厚边框的窗口
WS_THINFRAME 创建具有薄边框的窗口
WS_VSCROLL 创建带垂直滚动条的窗口
WS_HSCROLL 创建带水平滚动条的窗口
WS_MINIMIZEBOX 标题栏上带最小化按钮 仅用于主窗口
WS_MAXIMIZEBOX 标题栏上带最大化按钮 仅用于主窗口
WS_EX_NONE 无扩展风格
WS_EX_USEPRIVATECDC 使用私有DC 仅用于主窗口
WS_EX_TOPMOST 建立始终处于顶层的主窗口 仅用于主窗口
WS_EX_TOOLWINDOW 建立Tooltip主窗口 仅用于主窗口。Tooltip主窗口将不会拥有输入焦点,但仍接收鼠标消息
WS_EX_TRANSPARENT 透明窗口风格 仅用于控件
WS_EX_USEPARENTFONT 使用父窗口字体作为默认字体
WS_EX_USEPARENTCURSOR 使用父窗口光标作为默认光标
WS_EX_NOCLOSEBOX 主窗口标题栏上不带关闭按钮
WS_EX_CTRLASMAINWIN 建立可显示在主窗口之外的控件 仅用于控件
WS_EX_TROUNDCNS 左上角和右上角是圆角的窗口
WS_EX_BROUNDCNS 左下角和右下角是圆角的窗口
WS_EX_CLIPCHILDREN 调用BegainPaint获得DC并刷新窗口客户区时, 子窗口所占区域将被剪切;也就是说,向窗口客户区的输出不会输出到子窗口所在位置。 该风格将导致额外的内存占用并影响绘制效率。只有窗口的输出和其子窗口的输出发生重叠时才应使用该风格,一般的对话框窗口、属性页控件无需使用该风格。
WS_EX_LEFTSCROLLBAR 创建垂直滚动条在左侧的窗口
WS_EX_AUTOSECONDARYDC 双缓冲窗口扩展风格 仅用于主窗口

##3.2 控件风格

3.2.1 仅用于对话框控件的风格

风格 含义 备注
WS_GROUP 具有该风格的控件将成为同组控件的打头控件 从该控件到下一个WS_GROUP风格的控件之前的,或者下一个不同种类的控件之前的控件属于同一组
WS_TABSTOP 具有TAB键停止功能 当用户在对话框中使用TAB键和Shift-TAB键切换输入焦点时,具有该风格的控件可获得焦点

3.2.2 静态框风格

风格 含义 备注
SS_SIMPLE 显示单行文本 控件文本不会自动换行显示,并且文本永远是左对齐
SS_LEFT 左对齐 用来显示多行文本
SS_CENTER 中对齐 用来显示多行文本
SS_RIGHT 右对齐 用来显示多行文本
SS_LEFTNOWORDWRAP 扩展文本中的TAB符 但是不做自动换行处理
SS_BITMAP 显示一幅位图
SS_ICON 显示一幅图标
SS_CENTERIMAGE 居中显示 与SS_REALSIZEIMAGE一起使用,则取消缩放,居中显示
SS_REALSIZEIMAGE 消缩放操作,并显示在静态框的左上方 默认情况下,位图和图标要经过适当的缩放充满整个静态框
SS_GROUPBOX 分组框 是一个矩形框,分组框标题在其顶部显示,分组方块常用来包含其他的控件
SS_WHITERECT 以白色填充静态框矩形
SS_GRAYRECT 以灰色填充静态框矩形
SS_BLACKRECT 以黑色填充静态框矩形
SS_GRAYFRAME 灰色边框
SS_WHITEFRAME 白色边框
SS_BLACKFRAME 黑色边框
SS_NOTIFY 接收静态框消息

3.2.3 按钮风格

风格 含义 备注
BS_PUSHBUTTON 边框要细一些
BS_DEFPUSHBUTTON “DEF”代表“默认”,边框要粗一些 默认接收ENTER键输入的按钮,而不管当前的输入焦点处于哪个控件上
BS_MULTLINE 指定显示多行文本 通常情况下,按钮文本会以单行的形式在垂直和水平方向居中显示,不会自动换行
BS_LEFTTEXT 文本置于复选框的左边
BS_LEFT 文本在左边
BS_CENTER 文本在中间
BS_RIGHT 文本在右边
BS_TOP 文本在上边
BS_BOTTOM 文本在下边
BS_VCENTER 文本居中垂直
BS_BITMAP 普通按钮上显示位图
BS_ICON 普通按钮上显示图标
BS_REALSIZEIMAGE 使位图或图标显示在控件中部,不作任何缩放 默认情况下位图或图标会缩放显示以充满整个按钮窗口范围
BS_CHECKBOX 复选框 应用程序需要自己向该控件发送消息来设定选中标记
BS_AUTOCHECKBOX 复选框 控件会自动在选中和非选中状态之间切换
BS_3STATE 复选框 功能同上,复选框内是灰色的,这种状态表明该复选框不能被选择或者禁止使用
BS_AUTO3STATE 复选框 功能同上,复选框内是灰色的,这种状态表明该复选框不能被选择或者禁止使用
BS_PUSHLIKE 使复选框以普通按钮的形式显示 选中时显示为按下状态,未选中时显示为正常状态
BS_RADIOBUTTON 单选钮 它的行为很像复选框,圆圈内的加重圆点表示该单选按钮已经被选中
BS_AUTORADIOBUTTON 单选钮 自动显示用户的选择情况
BS_PUSHLIKE 使单选按钮以普通按钮的形式显示 选中时显示为按下状态,未选中时显示为正常状态
BS_NOTIFY 接收按钮消息

3.2.4 列表风格

风格 含义
LBS_MULTIPLESEL 多选列表框
LBS_USEICON 附带位图或者图标
LBS_CHECKBOX 在列表项旁边显示一个检查框
LBS_AUTOCHECK 自动切换选中状态
LBS_NOTIFY 选中某个列表项时产生通知消息
LBS_SORT 列表排序

3.2.5 编辑框风格

风格 含义
ES_UPPERCASE 可以使编辑框只显示大写字母
ES_LOWERCASE 可以使编辑框只显示小写字母
ES_PASSWORD 编辑框用来输入密码,但用星号(*)显示输入的字符
ES_READONLY 建立只读编辑框,用户不能修改编辑框中的内容,但插入符仍然可见
ES_BASELINE 在编辑框文本下显示虚线
ES_AUTOWRAP 用于多行编辑框,当文本超过控件边界时,将自动换行
ES_LEFT 指定非多行编辑框的对齐风格,实现文本的左对齐风格
ES_NOHIDESEL 编辑框在失去焦点时保持被选择文本的选中状态
ES_AUTOSELECT 编辑框在得到焦点时自动选中所有的文本内容(仅针对单行编辑框)
ES_TITLE 在编辑框的第一行显示指定的标题,只适用于多行编辑框控件
ES_TIP 当编辑框的内容为空时,在其中显示相关的提示信息;只适用于SLEDIT控件
ES_CENTER 指定非多行编辑框的对齐风格,实现文本的居中对齐风格
ES_RIGHT 指定非多行编辑框的对齐风格,实现文本的右对齐风格

其中适用于多行编辑框的风格有:ES_UPPERCASE, ES_LOWERCASE, ES_READONLY, ES_BASELINE, ES_AUTOWRAP, ES_NOHIDESEL,ES_TITLE
其中适用于单行编辑框的风格有:ES_UPPERCASE, ES_LOWERCASE, ES_READONLY, ES_BASELINE, ES_LEFT, ES_CENTER, ES_RIGHT,ES_PASSWORD,ES_NOHIDESEL,ES_AUTOSELECT,ES_TIP

3.2.6 组合框风格

风格 含义
CBS_SIMPLE 创建一个简单组合框
CBS_DROPDOWNLIST 创建下拉式组合框
CBS_SPINLIST 创建旋钮组合框
CBS_SPINARROW_TOPBOTTOM 箭头在内容的上下
CBS_SPINARROW_LEFTRIGHT 箭头在内容的左右
CBS_READONLY 使组合框的输入域成为只读区域
CBS_UPPERCASE 使键入编辑框中的文本自动变成大写
CBS_LOWERCASE 使键入编辑框中的文本自动变成小写
CBS_EDITBASELINE 使编辑框带有文本基线
CBS_SORT 使用该风格的组合框将自动对插入的条目进行排序
CBS_EDITNOBORDER 使得输入域不带边框
CBS_AUTOFOCUS 组合框在获得输入焦点之后,编辑框将自动获得输入焦点
CBS_AUTOSPIN 创建旋钮数字框,默认的最小值和最大值为0和100
CBS_AUTOLOOP 框中的数字将自动循环显示

3.2.7 菜单按钮风格

风格 含义
MBS_SORT 对菜单按钮中的条目进行排序显示
MBS_LEFTARROW 箭头显示在菜单按钮的左侧
MBS_NOBUTTON 不显示按钮
MBS_ALIGNLEFT 菜单按钮上的文字向左对齐
MBS_ALIGNRIGHT 菜单按钮上的文字向右对齐
MBS_ALIGNCENTER 菜单按钮上的文字居中对齐

3.2.8 进度条风格

风格 含义
PBS_NOTIFY 使用该风格的进度条控件会产生通知消息
PBS_VERTICAL 竖直显示进度条

3.2.9 滑块风格

风格 含义
TBS_NOTIFY 滑块产生通知消息
TBS_VERTICAL 创建竖直的滑块,默认情况下,滑块是水平的
TBS_TIP 滑块两端显示文字说明,还将在控件的中部显示当前刻度值
TBS_NOTICK 不显示刻度
TBS_BORDER 风格可使滑块带有边框,该风格不常用

3.2.10 工具栏风格

风格 含义
NTBS_HORIZONTAL 水平显示工具栏,这是默认风格
NTBS_VERTICAL 垂直显示工具栏
NTBS_MULTLINE 工具栏可多行显示,当工具项类型为NTBIF_NEWLINE时,将另起一行显示其后添加的工具项
NTBS_WITHTEXT 将在按钮下方或者按钮右边显示文本,默认显示在按钮位图的下方。这时,应用程序必须在添加按钮时指定按钮对应的文本。当文字在图标下方显示且按钮处于被激活状态时,按钮图片将突出显示
NTBS_TEXTRIGHT 配合NTBS_WITHTEXT风格使用时,该风格指定将文本显示在按钮位图的右边。当文字在图标右侧且按钮处于被激活状态时,按钮图片和文字都将突出显示
NTBS_DRAWSTATES 不使用按钮的高亮、按下以及灰化状态的位图单元,而改用三维风格的边框来表示这些状态
NTBS_DRAWSEPARATOR 绘制分隔条。默认情况下,工具栏上用来分隔按钮的分隔条是不会被绘制的,而只会加大两个按钮之间的间距。具有该风格之后,将绘制窄的分隔条

3.2.11 属性表风格

风格 含义
PSS_SIMPLE 所有的属性页凸舌具有相同的宽度
PSS_COMPACTTAB 属性页凸舌的宽度取决于属性页标题文本的长度
PSS_SCROLLABLE 属性页凸舌的宽度取决于属性页标题文本的长度,当属性页凸舌的数目过多时,将自动出现左右箭头用来调节当前可见的属性页凸舌
PSS_BOTTOM 属性页凸舌显示在属性表的下方,可以和上面三种风格同时配合使用

3.2.12 滚动型控件风格

风格 含义
SVS_AUTOSORT 对列表项进行自动排序,前提是先使用SVM_SETITEMCMP消息
SVM_SETITEMCMP 设置滚动型控件的列表项比较函数
SVM_SORTITEMS 来对列表项进行一次性的排序

3.2.13 树型控件风格

风格 含义
TVS_WITHICON 使用图标来显示每项的折叠和展开状态,相应的图标可以在创建节点项时指定,没有该风格使用一个带方框的“+”号来表示一个折叠的节点项,用带方框的“-”号来表示展开的节点项
TVS_SORT 对节点项进行自动排序
TVS_NOTIFY 将在响应用户操作时产生相应的通知消息和通知码

3.2.14 列表控件风格

风格 含义
LVS_TREEVIEW 支持以树型的方式来显示列表项
LVS_UPNOTIFY 指定列表型控件的在响应用户鼠标点击操作时的响应方式,默认情况下,如果没有指定LVS_UPNOTIFY风格,列表型控件将在鼠标按下时发出通知消息;如果指定了该风格,控件将在鼠标抬起时发出通知消息

3.2.15 月历控件风格

风格 含义
MCS_CHN 控件以中文显示日期信息
MCS_ENG_L 以英文显示日期信息
MCS_ENG_S 以简写的英文格式显示
MCS_NOTIFY 将在响应用户操作时等情况下产生相应的通知消息

3.2.16 旋钮控件风格

风格 含义
SPS_AUTOSCROLL 自动判断旋钮控件目前的滚动状态,在滚动到最大值和最小值时分别把向上和向下箭头禁止掉(变灰),没有该风格的旋钮控件的滚动状态由应用程序掌握

3.2.17 酷工具栏风格

风格 含义
CBS_BMP_16X16 酷工具栏的按钮项分别显示16x16的位图
CBS_BMP_32X32 酷工具栏的按钮项分别显示32x32的位图
CBS_BMP_CUSTOM 酷工具栏的按钮项使用自定义大小的位图
CBS_USEBKBMP 酷工具栏有背景位图

3.2.18 动画控件风格

风格 含义
ANS_AUTOLOOP 使用该风格之后,动画控件将自动重复播放动画
ANS_SCALED 根据控件大小缩放动画对象
ANS_FITTOANI 根据动画对象大小调整控件尺寸

3.2.19 独立滚动条风格

风格 含义
SBS_HORZ 创建一个水平滚动条。当没有指定SBS_BOTTOMALIGN或SBS_TOPALIGN,滚动条的范围根据CreateWindowEx2参数x,y,w,h决定
SBS_VERT 创建一个垂直滚动条。当没有指定SBS_LEFTALIGN或SBS_RIGHTALIGN,滚动条的范围根据CreateWindowEx2参数x,y,w,h决定
SBS_BOTTOMALIGN 与SBS_HORZ一起使用。放置水平滚动条在CreateWindowEx2指定范围的底部
SBS_TOPALIGN 与SBS_HORZ一起使用。放置水平滚动条在CreateWindowEx2指定范围的顶部
SBS_LEFTALIGN 与SBS_VERT一起使用。放置垂直滚动条在CreateWindowEx2指定范围的左边
SBS_RIGHTALIGN 与SBS_VERT一起使用,放置垂直滚动条在CreateWindowEx2指定范围的右边
SBS_NOARROWS 没有箭头,不能与SBS_NOSHAFT一起使用
SBS_NOSHAFT 没有shaft,不能与SBS_NOARROWS一起使用
SBS_FIXEDBARLEN 水平滚动条的thumb长度固定,或者垂直滚动条的thumb长度固定
SBS_NOTNOTIFYPARENT 向父窗口的通知发送方式不是发送通知码,而是发送消息;默认发送通知码

#4 通用窗口操作函数

函数 含义 备注
UpdateWindow 立即更新某个窗口
ShowWindow 显示或隐藏某个窗口
IsWindowVisible 判断某个窗口是否可见 控件和主窗口均可用
EnableWindow 使能或禁止某个窗口
IsWindowEnabled 判断某个窗口是否可用
GetClientRect 获取窗口客户区矩形
GetWindowRect 获取窗口矩形 屏幕坐标系中的窗口尺寸
GetWindowBkColor 获取窗口背景色
SetWindowBkColor 设置窗口背景色
GetWindowFont 获取窗口默认字体
SetWindowFont 设置窗口默认字体
GetWindowCursor 获取窗口光标
SetWindowCursor 设置窗口光标
GetWindowStyle 获取窗口风格
GetWindowExStyle 获取窗口扩展风格
GetFocusChild 获取拥有输入焦点的子窗口
SetFocusChild 设置焦点子窗口
GetWindowCallbackProc 获取窗口过程函数
SetWindowCallbackProc 设置窗口过程函数
GetWindowAdditionalData 获取窗口附加数据一
SetWindowAdditionalData 设置窗口附加数据一
GetWindowAdditionalData2 获取窗口附加数据二 对话框和控件在内部已使用附加数据二,保留附加数据一给应用程序使用
SetWindowAdditionalData2 设置窗口附加数据二
GetWindowCaption 获取窗口标题 通常用于主窗口
SetWindowCaption 设置窗口标题
InvalidateRect 使窗口的给定矩形区域无效 将引发窗口重绘
GetUpdateRect 获取窗口当前的无效区域外包矩形
ClientToScreen 将窗口客户区坐标转换为屏幕坐标
ScreenToClient 将屏幕坐标转换为客户区坐标
WindowToScreen 将窗口坐标转换为屏幕坐标
ScreenToWindow 将屏幕坐标转换为窗口坐标
IsMainWindow 判断给定窗口是否为主窗口
IsControl 判断给定窗口是否为控件
IsDialog 判断给定窗口是否为对话框
GetParent 获取窗口的父窗口句柄 主窗口的父窗口永远为HWND_DESKTOP
GetMainWindowHandle 返回包含某个窗口的主窗口句柄
GetNextChild 获取下一个子窗口 用于遍历某个窗口的所有子窗口
GetNextMainWindow 获取下一个主窗口句柄 用于遍历所有主窗口
GetHosting 获取某个主窗口的托管窗口
GetFirstHosted 获取某个主窗口的第一个被托管窗口 用于遍历某个主窗口的所有被托管窗口
GetNextHosted 获取下一个被托管窗口
GetActiveWindow 获取当前活动主窗口
SetActiveWindow 设置当前活动主窗口
GetCapture 获取当前捕获鼠标的窗口
SetCapture 捕获鼠标
  • 12
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
MiniGUI编程指南是关于如何使用MiniGUI进行图形用户界面(GUI)编程的指南。MiniGUI是一个轻量级的嵌入式图形用户界面开发框架,可以用于开发嵌入式设备上的GUI应用程序。 MiniGUI编程指南提供了有关MiniGUI框架的详细说明,包括MiniGUIMain函数的使用和程序入口的定义。根据引用中的描述,MiniGUIMain函数MiniGUI程序的入口,它接受两个参数argc和argv,用于处理命令行参数。 在编译MiniGUI应用程序时,根据引用中的描述,需要使用gcc编译器,并指定相应的编译选项和链接库。具体来说,需要链接minigui_procs、jpeg、png和z等库文件。 如果你想了解更多关于如何安装MiniGUI及其使用的信息,可以参考引用提供的网址,其中包含了在Linux PC上安装MiniGUI 3.0的教程。 综上所述,MiniGUI编程指南提供了使用MiniGUI进行GUI编程的详细说明,包括程序入口的定义和编译选项的使用。你可以参考该指南来学习和使用MiniGUI进行嵌入式GUI应用程序的开发。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MiniGUI学习日记一----MiniGUI基础编程篇](https://blog.csdn.net/weixin_41558261/article/details/119235608)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [MiniGUI学习整理](https://blog.csdn.net/liuxiaoxiaocsdn/article/details/79141630)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值