日期:2014-05-17  浏览次数:20641 次

求救两个win api问题,不用MFC
用纯win api(不用MFC)怎么实现按下按钮显示一个有很多控件的登录界面,它没有跳转语句重绘界面好像也不行。第二个问题,在窗口过程的WM_CREATE中创建了子窗口,没有指明WS_VISIBLE,用ShowWindow使其显示。可是ShowWindow只能在WM_CREATE中才有效,放在其他消息中都是没反应的。假如要实现按下按钮时显示子窗口就没办法做到????
------最佳解决方案--------------------
代码有问题吧:
case WM_CREATE:
..........
  hwndtable = CreateWindow (TEXT("static"), TEXT ("静态文本"),....);
  return 0 ;  
  case WM_COMMAND:
  ShowWindow( hwndtable, SW_SHOWNORMAL );
  return 0;
=======================
很明显作用域的问题,能编译的过去吗?
------其他解决方案--------------------
1.使用CreateWindow动态创建,然后ShowWindow
2.UpdateWindow
3.ShowWindow只能在WM_CREATE中才有效----这说的不正确
------其他解决方案--------------------
可是我在WM_COMMAND中调用ShowWindow(子窗口句柄,SW_SHOWNORMAL);子窗口句柄是在WM_CREATE中用CreateWindow创建子窗口的返回值,可以在点击按钮时子窗口不显示。代码为:
case WM_CREATE:
..........
   hwndtable = CreateWindow (TEXT("static"), TEXT ("静态文本"),....);
   return 0 ; 
  case WM_COMMAND:
    ShowWindow( hwndtable, SW_SHOWNORMAL );
   return 0;
------其他解决方案--------------------
该回复于2012-08-18 10:11:32被版主删除
------其他解决方案--------------------
该回复于2012-08-18 10:11:13被版主删除
------其他解决方案--------------------
该回复于2012-08-18 10:11:13被版主删除
------其他解决方案--------------------
感谢agoago_2009,一语中的。还有一个问题:上面你说用CreateWindow动态创建,这动态创建是什么意思。而不能在WM_COMMAND中创建子窗口,代码这样运行时报错:
case WM_COMMAND::
hwndtable = CreateWindow (TEXT("static"), TEXT ("静态文本"),
                          WS_CHILD
------其他解决方案--------------------
SS_CENTER