WEB开发网
开发学院软件开发VC MFC程序员的WTL指南(5)对话框与控件 阅读

MFC程序员的WTL指南(5)对话框与控件

 2006-07-22 22:03:31 来源:WEB开发网   
核心提示: CMainDlg::CMainDlg() : m_wndOKBtn(this, 1), m_wndExitBtn(this, 2){}构造函数的参数是消息映射链的地址和ALT_MSG_MAP的小节号码,第一个参数通常使用this,MFC程序员的WTL指南(5)对话框与控件(6),就是使用对
CMainDlg::CMainDlg() : m_wndOKBtn(this, 1),
            m_wndExitBtn(this, 2)
{
}

构造函数的参数是消息映射链的地址和ALT_MSG_MAP的小节号码,第一个参数通常使用this,就是使用对话框自己的消息映射链,第二个参数告诉对象将消息发给ALT_MSG_MAP的哪个小节。

最后,我们将每个CContainedWindow对象与控件关联起来。

LRESULT CMainDlg::OnInitDialog(...)
{
// ...
  // Attach CContainedWindows to OK and Exit buttons
  m_wndOKBtn.SubclassWindow ( GetDlgItem(IDOK) );
  m_wndExitBtn.SubclassWindow ( GetDlgItem(IDCANCEL) );
  return TRUE;
}

下面是新的WM_SETCURSOR消息处理函数:

LRESULT CMainDlg::OnSetCursor_OK (HWND hwndCtrl, UINT uHitTest, UINT uMouseMsg )
{
static HCURSOR hcur = LoadCursor ( NULL, IDC_HAND );
  if ( NULL != hcur )
    {
    SetCursor ( hcur );
    return TRUE;
    }
  else
    {
    SetMsgHandled(false);
    return FALSE;
    }
}
LRESULT CMainDlg::OnSetCursor_Exit ( HWND hwndCtrl, UINT uHitTest, UINT uMouseMsg )
{
static HCURSOR hcur = LoadCursor ( NULL, IDC_NO );
  if ( NULL != hcur )
    {
    SetCursor ( hcur );
    return TRUE;
    }
  else
    {
    SetMsgHandled(false);
    return FALSE;
    }
}

如果你还想使用按钮类的特性,你需要这样声明变量:

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:MFC 程序员 WTL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接