Windows API一日一练(19)DestroyWindow函数

以前已经介绍过直接点击关闭按钮来关闭应用程序,但想删除一个窗口对象,需要用到什么函数的呢?比如创建了 30 个窗口,想把第 12 个窗口关闭删除掉,那就需要使用函数 DestroyWindow 。当调用 DestroyWindow 函数后,操作系统就会进行一系列的删除动作,先发送 WM_DESTROY 消息,接着发送 WM_NCDESTROY 消息。如果这个窗口还有子窗口或者是其它窗口的所有者,就需要给所有子窗口发送删除消息。
函数 DestroyWindow 声明如下:
WINUSERAPI
BOOL
WINAPI
DestroyWindow(
__in HWND hWnd);
hWnd 是要删除的窗口句柄。
调用这个函数的例子如下:
#001//
#002// 函数 : WndProc(HWND, UINT, WPARAM, LPARAM)
#003//
#004// 目的 : 处理主窗口的消息 .
#005//
#006// 蔡军生 2007/07/12 QQ:9073204
#007//
#008LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
#009 {
#010int wmId, wmEvent;
#011PAINTSTRUCT ps;
#012HDC hdc;
#013
#014switch (message)
#015{
#016case WM_COMMAND:
#017 wmId = LOWORD(wParam);
#018 wmEvent = HIWORD(wParam);
#019 // 菜单选项命令响应 :
#020 switch (wmId)
#021 {
#022 case IDM_ABOUT:
#023 DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
#024 break;
#025 case IDM_EXIT:
#026 DestroyWindow(hWnd);
#027 break;
#028 default:
#029 return DefWindowProc(hWnd, message, wParam, lParam);
#030 }
#031 break;
#032case WM_PAINT:
#033 hdc = BeginPaint(hWnd, &ps);
#034 //
#035 EndPaint(hWnd, &ps);
#036 break;
#037case WM_DESTROY:
#038 PostQuitMessage(0);
#039 break;
#040default:
#041 return DefWindowProc(hWnd, message, wParam, lParam);
#042}
#043return 0;
#044}
26 行是当收到菜单按钮退出命令的消息,就调用函数 DestroyWindow ,然后它发出消息 WM_DESTROY 给第 37 行那里进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值