程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 對話框滾動條 (推薦),對話框滾動條推薦

對話框滾動條 (推薦),對話框滾動條推薦

編輯:C++入門知識

對話框滾動條 (推薦),對話框滾動條推薦


出處:http://wenku.baidu.com/link?url=t8Y1cz6RGlNKTtu5HT76JI_9pw9zpEl4m3Cxy4zjk_Le2hSZ9LPeAS7nKxnXlhRyhjCbl66SPZR3Ou-GtJn1RaKIhwQM8Xx1mmZyXeIu8qG

要點: 使用GetScrollPos() 獲取當前滑塊位置,使用SetScrollPos()設置滑塊位置,使用ScrollWindow()來滾動客戶區,

 

不要使用OnHScroll() 方法中的pScrollBar參數,因為對話框好像m_HWnd變量是空,所以這個參數的方法

pScrollBar->GetScrollPos()  / pScrollBar->SetScrollPos() 有問題.

並且在對話框的屬性頁中有垂直/水平滾動條的屬性選項,在這裡添加的滾動條在項目中是看不到的ID的,在對話框上也不能選中添加 變量的.

 

 

  BOOL  CTestDlgDlg::OnInitDialog() 
  { 
          SetScrollRange(SB_HORZ,  0,  100); 
          SetScrollRange(SB_VERT,  0,  100); 
  } 
   
  void  CTestDlgDlg::OnHScroll(UINT  nSBCode,  UINT  nPos,  CScrollBar*  pScrollBar)   
  { 
  int nCurPos; 
  int nPrevPos; 
  CRect rect; 
   
  GetClientRect(&rect); 
  nPrevPos  =  GetScrollPos(SB_HORZ); 
  nCurPos  =  nPrevPos; 
  switch(nSBCode) 
  { 
  case  SB_LEFT: 
  SetScrollPos(SB_HORZ,  0); 
  ScrollWindow(0,  0); 
  break; 
  case  SB_RIGHT: 
  SetScrollPos(SB_HORZ,  100); 
  ScrollWindow(-rect.Width(),  0); 
  break; 
  case  SB_PAGELEFT: 
  nCurPos  =  nPrevPos  -  10; 
  if(nCurPos  <  0) 
  nCurPos  =  0; 
  SetScrollPos(SB_HORZ,  nCurPos); 
  break; 
  case  SB_PAGERIGHT: 
  nCurPos  =  nPrevPos  +  10; 
  if(nCurPos  >  100) 
  nCurPos  =  100; 
  SetScrollPos(SB_HORZ,  nCurPos); 
  break; 
  case  SB_THUMBPOSITION: 
  SetScrollPos(SB_HORZ,  nPos); 
  break; 
  case  SB_THUMBTRACK: 
  break; 
  case  SB_LINELEFT: 
  nCurPos  =  nPrevPos  -  2; 
  if(nCurPos  <  0) 
  nCurPos  =  0; 
  SetScrollPos(SB_HORZ,  nCurPos); 
  break; 
  case  SB_LINERIGHT: 
  nCurPos  =  nPrevPos  +  2; 
  if(nCurPos  >  100) 
  nCurPos  =  100; 
  SetScrollPos(SB_HORZ,  nCurPos); 
  break; 
  case  SB_ENDSCROLL: 
  break; 
  } 
  nCurPos  =  GetScrollPos(SB_HORZ); 
  ScrollWindow(rect.Width()  *  (nPrevPos  -  nCurPos)  /  100,  0); 
   
  CDialog::OnHScroll(nSBCode,  nPos,  pScrollBar); 
  } 
   
  void  CTestDlgDlg::OnVScroll(UINT  nSBCode,  UINT  nPos,  CScrollBar*  pScrollBar)   
  { 
  int nCurPos; 
  int nPrevPos; 
  CRect rect; 
   
  GetClientRect(&rect); 
  nPrevPos  =  GetScrollPos(SB_VERT); 
  nCurPos  =  nPrevPos; 
  switch(nSBCode) 
  { 
  case  SB_LEFT: 
  SetScrollPos(SB_VERT,  0); 
  ScrollWindow(0,  0); 
  break; 
  case  SB_RIGHT: 
  SetScrollPos(SB_VERT,  100); 
  ScrollWindow(-rect.Height(),  0); 
  break; 
  case  SB_PAGELEFT: 
  nCurPos  =  nPrevPos  -  10; 
  if(nCurPos  <  0) 
  nCurPos  =  0; 
  SetScrollPos(SB_VERT,  nCurPos); 
  break; 
  case  SB_PAGERIGHT: 
  nCurPos  =  nPrevPos  +  10; 
  if(nCurPos  >  100) 
  nCurPos  =  100; 
  SetScrollPos(SB_VERT,  nCurPos); 
  break; 
  case  SB_THUMBPOSITION: 
  SetScrollPos(SB_VERT,  nPos); 
  break; 
  case  SB_THUMBTRACK: 
  break; 
  case  SB_LINELEFT: 
  nCurPos  =  nPrevPos  -  2; 
  if(nCurPos  <  0) 
  nCurPos  =  0; 
  SetScrollPos(SB_VERT,  nCurPos); 
  break; 
  case  SB_LINERIGHT: 
  nCurPos  =  nPrevPos  +  2; 
  if(nCurPos  >  100) 
  nCurPos  =  100; 
  SetScrollPos(SB_VERT,  nCurPos); 
  break; 
  case  SB_ENDSCROLL: 
  break; 
  } 
  nCurPos  =  GetScrollPos(SB_VERT); 
  ScrollWindow(0,  rect.Height()  *  (nPrevPos  -  nCurPos)  /  100); 
   
  CDialog::OnVScroll(nSBCode,  nPos,  pScrollBar); 
  }


怎調整使對話框的左右滾動條消失

你直接按F4就可以了.
按F2是放大圖形,按F3是縮小圖形,按F4是縮放所有的圖形到最大顯示.

CorelDraw 快捷鍵

主界面

顯示導航窗口(Navigator window)
運行 Visual Basic 應用程序的編輯器 +
保存當前的圖形 +
打開編輯文本對話框 ++
擦除圖形的一部分或將一個對象分為兩個封閉路徑
撤消上一次的操作 +
撤消上一次的操作 +
垂直定距對齊選擇對象的中心 +
垂直分散對齊選擇對象的中心 +
垂直對齊選擇對象的中心
將文本更改為垂直排布(切換式) +
打開一個已有繪圖文檔 +
打印當前的圖形 +
打開“大小工具卷簾” +
運行縮放動作然後返回前一個工具
運行縮放動作然後返回前一個工具
導出文本或對象到另一種格式 +
導入文本或對象 +
發送選擇的對象到後面 +
將選擇的對象放置到後面 +
發送選擇的對象到前面 +
將選擇的對象放置到前面 +
發送選擇的對象到右面 +
發送選擇的對象到左面 +
將文本對齊基線 +
將對象與網格對齊 (切換) +
對齊選擇對象的中心到頁中心
繪制對稱多邊形
拆分選擇的對象 +
將選擇對象的分散對齊舞台水平中心 +
將選擇對象的分散對齊頁面水平中心 +
打開“封套工具卷簾” +
打開“符號和特殊字符工具卷簾” +
復制選定的項目到剪貼板 +
復制選定的項目到剪貼板 +
設置文本屬性的格式 +
恢復上一次的“撤消”操作 ++
剪切選定對象並將它放置在“剪貼板”中 +
剪切選定對象並將它放置在“剪貼板”中 +
將字體大小減小為上一個字體大小設置。 +小鍵盤
將漸變填充應用到對象
結合選擇的對象 +
繪制矩形;雙擊該工具便可創建頁框
打開“輪廓筆”對話框
打開“輪廓圖工具卷簾” +
繪制螺旋形;雙擊該工具打開“選項”對話框的“工具框”標簽
啟動“拼寫檢查器”;檢查選定文本的拼寫 +
在當前工具和挑選工具之間切換 +
取消選擇對象或對象群組所組成的群組 +
顯示繪圖的全屏預覽
將選擇的對象組成群組 +
刪除選定的對象
將選擇對象上對齊
將字體大小減小為字體大小列表中上一個可用設置 +小鍵盤
轉到上一頁
將鏡頭相對於繪畫上移 +
生成“屬性欄”並對准可被標記的第一個可視項 +
打開“視圖管理器工具卷簾” +
在最近使用的兩種視圖質量間進行切換 +
用“手繪”模式繪制線條和曲線
使用該工具通過單擊及拖動來平移繪圖
按當前選項或工具顯示對象或工具的屬性 +
刷新當前的繪圖窗口 +
水平對齊選擇對象的中心
將文本排列改為水平方向 +
打開“縮放工具卷簾” +
縮放全部的對象到最大
縮放選定的對象到最大 +
縮小繪圖中的圖形
將填充添加到對象;單擊並拖動對象實現噴泉式填充
打開“透鏡工具卷簾” +
打開“圖形和文本樣式工具卷簾” +
退出 CorelDRAW 並提示保存活動繪圖 +
繪制橢圓形和圓形
繪制矩形組
將對象轉換成網狀填充對象
打開“位置工具卷簾” +
添加文本(單擊添加“美術字”;拖動添加“段落文本”)
將選擇對象下對齊
將字體大小增加為字體大小列表中的下一個設置 +小鍵盤6
轉到下一頁
將鏡頭相對於繪畫下移 +
包含指定線性標注線屬性的功能 +
添加/移除文本對象的項目符號 (切換) +M
將選定對象按照對象的堆棧順序放置到向後一個位置 +
將選......余下全文>>
 

怎在對話框中使用滾動條

感覺可以用FormviewOnDialog方法,VCGuru.com上有
在Dialog中嵌套一個Formview,當Formview大於設定的大小時自動會出現滾動條,應該是你要的效果

當然方法多樣,僅供參考……

1-21補充:
給你發郵件了,附件裡面是
各種各樣的ViewOnDialog例子,有的工程是VC6.0的,有的工程是8.0才能打開的,你可以參考一下

以前看過都刪了,網上又找了重新下的
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved