隐藏窗体的问题 我做了一个对话框程序,我想在程序一运行时就把对话框隐藏起来,该如何办到啊?我在oninitdialog里调用ShowWindow(SW_HIDE),但不成功,这是怎么回事啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在InitInstance()中,ShowWindow(SW_HIDE) 我瞎说了,不好意思,这台机器没有vc。在oninitdialog里调用ShowWindow(SW_HIDE) 2次 修改InitInstance(),不要用有模式对说框,改成无模式的就成了。。我不明白的是,不要对话框,为什么不用console程序呢? 把ShowWindow(SW_HIDE);加在OnPaint() 里面就可以 的 hide dialog at startupvoid CHidedlgDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) {if (lpwndpos->flags & SWP_SHOWWINDOW) { lpwndpos->flags &= ~SWP_SHOWWINDOW; PostMessage(WM_WINDOWPOSCHANGING, 0, (LPARAM)lpwndpos); ShowWindow(SW_HIDE); }else CDialog::OnWindowPosChanging(lpwndpos); }通过重载DoModel、RunModelLoop可以解决问题这是斑竹的解答,但我看不懂,谁可以解释一下啊?如何重载DoModel,RunModelLoop啊? 怎么那么麻烦呀。不就是在一开始隐藏窗体吗。在窗体的属性里的more styles里有一个可见属性,把钩去了就可以了。 对于Dialog的隐藏——方法一要到void CMyTrayDlg::OnPaint()函数中加一句 //CMyTrayDlg你的对话框类AfxGetMainWnd()->ShowWindow(SW_HIDE);就可以了,不过这种方法总是会存在程序一闪而过的现象。方法二使用移动程序界面出可视区域的办法 在对话框类(CXXXXDlg)的初始化函数InitInstance()中加入 //移动对话框到不可见区域 this->MoveWindow(-500,-500,100,100,true); //设置对话框属性,使其不在任务栏上显示 SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE, WS_EX_TOOLWINDOW|WS_EX_STATICEDGE); UpdateWindow();方法三不说了,上面的够用了吧。 学习中遇到些问题!!~ 鼠标放在子菜单上时,如何响应某个事件? VC中的timer控件在哪里? 怎样将本程序的stdout输出信息获取,在editbox上实时显示?(请教高手) 如何获取局域网内远程计算机硬盘的分区,以及如何得到具体分区的大小/使用情况。 高分 Source Safe的奇怪问题,请各位帮忙看看! 谁能帮我这个忙??? 怎么单独刷新一个文件? 请教是for中定义的变量超出for就会被析构么? 我想学vc,各位有什么建议? (HBRUSH)::GetStockObject(WHITE_BRUSH);中的(HBRUSH)是什么意思,有什么作用? 请教大家关于状态栏的一个问题!
void CHidedlgDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
if (lpwndpos->flags & SWP_SHOWWINDOW) {
lpwndpos->flags &= ~SWP_SHOWWINDOW;
PostMessage(WM_WINDOWPOSCHANGING, 0, (LPARAM)lpwndpos);
ShowWindow(SW_HIDE);
}
else
CDialog::OnWindowPosChanging(lpwndpos);
}
通过重载DoModel、RunModelLoop可以解决问题
这是斑竹的解答,但我看不懂,谁可以解释一下啊?
如何重载DoModel,RunModelLoop啊?
在窗体的属性里的more styles里有一个可见属性,把钩去了就可以了。
要到
void CMyTrayDlg::OnPaint()函数中加一句 //CMyTrayDlg你的对话框类
AfxGetMainWnd()->ShowWindow(SW_HIDE);
就可以了,不过这种方法总是会存在程序一闪而过的现象。方法二
使用移动程序界面出可视区域的办法
在对话框类(CXXXXDlg)的初始化函数InitInstance()中加入 //移动对话框到不可见区域
this->MoveWindow(-500,-500,100,100,true);
//设置对话框属性,使其不在任务栏上显示
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
WS_EX_TOOLWINDOW|WS_EX_STATICEDGE); UpdateWindow();方法三
不说了,上面的够用了吧。