如何使一个对话框程序不显示(闪一下也不行)?
如题。
注意:网上有一种自认为不错的解决方法是这样的:
把对话框属性的visible属性去掉,然后重载WM_SHOWWINDOW消息,如下:
void CTestDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
if( GetStyle() & WS_VISIBLE )
CDialog::OnShowWindow(bShow, nStatus);
else
{
long Style = ::GetWindowLong(*this, GWL_STYLE);
::SetWindowLong(*this, GWL_STYLE, Style | WS_VISIBLE);
CDialog::OnShowWindow(SW_HIDE, nStatus);
}
}
是不行的,虽然窗口的确不显示了(闪都不闪一下),但把鼠标移动到对话上面的按钮、编辑框等控件上时(或点一下,注意我是指移动到按钮等控件的位置上,因为控件是看不见的,所以要多试几次才能找到),这个时候控件会显示出来,最后的效果就是屏幕上出现一堆看起来没有容器包装的按钮、编辑框等(就是一堆按钮挂在屏幕上,看不到主窗口,让不懂人感觉是被黑了)。
申明一下,不确定者请先自己试试,不要盲目自信,我要的效果是不闪。
注意:网上有一种自认为不错的解决方法是这样的:
把对话框属性的visible属性去掉,然后重载WM_SHOWWINDOW消息,如下:
void CTestDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{
if( GetStyle() & WS_VISIBLE )
CDialog::OnShowWindow(bShow, nStatus);
else
{
long Style = ::GetWindowLong(*this, GWL_STYLE);
::SetWindowLong(*this, GWL_STYLE, Style | WS_VISIBLE);
CDialog::OnShowWindow(SW_HIDE, nStatus);
}
}
是不行的,虽然窗口的确不显示了(闪都不闪一下),但把鼠标移动到对话上面的按钮、编辑框等控件上时(或点一下,注意我是指移动到按钮等控件的位置上,因为控件是看不见的,所以要多试几次才能找到),这个时候控件会显示出来,最后的效果就是屏幕上出现一堆看起来没有容器包装的按钮、编辑框等(就是一堆按钮挂在屏幕上,看不到主窗口,让不懂人感觉是被黑了)。
申明一下,不确定者请先自己试试,不要盲目自信,我要的效果是不闪。
...全文
相关推荐
mastercam软件打开对话框显示不全的点不了确定解决方法
Mastercam官方建议分辨率为1920*1080 最小分辨率为1280*1024 很多朋友的笔记本分辨率为 1366*768 自然点不到确定按钮
java显示消息对话框
java 编写显示消息对话框 入门资料了解原理
MFC之对话框程序创建状态栏 并在状态栏上显示时间
环境:win7 ,VS2010 对话框程序。 语言:C++ 功能:1.在对话框程序中添加状态栏 2.在状态栏中显示时间。 3.时间实时更新。 逻辑:对话框中先手动添加状态栏。而后通过Ctime类获取系统时间实时显示到某一控件上。在主对话框中添加WM_Timer消息。一秒重新调用一次获取时间函数及控件显示的东西。 缺点:未实现居中显示。
MFC对话框程序添加状态栏随窗口大小变化,动态显示时间
MFC对话框程序添加状态栏随窗口大小变化,动态显示时间,代码中有详细注解
VC让对话框程序不在任务栏中显示
摘要:VC/C++源码,系统相关,任务栏,对话框 本例子将向大家介绍如何使基于VC++的对话框程序不在任务栏中显示,大家都知道,一般程序窗口打开的时候,在Windows的任务栏中会有显示,以方便大家的控件,不过也有时候,像一些恶意程序,会隐藏掉在任务栏显示的功能,或用其它方法实现这一功能,本代码将为您提供一份有力的参考,虽然程序代码都挺简单。


