我做了一个托盘程序的对话框Demo,想一开始隐藏对话框,要怎样实现?
解决方案 »
- 请教 typedef 用法
- 链接错误:nafxcwd.lib(dcprev.obj) : error LNK2001: unresolved external symbol __mbctyp
- 怎样使同一窗口只打开一次,且内容已经更新
- 如何启动OutLook,并将一幅图片插入到邮件的正文部分?
- c c++ api与MFC中的文件函数区别
- CDC::SelectObject()函数的问题?
- 有关定时器,高手进来指点一下。
- 大家帮我看看我的进程怎么没有响应/回应?
- 求局域网搜索的有关源代码,只要能用就马上给分,不够可以加,加到我没有分都在所不惜
- 在响应一个按钮时,我动态的创建了一个按钮,为什么一闪就没了。
- 请问哪里有较完整的SDK开发包下载?
- BLock socket 的问题
BOOL YourApp::InitInstance()
{
pDlg=new CYourDialog;
pDlg->Create(CYouDialog::IDD,NULL);
return TRUE; // remeber
}void YourApp::ExitInstance()
{
pDlg->DestroyWindow();
delete pDlg;
}去掉对话框模中中的Visible属性
我知道这个ShowWindow(WM_HIDE);可以隐藏,但这个放在什么地方,才能达到,程序一开始运行,就隐藏。TO:flyhigh(一不小心)
这样就回立即退出程序了呀。如果不用
CPDMDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
因为InitInstance()返回的是TRUE,所以并不会退出程序如果用在对话框中的OnInitDialog()函数中调用SHOWWINDOWS(WM_HIDE),对话框的界面会闪烁一下,然后消失,行为并不好
SHOWWINDOWS(WM_HIDE);
放在OnPaint里。
设置对话框的visible属性为FALSE;
在CXXXXApp.h中加入:
CXXXXDlg *myDlg;
将m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);从构造函数中移到OnInitDialog函数中
在InitInstance函数中,进行修改如下:
{
……;//
myDlg=new CXXXXDlg;
m_pMainWnd=myDlg;
return myDlg->Creat(IDD_XXXX_DIALOG);
}
注意要在ExitInstance函数中通过delete来释放myDlg所指向的对象
pFrame->ShowWindow(SW_SHOW);
改为
pFrame->ShowWindow(SW_HIDE);
将CMainFrame文件的PreCreateWindow函数这样改:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style = WS_POPUP;
cs.dwExStyle |= WS_EX_TOOLWINDOW;
return CFrameWnd::PreCreateWindow(cs);
}之后,托盘图标的添加和销毁可以分别在CMainFrame::OnCreate和CMainFrame::OnDestory中来做。如果有对话框,就添加一个对话框类,在你的托盘图标事件中对该对话框进行处理就可以了。这样做,就不会出现程序启动时,窗口先闪一下再消失的情况了。