我创建了一个基于对话框的程序不过隐藏时会有屏幕一闪,请问如何隐藏才能不让用户感觉到。注意是基于对话框的程式。
解决方案 »
- OCX CToolBar提示信息显示不出来
- COBList问题
- VC下如何调用VB编写的DLL
- Winsock控件默认listen方法的连接队列的数目是5,怎样更改这个值的大小?
- 请问CHttpFile::QueryInfo如何能得到所有的HTTP都信息
- 如何更改静态控件的光标?
- 在WIN98下怎么注册不了DLL形式的支持MFC的COM组件呢?
- 寻求学"运筹学"的朋友
- 用realplayer和windows media player播放视频文件有什么区别?
- 请大虾指教:PorperSheet中的叶面转换
- CTreeCtrl的OnSelchangedTree1和OnSelchangingTree1
- 使用“use mfc in a static library”编译失败
把下面代码加到OnInitDialog()中
WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_HIDE;
SetWindowPlacement(& wp);
如果想不闪的话,把InitInstance里面INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此处放置处理何时用“确定”来关闭
// 对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用“取消”来关闭
// 对话框的代码
}
这段代码改成:dlg.Create(IDD_DIALOG);
dlg.ShowWindow(SW_HIDE);
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
DispatchMessage(&msg);
TranslateMessage(&msg);
}另外在对话框类的OnClose中加入SendMessage(WM_QUIT,0,0);
正确的方法可以分几个步骤
(1):将窗口去掉标题栏等属性。
(2):在窗体onpaint和onncpaint时将透明度设置为0,SetLayeredWindowAttributes(0, 255, LWA_ALPHA);(否则在有些机器上会有一块白色的过去) 隐藏ShowWindow(SW_HIDE);
(3):在任务栏不出现一闪而过,Dlg::OnInitDialog()中ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);使他不出现在任务栏
当然如果用win32程式的话不麻烦了。只要在init对话框的时候dlg.ShowWindow(SW_HIDE);
了