2016-10-21 9 views
0

私はSDI MFCアプリケーションを使用しています。私はメインフレームにドックペーンダイアログを作成しました。私はCListViewから派生したビュークラスを持っています。ユーザーがメインフレームのListviewをクリックするたびに、選択した行データをダイアログに表示します。どのように私はこれを達成することができますまた、私はどのようにメインフレームからダイアログにメッセージを投稿することができます誰に教えてください。メッセージメインフレームからDockpaneダイアログへの通知

答えて

0

あなたはこのようなあなたのビューで選択変更ハンドラから直接選択した項目の詳細を更新するためにコントロールバーウィンドウ内のデータを更新するメソッドを呼び出すことができます。

void CMyListView::OnItemChanged(NMHDR* pNMHDR, LRESULT* pResult) 
{ 
    NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; 

    // Did the item state change? 
    if (pNMListView->uChanged & LVIF_STATE) 
    { 
     // Did the item selection change? 
     const bool oldSelState = (pNMListView->uOldState & LVIS_SELECTED) != 0x0; 
     const bool newSelState = (pNMListView->uNewState & LVIS_SELECTED) != 0x0; 
     const bool selStateChanged = oldSelState != newSelState; 
     if(selStateChanged) 
     { 
      // selection has changed 
      CMainFrame* pMainWnd = (CMainFrame*)AfxGetMainWnd(); 
      CItemDetailsWnd* pDetailsWnd = pMainWnd->GetDetailsDialogBar(); 
      CItemData* pItemData = (CItemData*)GetListCtrl().GetItemData(pNMListView->iItem);    
      pDetailsWnd->PopulateDetails(pItemData); 
     } 
    } 
    *pResult = 0; 
} 

この例ではCItemDataがために、あなたのデータホルダーです単一のCListViewアイテム/行。 CItemDetailsWndは、現在選択されている項目の詳細を表示するダイアログコントロールバーです。

+0

CItemDetailsWnd - これは何ですか.....ドックパネルクラスまたはダイアログクラスへのポインタ – meisathish

+0

この例では、ドッキング可能なペインへのポインタです。 –

関連する問題