社区
C语言
帖子详情
基于对话框应用程序一启动后就隐藏窗口?
CloudWater
2002-09-19 04:03:11
问题很弱!:(
...全文
46
22
打赏
收藏
基于对话框应用程序一启动后就隐藏窗口?
问题很弱!:(
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
step_by_step
2002-09-20
打赏
举报
回复
给你看一段我写的程序,用SDK写的.
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
char szWinName[] = "WINMAIN";
MSG msg;
HWND hWnd;
WNDCLASSEX wcl;
hInst = hInstance;
wcl.cbClsExtra = 0;
wcl.cbSize = sizeof(WNDCLASSEX);
wcl.cbWndExtra = 0;
wcl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wcl.hCursor = LoadCursor(NULL, IDC_ARROW);
wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcl.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
wcl.hInstance = hInstance;
wcl.lpfnWndProc = WindowProc;
wcl.lpszClassName = szWinName;
wcl.lpszMenuName = NULL;
wcl.style = 0;
if(!RegisterClassEx(&wcl))
{
return 0;
}
hWnd = CreateWindow(
szWinName,
NULL,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if(!hWnd)
{
return 0;
}
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
在WinMain中不要调用ShowWindow()和UpdateWindow()这两个api则,就不会显示主窗口了,而且屏幕不会有窗口一闪而过.
然后在BOOL CALLBACK WindowProc();回调函数中创建对话框。这样的话主窗口就不会显示了,就直接显示对话框了。
CloudWater
2002-09-20
打赏
举报
回复
TO:孤独白痴
这是基于对话框的应用程序,请问CreateMainWindow在哪儿?
不好意思,小弟太弱!
samsung188
2002-09-20
打赏
举报
回复
在CreateMainWindow()函数里加下面一行就能实现
ShowWindow(hMainWnd, SW_HIDE);
lj9852
2002-09-20
打赏
举报
回复
在Dialog的OnInitDialog()中加入以下代码即可:
WINDOWPLACEMENT wp;
wp.length=sizeof(WINDOWPLACEMENT);
wp.flags=WPF_RESTORETOMAXIMIZED;
wp.showCmd=SW_HIDE;
SetWindowPlacement(& wp);
everandforever
2002-09-19
打赏
举报
回复
这样是不隐藏
BOOL CTest1App::InitInstance()
{
CTest1Dlg* pdlg = new CTest1Dlg;
m_pMainWnd = pdlg;
pdlg->Create( pdlg->IDD, NULL );
pdlg->ShowWindow(SW_SHOW);
return TRUE;
}
everandforever
2002-09-19
打赏
举报
回复
BOOL CTest1App::InitInstance()
{
CTest1Dlg* pdlg = new CTest1Dlg;
m_pMainWnd = pdlg;
pdlg->Create( pdlg->IDD, NULL );
pdlg->ShowWindow(SW_HIDE);
return TRUE;
}
失败,搞这么长时间,
记得要DELETE这个DIALOG.
CloudWater
2002-09-19
打赏
举报
回复
TO:Forever
这也不行,在某些情况下会异常退出;
Iamme
2002-09-19
打赏
举报
回复
代码是公司的
不如你把代码贴上来
//这本来不难啊
CloudWater
2002-09-19
打赏
举报
回复
我是基于对话框程序,用VC6,怎么就不能成功呢?
everandforever
2002-09-19
打赏
举报
回复
唉,解决方案:
BOOL CTest1App::InitInstance()
{
CTest1Dlg dlg;
dlg.Create( dlg.IDD, NULL );
m_pMainWnd = &dlg;
int nResponse = dlg.ShowWindow(SW_HIDE);
return TRUE;
}
CloudWater
2002-09-19
打赏
举报
回复
报内存不能读的错,给不给发一份完整代码我看看,是不是我的对话框风格和你们设置不一样呀?
TO:Forever
这样也不行:(
everandforever
2002-09-19
打赏
举报
回复
糟糕,这个也不行. 脸红啊~~
everandforever
2002-09-19
打赏
举报
回复
唉,这个才对.SORRY
重载PreCreateWindow函数
BOOL CTest1Dlg::PreCreateWindow(CREATESTRUCT& cs)
{
cs &= ~WS_VISIBLE;
return CDialog::PreCreateWindow(cs);
}
step_by_step
2002-09-19
打赏
举报
回复
给你看一段我写的程序,用SDK写的.
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
char szWinName[] = "WINMAIN";
MSG msg;
HWND hWnd;
WNDCLASSEX wcl;
hInst = hInstance;
wcl.cbClsExtra = 0;
wcl.cbSize = sizeof(WNDCLASSEX);
wcl.cbWndExtra = 0;
wcl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wcl.hCursor = LoadCursor(NULL, IDC_ARROW);
wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcl.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
wcl.hInstance = hInstance;
wcl.lpfnWndProc = WindowProc;
wcl.lpszClassName = szWinName;
wcl.lpszMenuName = NULL;
wcl.style = 0;
if(!RegisterClassEx(&wcl))
{
return 0;
}
hWnd = CreateWindow(
szWinName,
NULL,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if(!hWnd)
{
return 0;
}
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
在WinMain中不要调用ShowWindow()和UpdateWindow()这两个api则,就不会显示主窗口了,而且屏幕不会有窗口一闪而过.
everandforever
2002-09-19
打赏
举报
回复
重载 对话框的 OnCreate( LPCREATESTRUCT lpCreateStruct );函数(即WM_CREATE消息)
修改:
int C*::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
lpCreateStruct->style &= ~WS_VISIBLE;
return 0;
}
Iamme
2002-09-19
打赏
举报
回复
说详细点!
报什么错?
我这儿好好的
CloudWater
2002-09-19
打赏
举报
回复
TO:不死鸟
不行,而且在退出进还报错!
Iamme
2002-09-19
打赏
举报
回复
是在InitInstance()里用
CloudWater
2002-09-19
打赏
举报
回复
TO:Forever
不成功呀,是怎么回事?
everandforever
2002-09-19
打赏
举报
回复
ONINITDIALOG()
加载更多回复(2)
MFC中基于
对话框
的程序
启动
后自动
隐藏
本文简单介绍一下VC中基于
对话框
的程序
启动
后的自动
隐藏
技术。 有的程序需要在
启动
后立即
隐藏
主
窗口
,只在系统托盘区域显示一个图标,这常见于很多后台服务程序。对于基于
对话框
的程序,要实现此功能需要一点技巧...
VC中实现基于
对话框
的
应用程序
在
启动
时
隐藏
首先要在App类中把对
对话框
的模式创建改为非模式创建。具体方法如下:CTestHideDialogDlg *dlg = new CTestHideDialogDlg(); m_pMainWnd = dlg; if (dlg!=NULL) { BOOL ret = dlg->Create(IDD_TESTHIDEDIALOG_...
如何让基于
对话框
的MFC程序
启动
后自动
隐藏
对话框
有很多
应用程序
要求一起动就
隐藏
起来,这些程序多作为后台程序运行,希望不影响其他
窗口
, 往往只在托盘区显示一个图标。这些程序通常都是
对话框
程序,而
对话框
在初始化的过程上与SDI 、MDI的初始化是不同
vc 如何让
对话框
程序
启动
后
隐藏
有很多
应用程序
要求一起动就
隐藏
起来,这些程序多作为后台程序运行,希望不影响其他
窗口
, 往往只在托盘区显示一个图标。这些程序通常都是
对话框
程序,而
对话框
在初始化的过程上与SDI 、MDI的初始化是...
VC基于
对话框
,文档程序
启动
时
隐藏
窗口
总结
想让
对话框
程序
隐藏
启动
,然后需要时又可以显示。 刚开始我也想到在OnInitDialog()中加上ShowWindow(SW_HIDE),其实这样是不行的,不信自己去试验 找了网上的方法,都没有满足我的要求,自己总结了一个比较满意的...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章