MessageBox怎么做事情老是出错怎么办错

4055人阅读
MFC VS2010语法问题
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:387052次
积分:3640
积分:3640
排名:第9118名
原创:61篇
评论:50条
(2)(2)(8)(16)(8)(1)(13)(1)(2)(7)(1)(2)(1)下次自动登录
现在的位置:
下面的程序用5种方法,关闭弹出的MessageBox对话框:
首先,创建定时器和弹出MessageBox:
void CTestDlg::OnBnClickedButton1()  {      //启动一个定时器,用于自动触发关闭MessageBox对话框      SetTimer(1, 1000, NULL);        //启动一个MessageBox对话框,并检查它的返回值      int ret = MessageBox(&Hello&, &MyMessageBox&, MB_YESNO);      if (ret == IDYES)      {          TRACE(&按钮【YES】被按下\n&);      }      else if(ret == IDNO)      {          TRACE(&按钮【NO】被按下\n&);      }  } 
然后,在定时器回调中:
void CTestDlg::OnTimer(UINT_PTR nIDEvent)  {      // TODO: 在此添加消息处理程序代码和/或调用默认值      if (nIDEvent == 1)      {          HANDLE hWnd = ::FindWindowEx(NULL, NULL, NULL, &MyMessageBox&);          //HANDLE hWnd = ::GetForegroundWindow();          if (hWnd)          {              TRACE(&发现了MyMessageBox窗口\n&);                  //              // 第一种方法:直接发送 WM_CLOSE 消息。              //              ::SendMessage((HWND)hWnd, WM_CLOSE, NULL, NULL);                  //              // 第二种方法:              //              ::EndDialog((HWND)hWnd, IDNO);                  //              // 第三种方法:模拟窗口消息点击了【IDNO】按钮              //              HWND h = ::GetDlgItem((HWND)hWnd, IDNO);              if(h)              {                  TRACE(&找到了IDNO控件窗口\n&);                  ::PostMessage((HWND)hWnd, WM_COMMAND, MAKEWPARAM(IDNO, BN_CLICKED), (LPARAM)h);              }                  //              // 第四种方法:模拟鼠标移到了【IDNO】按钮上点击              //              HWND h = ::GetDlgItem((HWND)hWnd, IDNO);              if(h)              {                  TRACE(&找到了IDNO控件窗口\n&);                  POINT                  CR                  ::GetWindowRect(h, &rc);                  pt.x = rc.left+10;                  pt.y = rc.top+10;                  SetCursorPos(pt.x, pt.y);//鼠标移到了【IDNO】按钮上                    //完成点击                  mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0);                  mouse_event(MOUSEEVENTF_LEFTUP|MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0);              }                //              // 第五种方法:模拟键盘回车关闭对话框              //              keybd_event(VK_RETURN, 0, 0,0);              keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP,0);            }        }        CDialog::OnTimer(nIDEvent);  } 
【上篇】【下篇】
您可能还会对这些文章感兴趣!
百度站内搜索
同分类最新文章2010年1月 挨踢职涯大版内专家分月排行榜第二2009年12月 挨踢职涯大版内专家分月排行榜第二2009年10月 挨踢职涯大版内专家分月排行榜第二2009年7月 挨踢职涯大版内专家分月排行榜第二2009年4月 挨踢职涯大版内专家分月排行榜第二2009年2月 挨踢职涯大版内专家分月排行榜第二
2009年11月 挨踢职涯大版内专家分月排行榜第三2009年6月 挨踢职涯大版内专家分月排行榜第三2009年5月 挨踢职涯大版内专家分月排行榜第三
2012年4月 VC/MFC大版内专家分月排行榜第一
2012年5月 VC/MFC大版内专家分月排行榜第二2012年3月 VC/MFC大版内专家分月排行榜第二2011年7月 VC/MFC大版内专家分月排行榜第二2011年1月 VC/MFC大版内专家分月排行榜第二2010年12月 VC/MFC大版内专家分月排行榜第二2010年9月 VC/MFC大版内专家分月排行榜第二2010年6月 VC/MFC大版内专家分月排行榜第二2010年5月 VC/MFC大版内专家分月排行榜第二2010年4月 VC/MFC大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。2010年 总版技术专家分年内排行榜第一2009年 总版技术专家分年内排行榜第一
2011年 总版技术专家分年内排行榜第二
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 守夜人怎么老是出错 的文章

 

随机推荐