龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC实用小知识总结 (二)(5)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
最后,使用ClassWizard处理WM_CTLCOLOR消息并返回一个用来绘画对话背景的刷子句柄。注意:由于当重画对话控件时也要调用该函数,所以要检测nCtlColor参量。

  最后,使用ClassWizard处理WM_CTLCOLOR消息并返回一个用来绘画对话背景的刷子句柄。注意:由于当重画对话控件时也要调用该函数,所以要检测nCtlColor参量。

   HBRUSH CMyFormView : : OnCtlColor (CDC* pDC , CWnd*pWnd , UINT nCtlColor
  )
  {
  // Determine if drawing a dialog box . If we are, return +handle to
  //our own background brush . Otherwise let windows handle it .
  if (nCtlColor = = CTLCOLOR _ DLG )
  return (HBRUSH) m_brush.GetSafeHandle ( )
  return CFormView : : OnCtlColor (pDC, pWnd , nCtlColor
  )
  }

  (37) 如何获取一个对话控件的指针

  有两种方法。其一,调用CWnd: : GetDlgItem,获取一个CWnd*指针调用成员函数。下例调用GetDlgItem,将返回值传给一个CSpinButtonCtrl*以便调用CSpinButtonCtrl : : SetPos 函数:

   BOOL CSampleDialog : : OnInitDialog ( )
  {
  CDialog : : OnInitDialog ( )
  //Get pointer to spin button .
  CSpinButtonCtrl * pSpin - ( CSpinButtonCtrl *) GetDlgItem(IDC_SPIN)
  ASSERT _ VALID (pSpin)
  //Set spin button's default position .
  pSpin ―> SetPos (10)

  return TRUE
  }

  其二, 可以使用ClassWizard将控件和成员变量联系起来。在ClassWizard中简单地选择Member Variables标签,然后选择Add Variable …按钮。如果在对话资源编辑器中,按下Ctrl键并双击控件即可转到Add Member Variable对话。

  (38) 如何禁止和使能控件

  控件也是窗口,所以可以调用CWnd : : EnableWindow使能和禁止控件。

   //Disable button controls .
  m_wndOK.EnableWindow (FALSE )
  m_wndApply.EnableWindow (FALSE )

  (39) 如何改变控件的字体

  由于控件是也是窗口,用户可以调用CWnd: : SetFont指定新字体。该函数用一个Cfont指针,要保证在控件撤消之前不能撤消字体对象。下例将下压按钮的字体改为8点Arial字体:

   //Declare font object in class declaration (.H file ).
  private : Cfont m_font
  // Set font in class implementation (.Cpp file ). Note m_wndButton is a
  //member variable added by ClassWizard.DDX routines hook the member
  //variable to a dialog button contrlo.
  BOOL CSampleDialog : : OnInitDialog ( )
  {
  …
  //Create an 8-point Arial font
  m_font . CreateFont (MulDiv (8 , -pDC
  ―> GetDeviceCaps(LOGPIXELSY) ,72). 0 , 0 , 0 , FW_NORMAL , 0 , 0,0, ANSI_CHARSER, OUT_STROKE_PRECIS ,
  CLIP_STROKE _PRECIS , DRAFT _QUALITY
  VARIABLE_PITCH |FF_SWISS, _T("Arial") )

  //Set font for push button .
  m_wndButton . SetFont (&m _font )

  …
  }

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接