windows基础应用程序编程(八)控件简介(一)

本文介绍了Windows基础应用程序编程中的控件使用,包括子窗口的概念和实现,以及静态类和按钮类的详细讲解,涵盖了下压按钮、复选框、单选按钮、分组框和自绘按钮等常见控件类型。
摘要由CSDN通过智能技术生成
至今为止,我们的程序都是建立在一个窗口类,一个窗口回调函数的基础上的。但是我们的程序往往不止一个窗口,我们在程序中有着多个窗口。多个按钮等(按钮也是窗口,之后解释)。那么,如果要生成多个窗口,我们可能就需要不止一个窗口回调函数,下面我们首先来介绍一下子窗口的概念,之后,再来了解windows系统为我们提供的一些控件窗口的使用。

子窗口

我们在程序中,往往需要多个窗口。这些窗口把客户区划分成多个逻辑区域。每个子窗口都有自己的窗口句柄。窗口过程和客户区。每个窗口过程接受只适用于它的子窗口鼠标消息。使用子窗口能够有助于我们程序的结构化和模块化。不同的窗口可以使用不同的窗口类。下面我们首先演示一下,如何手动的去创建一个子窗口。
假设我们建立四个子窗口,每个子窗口都响应鼠标左键单击消息,当单击下左键,程序将在子窗口绘制一个黑色的实心圆。
我们首先声明子窗口处理函数,如下所示:
LRESULT CALLBACK ChildProc(HWND, UINT, WPARAM, LPARAM);
之后,如果我们想要生成一个窗口,根据第一篇文章可知,我们应该首先注册一个窗口类,然后才能去创建它,如下所示:
                 if( !RegisterClassEx(&wcex) )
                {
                                MessageBox( NULL, TEXT( "ERROR"), TEXT("ERROR" ), MB_ICONERROR );
                }

                wcex.lpfnWndProc = ChildProc;
                wcex.hIcon = NULL;
                wcex.lpszClassName = TEXT( "ChildWindow");
                wcex.cbWndExtra = sizeof(long );
                
                 if( !RegisterClassEx(&wcex) )
                {
                                MessageBox( NULL, TEXT( "ERROR"), TEXT("ERROR" ), MB_ICONERROR );
                }

第一次注册的窗口类是我们的父窗口,第二次注册的窗口类是我们子窗口。其中父窗口的窗口回调函数如下所示:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
                 static HWND HChildWnd[2][2];
                 int x, y;
                 int cxSize, cySize, cxBlock, cyBlock;

                 switch( message )
                {
                 case WM_CREATE:
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值