MFC內的LIstCtrl控制元件,原先使用的基類是ListCtrl,后來自己封裝了一個基于GridCtrl的類,現在的問題是LIstCtrl控制元件可以正常加載資料,但是列印預覽界面沒有成功加載資料。
這是列印按鈕回應函式:
if (0 == m_paramVarsListCtrl.GetItemCount())
{
AfxMessageBox(_T("沒有可以列印的變數資料!"));
return;
}
//判斷是否安裝列印機,沒有安裝不能列印,也不提供預覽的功能
if (!theApp.HasInstallPrinter())
{
AfxMessageBox(_T("沒有可用的列印機!"));
return;
}
TCHAR *szColumn[10] = {_T("序號"), _T("變數名稱"), _T("變數描述"),_T("型別"), _T("當前值"),
_T("上限"), _T("下限"),_T("資料長度"), _T("區號"), _T("偏移")};
CDPView::sta_pCallback = GridCallback;
CDPView::sta_lParam = (LPARAM)(&m_paramVarsListCtrl); //關聯鏈表
CDPView::sta_arrColum.RemoveAll();
for(int i = 0; i < 10; i++)
{
CDPView::sta_arrColum.Add(szColumn[i]);
}
CDPView::sta_ulRowCount = m_paramVarsListCtrl.GetItemCount();
m_pMyFrame = new CDPFrame(this);
m_pMyFrame->CreateFrame();
列印預覽界面的初始化函式:
void CDPView::InitGrid()
{
m_pWndGridCtrl->EnableHeader (TRUE, BCGP_GRID_HEADER_MOVE_ITEMS|BCGP_GRID_HEADER_SORT);
int nColumNum = sta_arrColum.GetSize();//列數
if( 10 == nColumNum)//這個是主界面變數資訊
{
m_pWndGridCtrl->InsertColumn(0, sta_arrColum[0], 40);
m_pWndGridCtrl->InsertColumn(1, sta_arrColum[1], 100);
m_pWndGridCtrl->InsertColumn(2, sta_arrColum[2], 60);
m_pWndGridCtrl->InsertColumn(3, sta_arrColum[3], 60);
m_pWndGridCtrl->InsertColumn(4, sta_arrColum[4], 60);
m_pWndGridCtrl->InsertColumn(5, sta_arrColum[5], 70);
m_pWndGridCtrl->InsertColumn(6, sta_arrColum[6], 70);
m_pWndGridCtrl->InsertColumn(7, sta_arrColum[7], 60);
m_pWndGridCtrl->InsertColumn(8, sta_arrColum[8], 50);
m_pWndGridCtrl->InsertColumn(9, sta_arrColum[9], 50);
}
else//日志資訊串列 每列的寬度單獨分配
{
m_pWndGridCtrl->InsertColumn(0, sta_arrColum[0], 40);
m_pWndGridCtrl->InsertColumn(1, sta_arrColum[1], 100);
m_pWndGridCtrl->InsertColumn(2, sta_arrColum[2], 320);
m_pWndGridCtrl->InsertColumn(3, sta_arrColum[3], 60);
m_pWndGridCtrl->InsertColumn(4, sta_arrColum[4], 125);
}
//m_pWndGridCtrl->EnableColumnAutoSize(TRUE);
m_pWndGridCtrl->EnableVirtualMode(sta_pCallback, sta_lParam);
m_pWndGridCtrl->SetVirtualRows(sta_ulRowCount);
m_pWndGridCtrl->AdjustLayout();
}
uj5u.com熱心網友回復:
原先,列印預覽是可以正常加載listctrl控制元件里面的資料的,現在沒法加載了,但是表頭能成功顯示,虛擬行數也設定成功了,就是串列資料沒有成功,現在日志列印還是使用的listctrl基類,列印預覽界面還是正常的,就是引數列印換了積累后,無法關聯了轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/121780.html
標籤:界面
