在Win32 SDK环境下,怎么来创建常用的那些基本控件呢?我们知道如果用MFC,简单的拖放即可完成大多数控件的创建,但是我们既然是用Windows SDK API编程,当然是从根上解决这个问题,实际上MFC的下层也是通过这些API完成的。 实际上控件也是窗口,只不过是被微软预先创建好的一种窗口类,比如button就是一个类名为“BUTTON”的类。既然控件实际上是窗口,当然也是用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(TEXT("STATIC"), TEXT("Test String"), WS_CHILD|WS_VISIBLE, 10, 10, 80, 20, hWnd, (HMENU)IDC_STATIC1, NULL, NULL); 创建button CreateWindow(TEXT("BUTTON"), TEXT("Click Me"), WS_CHILD|WS_VISIBLE, 10, 40, 80, 20, hWnd, (HMENU)IDC_BUTTON1, NULL, NULL); 创建编辑框 CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), NULL, WS_CHILD|WS_VISIBLE|WS_BORDER, 10, 70, 80, 20, hWnd, (HMENU)IDC_EDIT1, NULL, NULL); 创建Groupbox CreateWindow(TEXT("BUTTON"), TEXT("frame"), WS_CHILD|WS_VISIBLE|BS_GROUPBOX, 120, 10, 130, 50, hWnd, (HMENU)IDC_FRAME1, NULL, NULL); 创建单选框 CreateWindow(TEXT("BUTTON"), TEXT("radio button"), WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON, 13
【Windows编程】系列第二篇:Windows SDK创建基本控件
最新推荐文章于 2024-02-03 19:05:15 发布
本文详细介绍了如何使用Windows SDK中的CreateWindow和CreateWindowEx函数来创建常见的控件,如静态文本、按钮、编辑框、组合框等。通过实例代码展示了每个控件的创建过程,并提供了一个包含多种控件的完整Windows程序示例,帮助读者理解Windows SDK编程中的控件创建方法。
摘要由CSDN通过智能技术生成