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.iBkColor窗⼝背景颜⾊
CreateInfo.dwAddData附带给窗⼝的⼀个 32 位值
CreateInfo.hHosting窗⼝消息队列的托管窗⼝
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创建带垂直滚动条的窗⼝
gridview不显示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箭头在内容的左右
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论