CchuangkoutiaozhengDlg *pMain = (CchuangkoutiaozhengDlg *)AfxGetApp()->m_pMainWnd;
if (((CButton*)pMain->GetDlgItem(1191))->GetCheck() == 0)
{
....;
}
check控制元件ID是1191,在tab里的子視窗中.代碼寫在自己創建的cpp中,然后這個代碼就直接報錯了.
我該怎么寫呢?
uj5u.com熱心網友回復:
對話框 下 的 tab里的子視窗中uj5u.com熱心網友回復:
不是,我是想知道代碼應該怎么寫
if (((CButton*)pMain->GetDlgItem(1191))->GetCheck() == 0)
這句報錯
uj5u.com熱心網友回復:
如果在 對話框 是CWnd* pMain=AfxGetMainWnd();// 取對話框
if (((CButton*) (pMain->GetDlgItem(IDC_CHECK1)) )->GetCheck() == 0)
如果在 Tab
CWnd* pMain=AfxGetMainWnd();// 取對話框
CTabCtrl *pTab=pMain->GetDlgItem(IDC_TAB1);//取 tab
if (((CButton*) (pTab->GetDlgItem(IDC_CHECK1)) )->GetCheck() == 0)
uj5u.com熱心網友回復:

在tab那個出現在了個新的問題,不能初始化怎么辦?
uj5u.com熱心網友回復:
CTabCtrl *pTab=(CTabCtrl *)pMain->GetDlgItem(IDC_TAB1);//取 tab把 CWnd * 轉成 CTabCtrl *
uj5u.com熱心網友回復:
你就不能在創建你這個類的時候把對話框上你要讀的內容傳過去嘛?要讀修改的話也可以在主視窗上抓操作產生的通知訊息,讀完狀態再傳給你的物件。
uj5u.com熱心網友回復:
現在報錯了,但還是和開始時一樣的.



我是在主視窗中建了一個tab控制元件,然后建了一個子視窗當tab的第一頁,check1是在子視窗中的.
uj5u.com熱心網友回復:
因為控制元件比較多,我讀控制元件用for回圈控制元件ID的,所以每個控制元件這么寫要麻煩得多了.在Dialog視窗一切正常,用在自建的cpp不知道怎么的指標就不行了.
uj5u.com熱心網友回復:
CTabCtrl *pTab 所以 不能轉換為 CButton *把 CWnd * 轉成 CTabCtrl * 是因為 你知道 它是 什么
uj5u.com熱心網友回復:
沒看明白,要怎么寫呢
uj5u.com熱心網友回復:
弄那么多級指標還不如在Tab的父類或派生類中添加一個public函式,然后把這些集中到函式中,方便呼叫也簡化了操作另外通過 AfxGetApp()->m_pMainWnd 獲取的類,需要先給 AfxGetApp()->m_pMainWnd 賦與正常的指標才行, 可以用APP向導生成一個基于對話框的應用,先研究下MFC框架結構
uj5u.com熱心網友回復:
可以宣告控制元件變數,也更方便跨檔案或者對話框操作。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/33413.html
標籤:基礎類
