//防止多实例
HANDLE hMutex=CreateMutex(NULL,TRUE, m_pszAppName);
if(GetLastError()==ERROR_ALREADY_EXISTS) { return FALSE; }
HANDLE hMutex=CreateMutex(NULL,TRUE, m_pszAppName);
if(GetLastError()==ERROR_ALREADY_EXISTS) { return FALSE; }
解决方案 »
- 如何在编辑框(CEdit)中显示阴影文字
- 如何判断我的窗口是否为顶层?
- 双网卡机器如何选择发送UDP广播的网卡
- mobile浏览器IDocHostUIHandler接口怎么建立
- 没分了……纯粹讨论一下——究竟MFC难在何处?
- 为什么说我的_beginthread和_endthread没有定义啊
- 帮帮我啊!
- 在一个多项目的程序中,如果一个项目下的文件需要用到另一个项目下某个文件的全局变量如何调用
- 关于msado15.dll的问题,很烦人,求教!!
- teechart VS2010下使用问题
- 谁有Visual Assist 4.1.3.1229 版本?送他100分
- 你 VC 学得如何?进来一测便知,还送分的哟!快来吧!
不要在收到鼠标消息的时候生成对话框,显示就可以了
用ShowWindow()
需要使对话框不见的时候也不要关闭它,隐藏它就可以了如果不是:
设个标志变量就解决了
ShowWindow(hDlg,SW_SHOW) - 显示
ShowWindow(hDlg,SW_MINIMIZE) - 最小化
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
);
根本就没有返回对话框的句柄。所以.......
我认为无法隐藏
定义一个全局变量HWND hDlgWnd;
在对话框的WM_INITDIALOG消息里把窗口句柄保存到全局变量中
然后ShowWindow(hDlg,SW_HIDE)
...
if(BoolTag==TRUE)
{
显示对话框
...
BooTag=FALSE;
}
注意BoolTag应该设为全局变量.
mouse clicked systrayicon时
if (hOnlyOneDlg)
SetForegroundWindow(hOnlyOneDlg);
else
{
......
createdialog
......
}
this is OK.