创建windows窗口后没有显示(DefWindowProc)

前段时间第一次敲了一边windows窗口创建的代码,发现运行后,窗口没有显示出来。


调试之后发现CreateWindow根本没有创建成功, 然后发现有调用到WinProCallBack,再仔细检查代码发现,自己没有在WinProCallBack定义默认的处理函数,也就是DefWindowProc,当然了,也要好好研究下为什么没有定义DefWindowProc就会出现窗口没有出来,但是一直可以运行的状态。

<span style="white-space:pre">	</span>ShowWindow(hwnd, nShowCmd);
	UpdateWindow(hwnd);

	MSG msg = {0};
	while(msg.message != WM_QUIT)
	{
		if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}

首先,并没有在ShowWindow和UpdateWindow加判断条件直接进入消息循环,但是没有窗口,也就没有窗口的消息。

其次,为什么没有出现窗口,因为在CreateWindow的时候,会发送4个WM消息,调用WinProCallBack,我们并没有对这4个WM消息的处理,同时也没有交给系统去做Create的相关工作,导致创建窗口失败。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值