我写的是win32程序,添加一个窗口,然后调用DialogBoxParamW弹出窗口 在回调函数里 初始化时使用了一个
SetWindowPos(
hDlg,
HWND_TOPMOST,
0,
0,
0,
0,
3);这样做了以后有时候有效 有时候弹出的窗口还是躲在当前页面的后面,只有把当前页面最小化后才能看到,这样的话会误以为窗口没有弹出来  要怎么解决呢?

解决方案 »

  1.   

    参见MSDN  SetWindowPos  platform SDK
    Re Section
      

  2.   

    应该是修改窗口的属性吧,setwindows()
      

  3.   

    参见MSDN SetWindowPos platform SDK
    Re Section用setwindowpos能实现我的要求吗?
      

  4.   

    先保证你的hDlg句柄不为空,有效
    ::SetWindowPos(hDlg, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);
      

  5.   

    还要再作一次,把自己顶到前面来,否则如果前面有一个TOPMOST的,还是挡住再加一句:
    BringWindowToTop();// 意思是就带视窗到最前或SetForegroundWindow();// 设置为最前的视窗好像是这样写的。二选一,不同的情况有不同的效果,我好像是两句都加了,呵呵