API之子窗口创建

 

子窗口的创建非常非常重要

步骤:1、新建窗口类,在窗口类中指名对应的自定义的窗口过程。窗口类类名要唯一,它     

         是各窗口类相互区别的标识。注意,类名或为静态变量,或为全局变量,因为程

         序随时都用他们。

      2、创建窗体时,指定其风格之一为WS_CHILD, 指定其父窗口句柄,得到父窗体实

         例句柄,并赋给子窗体。

      3、在主窗体的create消息中,创建0尺寸的子窗体,主窗体的size消息中,利用

        movewindow函数,重设窗体大小,重置窗体位置。

实例为CTRL002,CTRL003

实例CTRL001单击按钮显示对应文字

子窗口向父窗口发送消息

CreateWindow呼叫使用下面这些参数:

Class name(类别名称)

Window text(窗口文字)

Window style(窗口样式)

x position(x位置)

y position(y位置)

Width(宽度)

Height(高度)

Parent window(父窗口)

Child window ID(子窗口ID)

Instance handle(执行实体句柄

)Extra parameters(附加参数)

TEXT ("button")

button[i].szText

WS_CHILD|WS_VISIBLE|button[i].iStyle

cxChar

cyChar * (1 + 2 * i)

20 * xChar

7 * cyChar / 4

hwnd

(HMENU)i

((LPCREATESTRUCT) lParam) -> hInstance

NULL

 

 

说明:从WM_COMMAND区别出单击了哪个按钮。通过子窗口的ID号来区分。每个子窗口在创建时,就已经分配了一个唯一的ID号。ID号包含在WM_COMMAND消息中wParam的低字节位。用LOWORD()宏来获取ID。

      “用鼠标单击按钮时,子窗口控制就向其父窗口发送一个WM_COMMAND消息。...捕获WM_COMMAND消息....”

       “LOWORD(wParam)   子窗口ID

         HIWORD(wParam)    通知码

         lParam              子窗口句柄”

 

 

 

实例CTRL002 利用多个静态窗体绘制棋盘

说明:1、窗体类别必需是static类,否则程序不能生成静态窗体

      2、利用GetWindowLong得到窗体实例句柄

      3、HWND是数值类型,可以定义成数组

      4、创建子窗体时,将大小设为0,以便重置

      4、利用movewidow(...)函数重置静态子窗体位置

 

 

运行结果如下图

result1 chess

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值