请问WM_ACTIVATEAPP是什么消息?它的副消息又是什么
我初学directx,看到以下语句:
switch(message){
case wm_activateapp:
bactive = wparam;
break;
。。。
case wm_timer:
if(bactive){
if(lpddback->getdc(&hdc) == dd_ok){
setbkcolor(hdc, rgb(0,0,255));
settextcolor(hdc, rgb(255,255,0));
if(phase){
textout(hdc,0,0,szmsgfront,lstrlen(szmsgfront));
phase = 0;
}else{
textout(hdc,0,0,szmsgback,lstrlen(szmsgback));
phase = 1;
}
lpddback->releasedc(hdc);
}
while(1){
hresult ddrval;
ddrval = lpddprimary->flip(null, ddflip_wait);
if(ddrval == dd_ok) break;
if(ddrval == dderr_surfacelost){
ddrval = lpddprimary->restore();
if(ddrval != dd_ok) break;
}
if(ddrval != dderr_wasstilldrawing) break;
}
}
break;
bactive 和 phase都是一个参考变量。程序是将页面刷新,在initdirectdraw时
已经初始化了主页面和后台页面,但我不清楚if(bactive){}一段的功能,能不帮我解释一下,谢谢了。
推荐阅读
若窗口被激活,然后获得设备据柄,绘制视图,最后循环等待,如果激活其它窗口,则保存该窗口位置,否则继续等待消息!
wparam是true,或者false,表示得到或失去焦点
.

讨论区