MFC程序 关闭程序窗口

建立一个对话框。

添加一个列表框,改变按钮 OK 的标题为 Close,删除 Cancel 按钮。将对话框的标题改为 TerminateTask。

在对话框中添两个按钮,标题分别为 Close App 和 Quit App。

CTerminateTaskDlg的OnInitDialog 方法中添加如下代码

BOOL CTerminateTaskDlg::OnInitDialog()
  {
      CDialog::OnInitDialog();
      CListBox * list=(CListBox *)GetDlgItem(IDC_LIST1);
      list->ResetContent();
      EnumWindows(EnumWindowsProc,(LPARAM)list);
      CenterWindow();
      return TRUE;  // return TRUE unless you set the focus to a control
  }

在上边添加函数

static BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
    CListBox * list=(CListBox *)lParam;

    char  buf[256];
    GetWindowText(hwnd,buf,256);

    if(strlen(buf))
    {
  int idx=list->AddString(buf);
  list->SetItemData(idx,(DWORD)hwnd);
    }

    return TRUE;
}

建立 ID_BUTTON1,命名方法为 OnCloseApp,并在此方法中添加下列代码:
  void CTerminateTaskDlg::OnCloseApp()
  {
      CListBox * list=(CListBox *)GetDlgItem(IDC_LIST1);
      int idx=list->GetCurSel();
      if(idx==LB_ERR)
      {
  MessageBox("You must select a window to active!",
      "Error",MB_OK|MB_APPLMODAL);
  return;
      }
      HWND hWnd=(HWND)list->GetItemData(idx);
      ::PostMessage(hWnd,WM_CLOSE,0,0L);
      EndDialog(IDOK);
  }

编译并运行此例子程序。

可以用HWND   hWnd   =   ::FindWindow(NULL,"windows name") ;

关闭一个制定的程序,还可以用上边的程序查看具体的windows name,注意windows name为窗口的caption。

posted on 2008-05-20 21:44 OIO 阅读(2877) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜