关于网友提出的“ 子窗口无法被激活”问题疑问,本网通过在网上对“ 子窗口无法被激活”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 子窗口无法被激活
描述: 如图,我直接用VC++的向导生成了一个hello world 的应用程序(非MFC)
然后写了个什么都默认的window proc作为子窗口的proc:
LRESULT CALLBACK WndProcDoNothing(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_NCACTIVATE:
OutputDebugString(TEXT("child_nc_activate\n"));
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
再把子窗口给创建出来:
g_hwndChild = CreateWindow(TEXT("child_window"), TEXT(""), WS_CHILD|WS_VISIBLE|WS_OVERLAPPEDWINDOW|WS_CLIPSIBLINGS, 30, 30, 400, 300, hWnd, NULL, hInstance, NULL);
发现能改变大小,能拖动,但就是一直处于非激活状态,WM_NCACTIVATE消息一直收不到,用spy++看也是这样,请问如何激活它?
oh,我尝试过SetActiveWindow,没用的,无论怎么点都没用,能响应其它消息,但就是不能激活。
如图所示:
[img=http://album.hi.csdn.net/app_uploads/guogangj/20081204/172700014.p.png?d=20081204173325967][/img]
解决方案1: 把标题栏去掉。
解决方案2: 贴出完整代码,方便调试
以上介绍了“ 子窗口无法被激活”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2493842.html