程序是基于对话框的,可以在OnInitialDialog中用SetWindowPos使其在最前显示!我在最小化按钮中把程序图标加到了任务栏里,用ShowWindow(SW_HIDE)隐藏了窗口,在单击任务栏图标的消息响应函数里用ShowWindow(SW_SHOW)显示窗口可是窗口缩在了下边的工具栏里,非要鼠标单击一下才显示出来,用SetWindowPos也不管用请问,这种情况下该如何实现对话框窗口显示在最前???谢谢!

解决方案 »

  1.   

    int CYourDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CDialog::OnCreate(lpCreateStruct) == -1)
    return -1;
    SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0,  SWP_NOMOVE | SWP_NOSIZE );
    return 0;
    }
      

  2.   

    kpld8888(kpld) :我是要在消息响应函数里实现这个效果的!LRESULT CTestbuttonDlg::OnTaskbar(WPARAM wParam, LPARAM lParam)
    {
    UINT uMouseMsg = (UINT) lParam;

    switch (uMouseMsg)

    {
    case WM_LBUTTONDBLCLK: 

    ShowWindow(SW_SHOW);        //显示窗口
                      //???这里该加句什么???
    Shell_NotifyIcon(NIM_DELETE,&tnid);
    break;
             default: break;

    }
    return 0;

    }
      

  3.   

    1、要使窗口在前面显示SetForegroundWindow()应该就可以。
    2、想要在任务栏中点击图标时产生那种效果,可以在响应鼠标点击时弹出一个快捷菜单啊。
      

  4.   

    ShowWindow(SW_SHOWNORMAL);
    SetForegroundWindow();就可以显示了用
    ShowWindow(SW_SHOW);
    SetForegroundWindow();
    就不行真是马虎阿