リスト表示
■メインビュー(CxxxView)の場合
BOOL CxxxView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを
// 修正してください。
cs.style |= LVS_REPORT; // スタイルの指定
return CListView::PreCreateWindow(cs);
}
void CxxxView::OnInitialUpdate()
{
CxxxView::OnInitialUpdate();
// TODO: GetListCtrl() メンバ関数の呼び出しをとおして直接そのリスト コントロールに
// アクセスすることによって ListView をアイテムで固定できます。
CListCtrl& myLV = GetListCtrl();
myLV.InsertColumn(0, _T("テスト"), LVCFMT_LEFT, 100, -1); // 表示テスト用カラム
myLV.InsertColumn(1, _T("テスト2"), LVCFMT_LEFT, 300, -1); // 表示テスト用カラム
}
■ドッキングウィンドウ上に表示
CDockablePaneの派生クラス(CxxxWnd)のOnCreate関数
int CxxxWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDockablePane::OnCreate(lpCreateStruct) == -1) return -1;
// TODO: ここに特定な作成コードを追加してください。
CRect rectDummy;
rectDummy.SetRectEmpty();
const DWORD dwViewStyle = LVS_REPORT | WS_CHILD | WS_VISIBLE | WS_VSCROLL; // リストのスタイル指定
if ( !m_ListCtrl.Create(dwViewStyle, rectDummy, this, 1) ) return -1; // リストコントロールの生成
m_ListCtrl.InsertColumn( 1, _T("テスト"), LVCFMT_LEFT, 100); // カラムを追加
return 0;
}
これだけだと、ウィンドウは白いままなので再描画を行う必要がある。
CDockablePaneの派生クラス(CxxxWnd)のOnSize関数
void CxxxViewWnd::OnSize(UINT nType, int cx, int cy)
{
CDockablePane::OnSize(nType, cx, cy);
// TODO: ここにメッセージ ハンドラ コードを追加します。
AdjustLayout(); // リストコントロール部分の再描画
}
CDockablePaneの派生クラス(CxxxWnd)にリストコントロールを再描画する関数(AdjustLayout)を追加
void CxxxViewWnd::AdjustLayout()
{
if(GetSafeHwnd() == NULL) return;
CRect rectClient;
GetClientRect(rectClient);
m_ListCtrl.SetWindowPos(NULL, rectClient.left, rectClient.top, rectClient.Width(), rectClient.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
}
最終更新:2011年08月31日 15:27