网站首页 > 编程文章 正文
在Win32环境下,怎么来创建常用的那些基本控件呢?通过MSDN可以知道,不管是创建窗口还是控件,都是通过CreateWindow或者CreateWindowEx这个函数来完成的,这两个函数除了多一个扩展风格之外,其他完全一样,下面以CreateWindow为例说明,该函数原型如下:
HWND CreateWindow(LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x, int y, int nWidth, int nHeight,
HWND hWndParent,
HMENU hMenu,
HANDLE hInstance,
PVOID lpParam );
参数如下:
lpClassName:窗口或控件的类名
lpWindowName:窗口或控件的名字或者文本
dwStyle:窗口或控件风格
x,y,nWidth,nHeight:窗口或控件的坐标和宽高
hWndParent:窗口或控件的父窗口
hMenu:窗口菜单或者控件的ID
hInstance:窗口实例,控件一般为空
lpParam:窗口或控件参数,会被传递到创建消息中去
那么具体怎么实现各个基本的控件呢?下面我们来一一创建。
创建标签/静态文本:
CreateWindow("STATIC", TEXT("Test Text"), WS_CHILD|WS_VISIBLE|SS_LEFT, 10, 10, 250, 30, hwnd, (HMENU)IDC_STATIC1, NULL, NULL);
通过该调用,就创建了一个静态文本。
创建button:
CreateWindow("BUTTON", TEXT("Open(&O)"), WS_CHILD|WS_VISIBLE, 170, 110, 90, 30,
hwnd, (HMENU)IDC_BUTTON1, NULL, NULL);
创建编辑框:
CreateWindow( "Edit", NULL, WS_CHILD|WS_VISIBLE|WS_BORDER, 10, 50, 250, 30,
hwnd, (HMENU)IDC_EDIT1, NULL, NULL);
创建控件容器Frame
CreateWindow("BUTTON", TEXT("颜色"), WS_CHILD|WS_VISIBLE|BS_GROUPBOX, 360, 90, 130, 140, hwnd, (HMENU)IDC_FRAME, NULL, NULL);
创建列表框:
CreateWindow("LISTBOX", NULL, WS_CHILD|WS_VISIBLE|LBS_STANDARD,
170, 150, 180, 100, hwnd, (HMENU)IDC_LISTBOX, NULL, NULL);
创建组合框:
CreateWindow("COMBOBOX", NULL, WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_SIMPLE,
500, 10, 190, 150, hwnd, (HMENU)IDL_ComboBoxSpl, NULL, NULL);
这些控件创建出来的效果如下:
这些控件可是不用MFC中的方式创建,纯手工打造,怎么样?是不是很简单,赶快去试试吧。
事实上,windows的所有控件都是用这个函数创建的,只是不同的控件的类不一样,更多的控件可以查MSDN。
大家如果对编程感兴趣,想了解更多的编程知识,解决编程问题,高手帮忙解决入门疑惑,我们这里有java高手,C++/C高手,windows/Linux高手,android/ios高手,请大家关注我的微信公众号:程序员互动联盟(coder_online)
- 上一篇: Win10一键修复所有dll缺失的方法
- 下一篇: 常用密码算法介绍
猜你喜欢
- 2025-05-27 复合填料和硫化温度对PEMFC垫片力学性能,分别有什么影响?
- 2025-05-27 基于机器视觉的安全气囊检测系统研究
- 2025-05-27 记录一次某MFC软件算法逆向之旅
- 2025-05-27 135单镜头反光照相机的发展历程——名不见经传的Chinon CM-1
- 2025-05-27 常用密码算法介绍
- 2025-05-27 Win10一键修复所有dll缺失的方法
- 2025-05-27 运行CAD提示“由于找不到msvcp140.dll无法继续执行代码”怎么办
- 2025-05-27 解决dll错误的终极指南:从诊断到修复全面解析
- 2025-05-27 软件提示:找不到 MSVCP140.dll,无法继续执行代码。简单修复过程
你 发表评论:
欢迎- 05-30欧姆龙CP1H系列PLC通讯扩展与数据采集
- 05-30轻松通过OPC UA协议访问西门子1500数据
- 05-30Smart200与Wincc的通信
- 05-30西门子PLC中的OPC UA应用
- 05-30上位机与MES数据交互的常用方案
- 05-30网关与PLC之间的通信
- 05-30Kepware连接时序数据库--Get!
- 05-30如何在OPC上进行两台PLC的数据交换
- 最近发表
- 标签列表
-
- spire.doc (70)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)