//防止多实例
HANDLE hMutex=CreateMutex(NULL,TRUE, m_pszAppName); 
if(GetLastError()==ERROR_ALREADY_EXISTS) { return FALSE; }

解决方案 »

  1.   

    我这里有5000多个vc 的源代码光盘,每张15元,源代码包括方方面面的内容,欢迎定购www.wlxf.com
      

  2.   

    如果你是基于对话框的程序:
    不要在收到鼠标消息的时候生成对话框,显示就可以了
    用ShowWindow()
    需要使对话框不见的时候也不要关闭它,隐藏它就可以了如果不是:
    设个标志变量就解决了
      

  3.   

    ShowWindow(hDlg,SW_HIDE) - 隐藏
    ShowWindow(hDlg,SW_SHOW) - 显示
    ShowWindow(hDlg,SW_MINIMIZE) - 最小化
      

  4.   

    用dialogbox建的对话框能隐藏吗?
      

  5.   

    int DialogBox(
      HINSTANCE hInstance,  // handle to application instance
      LPCTSTR lpTemplate,   // identifies dialog box template
      HWND hWndParent,      // handle to owner window
      DLGPROC lpDialogFunc  // pointer to dialog box procedure
    );
     
    根本就没有返回对话框的句柄。所以.......
    我认为无法隐藏
      

  6.   

    你难道不是通过点击对话框里的一个按钮来隐藏对话框的吗?如果不是的话只好这样了:
    定义一个全局变量HWND hDlgWnd;
    在对话框的WM_INITDIALOG消息里把窗口句柄保存到全局变量中
    然后ShowWindow(hDlg,SW_HIDE)
      

  7.   

    设置一个布尔值变量BoolTag,初始化是设为FALSE,当点击图标时,设为TRUE,然后判定如下:
    ...
    if(BoolTag==TRUE)
    {
      显示对话框
     ...
     BooTag=FALSE;
    }
    注意BoolTag应该设为全局变量.
      

  8.   

    定义一个句柄变量hOnlyOneDlg存储要弹出的dialog的句柄,当dialog.enddialog时hOnlyOneDlg=NULL。
    mouse clicked systrayicon时
    if (hOnlyOneDlg)
      SetForegroundWindow(hOnlyOneDlg);
    else
    {
      ......
      createdialog
      ......
    }
    this is OK.
      

  9.   

    苯,你用指针来访问,DoModal()后,删除,下一次判断指针是否为空,这样就可以了
      

  10.   

    都太复杂,用模式对话框,DoModal()不关闭对话框是不会返回的,所以你再点击也不会出现新的对话框