VC中实现基于对话框的应用程序在启动时隐藏

博客介绍了在App类中将对话框模式创建改为非模式创建,设计当用户按下对话框OK键时程序退出。因程序主窗口初始隐藏,需键盘Hook,设计按下特定键或组合键时主窗口显示,具体细节可查阅资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要在App类中把对对话框的模式创建改为非模式创建。

具体方法如下:


CTestHideDialogDlg *dlg = new CTestHideDialogDlg();
 m_pMainWnd = dlg;
 if (dlg!=NULL) {
  BOOL ret = dlg->Create(IDD_TESTHIDEDIALOG_DIALOG);
  if(!ret){
   AfxMessageBox("Error creating Dialog");
   return FALSE;
  }
  dlg->ShowWindow(SW_HIDE);
  
 }
 else
  AfxMessageBox("Error Creating Dialog Object");

此时已经创建好了一个非模式对话框,并且初始是隐藏的。
接下来要添加消息循环的处理代码,否则程序会自动退出。

BOOL bRet;
MSG msg;

while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0 )
{
    if (bRet == -1 )
    {
    }
 else if (msg.message == WM_COMMAND && msg.wParam == IDOK) {
  break;
 }
 else if (!IsWindow(m_pMainWnd->m_hWnd) || !IsDialogMessage(m_pMainWnd->m_hWnd, &msg))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

此处设计为当用户按下对话框上的OK键时程序退出。
由于一开始程序主窗口是隐藏的,需要一个键盘的Hook,设计为当用户按下某个键或组合键时,程序主窗口显示出来。具体的细节不在此文中叙述,请查阅相关资料。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值