RegisterClassEx、CreateWindow、DefWindowProc

RegisterClassEx::该函数为随后在调用Createwindow函数和CreatewindowEx函数中使用的窗口注册一个窗口类。

1 ,CCommon::CreateRegWnd(REG_WND_DOWNLOAD_CASE, CCommon::RegWndProc_Default);

2,HWND CCommon::CreateRegWnd( const wstring & regWndName, const RegWndProc regWndProc )
{
WNDCLASSEX wcex = {0};
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.lpfnWndProc = regWndProc;
wcex.lpszClassName = regWndName.c_str();
ATOM ret =  RegisterClassEx(&wcex);

return CreateWindow(regWndName.c_str(), NULL, WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, NULL, NULL);
}

3,LRESULT CALLBACK CCommon::RegWndProc_Default( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
switch (message)
{
case OTS_MSG_CLOSE:
exit(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}

DefWindowProc函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理。该函数确保每一个消息得到处理。

调用DefWindowProc函数时使用窗口过程接收的相同参数。

Defwindowproc是wind32的缺省消息处理函数。要知道win32程序是消息驱动的,即程序员接收消息(主要来自于用户的界面操作如按键、鼠标点击),并处理消息。如果程序员没处理某个消息,则系统会最后替你处理:就是调用Defwindowproc。(你也能调用它)
DefWindowProc这个函数是默认的窗口处理函数,我们可以把不关心的消息都丢给它来处理。这个函数在处理关闭窗口消息WM_CLOSE时,是调用DestroyWindow函数关闭窗口并且发WM_DESTROY消息给应用程序;而它对WM_DESTROY这个消息是不处理的(考虑为什么?);我们在应用程序中对这个消息的处理是发出WM_QUIT消息。因此WM_CLOSE、WM_DESTROY、WM_QUIT这三个消息是先后产生的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值