windows子窗口控件---Win32

本文介绍了Windows应用程序中常用的UI控件操作方法,包括如何通过API获取窗口句柄、设置按钮状态及文字等,并详细解释了按钮消息处理机制及其通知码含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 



来源:
优快云    作者: chengxuetao    发布时间: 2007-11-22    人气: 313

 

1. 基本函数

1) 获得子窗口的父窗口

    hwndParent = GetParent(__in HWND hWnd);

    SendMessage(hwndParent, Msg, wParam, lParam )

    父窗口相应消息 :

    可以是 WM_USER 或更大

2)  获取应用程序实例:

    HINSTANCE hInstance;

    WM_CREATE:

             hInstance = ((LPCREATESTRUCT)lParam)->hInstance;

 

    HINSTANCE hInst = GetWindowLong(__in HWND hWnd, __in int nIndex);

    HINSTANCE hInst = GetWindowLong(hWnd, GWL_HINSTANCE); 

3) 由窗口句柄获得窗口 ID

    id = GetWindowLong(hChildWnd, GWL_ID);

    id = GetDlgCtrlID(hChildWnd);

4) 由父窗口句柄和子窗口 ID 获得子窗口句柄

    hChildWnd = GetDlgItem(hParentWnd, id);

2. 按钮 :

1) 消息类型

当用鼠标单击按钮时 , 子窗口控件就会向父窗口发送一个 WM_COMMAND 消息,消息含义如下:

 

LOWORD (wParam)

HIWORD (wParam)

lParam

子窗口 ID

通知码

子窗口句柄

通知码的含义:

 

按钮通知码标识符

BN_CLICKED

0

BN_PAINT

1

BN_HILITE or BN_PUSHED

2

BN_UNHILITE or BN_UNPUSHED

3

BN_DISABLE

4

BN_DOUBLECLICKED or BN_DBLCLK

5

BN_SETFOCUS

6

BN_KILLFOCUS

7

目前只使用通知码 6 7

2) 父窗口向子窗口发送消息

 

按钮消息

BM_GETCHECK

0x00F0

BM_SETCHECK

0x00F1

BM_GETSTATE

0x00F2

BM_SETSTATE

0x00F3

BM_SETSTYLE

0x00F4

BM_CLICK

0x00F5

BM_GETIMAGE

0x00F6

BM_SETIMAGE

0x00F7

SendMessage (hwndButton, BM_SETSTATE, 1, 0) ;

SendMessage (hwndButton, BM_SETSTATE, 0, 0) ;

SendMessage ((HWND) lParam, BM_SETCHECK, (WPARAM) !SendMessage ((HWND) lParam, BM_GETCHECK, 0, 0), 0) ;

3) 设置按钮文字

     SetWindowText(__in HWND hWnd, __in_opt LPCSTR lpString)

     SetWindowText(hChildWnd, pszString);

     iLength = GetWindowText (hwnd, pszBuffer, iMaxLength) ;

     iLength = GetWindowTextLength (hwnd) ;

4) 可见的和启用按钮

    ShowWindow (hwndChild, SW_SHOWNORMAL) ;

    ShowWindow (hwndChild, SW_HIDE) ;  // SW_VISIBLE

    BOOL b = IsWindowVisible(hwndChild);

    EnableWindow(hwndChild, FALSE);     // TRUE

    IsWindowEnabled (hwndChild) ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值