[問題] 關於分頁(TabControl)

看板C_and_CPP (C/C++)作者 (真的嗎)時間11年前 (2015/04/26 23:54), 11年前編輯推噓1(1027)
留言28則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC2005 問題(Question): 最近在練習分頁的使用,目標是在APP主頁下點選分頁,使之可在分頁中做動作 接著對分頁做[加入類別],去新增CPP與H檔,做到這邊是有辦法切換分頁但沒內容 後來對主頁及分頁去做[加入變數],有辦法控制主頁每個頁簽名稱,但沒辦法在主 頁頁簽內顯示分頁內容,想請教接下來該怎麼去做?謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.214.157 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1430063691.A.740.html

04/27 00:48, , 1F
這有點複雜.. 步驟大概如下
04/27 00:48, 1F

04/27 00:49, , 2F
(1) 第一個概念是,每個分頁內容其實就是一個 Dialog
04/27 00:49, 2F

04/27 00:49, , 3F
(2) OnInitial 時,建立所有分頁 Dialog ( new, Create)
04/27 00:49, 3F

04/27 00:50, , 4F
(3) 為每個用 Create 出來的 Dialog 做 SetWindowPos
04/27 00:50, 4F

04/27 00:51, , 5F
確保你的每個 Dialog 的大小位置是一樣的
04/27 00:51, 5F

04/27 00:52, , 6F
( CDialog :: Create 第二個參數就是要放 &m_tab)
04/27 00:52, 6F

04/27 00:53, , 7F
(4) 決定初始化要顯示哪個 dia, 其他的做 SW_HIDE
04/27 00:53, 7F

04/27 00:54, , 8F
(5) 響應訊息 ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, FUNC)
04/27 00:54, 8F

04/27 00:55, , 9F
在響應函式裡用 m_tab.GetCurSel() 取得當前頁籤,
04/27 00:55, 9F

04/27 00:56, , 10F
當前頁籤用 SW_SHOW , 其他頁籤用 SW_HIDE。
04/27 00:56, 10F

04/27 01:00, , 11F
依上述方式去做應可做出來,這種 Dialog 很麻煩考耐心,
04/27 01:00, 11F

04/27 01:00, , 12F
其他若不懂,照步驟去查 keyword 應可實作出來。
04/27 01:00, 12F

04/27 01:07, , 13F
oh 對了 , 所以建議你每個分頁用精靈建立一個 dialog ,
04/27 01:07, 13F

04/27 01:07, , 14F
以後會比較方便維護。
04/27 01:07, 14F

04/27 01:29, , 15F
目前還沒試到E大的方式 那麼想請問是否有別的方式
04/27 01:29, 15F

04/27 01:30, , 16F
可以完成我的需求且較不麻煩的做法嗎?
04/27 01:30, 16F

04/27 01:31, , 17F
(我是指只要能對每個分頁做控制與動作即可,不用再創
04/27 01:31, 17F

04/27 01:32, , 18F
dailog)
04/27 01:32, 18F

04/27 01:45, , 19F
若你對 API 有認識的話,應該能理解 tab 底下每個分頁塞的
04/27 01:45, 19F

04/27 01:47, , 20F
是 HWND .
04/27 01:47, 20F

04/27 01:47, , 21F
( 塞 HWND 最方便 )
04/27 01:47, 21F

04/27 01:48, , 22F
至於其他的方法我沒再試過 , 但估也是要做 HIDE/SHOW
04/27 01:48, 22F

04/27 01:51, , 23F
若你找到有更簡便的方便,請再告訴我一聲,目前我沒看過更
04/27 01:51, 23F

04/27 01:51, , 24F
好的方法
04/27 01:51, 24F

04/27 01:55, , 25F
對了,你可能要定義一下你所謂的 "動作" 大概是什麼 ?
04/27 01:55, 25F

04/27 01:56, , 26F
從你的圖片完全看不出來想幹嘛 (link 修一下,和括號分開)
04/27 01:56, 26F

04/27 01:57, , 27F
如果你只是想拿 tab 當 button 用的話,用 if 判斷
04/27 01:57, 27F

04/27 01:57, , 28F
GetCurSel() 便行, 不知有沒有回答到你的問題
04/27 01:57, 28F
※ 編輯: ybelauren (114.36.244.12), 04/27/2015 21:04:24 多謝E大解釋,我想我應該還需要點時間吸收一下(平常要上班) 後來去GOOGLE,找到的方式應該是E大說的第一種的方式 就是在新增的分頁dailog下去新增變數 m_TabPage1.Create(IDD_DIALOG1, &m_Tab); m_TabPage2.Create(IDD_DIALOG1, &m_Tab); m_TabPage3.Create(IDD_DIALOG1, &m_Tab); 接著再回到主頁去做切換頁籤設定 CRect rTab, rItem; (不是很瞭解這裡的CRet是怎麼產生的) m_Tab.GetItemRect(0, &rItem); m_Tab.GetClientRect(&rTab); m_TabPage1.SetWindowPos(NULL, x, y, cx, cy, SWP_HIDEWINDOW); m_TabPage2.SetWindowPos(NULL, x, y, cx, cy, SWP_HIDEWINDOW); m_TabPage3.SetWindowPos(NULL, x, y, cx, cy, SWP_HIDEWINDOW); 但目前就是卡在無法把分頁內容鑲在主頁的tabcontrol裡XD 所以現在還在練習中,再次謝謝E大 ※ 編輯: ybelauren (114.36.244.12), 04/27/2015 21:21:30
文章代碼(AID): #1LFGfBT0 (C_and_CPP)
文章代碼(AID): #1LFGfBT0 (C_and_CPP)