WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院软件开发VC 深入浅出 CPropertySheet 阅读

深入浅出 CPropertySheet

 2006-07-23 11:21:02 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劕鎼痪褔鏌曟繝蹇曠窗闁煎壊浜滈—鍐偓锝庡墮娴犙勭箾閸喎鐏ユい鏇樺劦椤㈡瑩鎮℃惔銇帮拷
核心提示:为了最大限度的发挥属性页的效用,首先让我们先从 CPropertySheet 继承一个新类,深入浅出 CPropertySheet,取名为 CMyPropSheet.接着便可以进行下面的各种操作:一、隐藏属性页默认按钮隐藏掉Apply应用按钮:propsheet.m_psh.dwFlags |= PSH_NOAPPLY

为了最大限度的发挥属性页的效用,首先让我们先从 CPropertySheet 继承一个新类,取名为 CMyPropSheet.

接着便可以进行下面的各种操作:

一、隐藏属性页默认按钮

隐藏掉Apply应用按钮:

propsheet.m_psh.dwFlags |= PSH_NOAPPLYNOW;

或隐藏掉Cancel取消按钮:

CWnd *pWnd = GetDlgItem( IDCANCEL );
pWnd->ShowWindow( FALSE );

二、移动属性页按钮

首先,要获取按钮的句柄,然后就可以象对待窗体一样处理它们了. 下面代码先隐藏掉Apply和Help铵钮,再把OK和Cancel按移动到右侧。

BOOL CMyPropSheet::OnInitDialog ()
{
  BOOL bResult = CPropertySheet::OnInitDialog();
  int ids [] = {IDOK, IDCANCEL};//, ID_APPLY_NOW, IDHELP };
  
  // Hide Apply and Help buttons
  CWnd *pWnd = GetDlgItem (ID_APPLY_NOW);
  pWnd->ShowWindow (FALSE);
  pWnd = GetDlgItem (IDHELP);
  pWnd->ShowWindow (FALSE);
  
  CRect rectBtn;
  int nSpacing = 6;    // space between two buttons...
  for( int i =0; i < sizeof(ids)/sizeof(int); i++)
  {
    GetDlgItem (ids [i])->GetWindowRect (rectBtn);
    
    ScreenToClient (&rectBtn);
    int btnWidth = rectBtn.Width();
    rectBtn.left = rectBtn.left + (btnWidth + nSpacing)* 2;
    rectBtn.right = rectBtn.right + (btnWidth + nSpacing)* 2;
    GetDlgItem (ids [i])->MoveWindow(rectBtn);
  }
  
  return bResult;
}

下面代码移动所有按钮到右侧,并且重新置属性页为合适的大小.

1 2 3 4  下一页

Tags:深入浅出 CPropertySheet

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