// CFileOpenDlg::OnInitDialog // // Initialize the dialog // BOOL CFileOpenDlg::OnInitDialog() { CWinApp* pApp = AfxGetApp(); HTREEITEM hItemRoot; HIMAGELIST hImlSys; SHFILEINFO ssfi; CWaitCursor wait; TCHAR szRoot[] = _T("\\"); CExDialog::OnInitDialog(); // // Create the toolbar // if(!m_wndCommandBar.Create(this) || !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) || !m_wndCommandBar.AddAdornments() || !m_wndCommandBar.LoadToolBar(IDR_FILEOPEN)) { TRACE0("Failed to create CommandBar\n"); return -1; // fail to create } //m_pCmdBar = (CCommandBar*)m_pWndEmptyCB; //m_pCmdBar->LoadToolBar(IDR_FILEOPEN); // // Position the tree. // GetClientRect(&m_rcTree); m_rcTree.top = GetHeaderHeight() + 1; m_rcTree.bottom = m_ySplit; m_treeFolder.MoveWindow(&m_rcTree); // // Position the list // GetClientRect(&m_rcList); m_rcList.top = m_ySplit + nTrackHeight + 1; m_listFile.MoveWindow(&m_rcList); // // Hide the OK button // ModifyStyle(0, WS_NONAVDONEBUTTON, SWP_NOSIZE); //::SHDoneButton(m_hWnd, SHDB_HIDE); // // Retrieve the small system image list // hImlSys = (HIMAGELIST)SHGetFileInfo(_T("dummy.txt"), 0, &ssfi, sizeof(SHFILEINFO), SHGFI_USEFILEATTRIBUTES | SHGFI_SYSICONINDEX | SHGFI_SMALLICON); m_imlSystem.Attach(hImlSys); m_listFile.SetImageList(&m_imlSystem, LVSIL_SMALL); m_treeFolder.SetImageList(&m_imlSystem, TVSIL_NORMAL); m_imlSystem.Detach(); // // Initialize the tree // hItemRoot = TVI_ROOT;//m_treeFolder.InsertItem(GetSystemName(), 0, 1); if(hItemRoot) { TVINSERTSTRUCT tvi; int iIcon = GetIconIndex(szRoot); tvi.hParent = TVI_ROOT; tvi.hInsertAfter = TVI_LAST; tvi.item.mask = TVIF_CHILDREN | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT | TVIF_PARAM; tvi.item.pszText = szRoot; tvi.item.iImage = iIcon; tvi.item.iSelectedImage = iIcon; tvi.item.cChildren = I_CHILDRENCALLBACK; tvi.item.lParam = -1; m_treeFolder.InsertItem(&tvi); //m_treeFolder.SetItemData(hItemRoot, 0); //EnumDirs(_T("\\"), _T("*"), hItemRoot); //m_treeFolder.Expand(hItemRoot, TVE_EXPAND); } // // Initialize the list // m_listFile.InsertColumn(0, _T("Name"), LVCFMT_LEFT, 80, -1); m_listFile.InsertColumn(1, _T("Size"), LVCFMT_RIGHT, 60, 1); m_listFile.InsertColumn(2, _T("Date"), LVCFMT_LEFT, 60, 2); EnumFiles(szRoot, m_strFilter); // // Initialize the header imagelist // if(m_imlHeader.Create(IDB_SORT_ARROWS, 16, 8, RGB(255,0,255))) { CHeaderCtrl* pHeader = m_listFile.GetHeaderCtrl(); if(pHeader) pHeader->SetImageList(&m_imlHeader); } SetColumnIcons(); // // Update toolbar buttons // UpdateControls(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
void CTxMsgListView::OnInitialUpdate() { CFormView::OnInitialUpdate(); // Initialise window pointer in the Tx child window CTxMsgChildFrame* pomChildFrame = (CTxMsgChildFrame* )pomGetParentWindow(); // Update View Pointer if( pomChildFrame != nullptr ) { pomChildFrame->vSetTxMsgViewPointers( eTxMsgMessageListView, this ); } // set Init flag to TRUE m_bInitDlg = TRUE; // Init Message List Control CRect rListCtrlRect; CHAR caColumnName[defMESSAGE_FRAME_COLUMN][defSTRING_SIZE] = { defMESSAGE_ID, defSTR_CHANNEL_NAME, defMESSAGE_TYPE, defMESSSAGE_DLC, defMESSAGE_DATA_BYTES }; //Calculate the total size of all column header m_omLctrMsgList.GetWindowRect( &rListCtrlRect); int nTotalColunmSize = rListCtrlRect.right - rListCtrlRect.left; int nTotalStrLengthPixel = 0; int i; //i declared outside the for loop for( i=0; i<defMESSAGE_FRAME_COLUMN; i++) { nTotalStrLengthPixel += m_omLctrMsgList.GetStringWidth(caColumnName[i]) ; } //Insert each column name after calculating the size for the same. INT nFormat = 0; for(i=0; i<defMESSAGE_FRAME_COLUMN; i++) { int nColumnSize = m_omLctrMsgList.GetStringWidth(_(caColumnName[i])) ; nColumnSize += (nTotalColunmSize-nTotalStrLengthPixel)/defMESSAGE_FRAME_COLUMN; nFormat = LVCFMT_CENTER; // Switch Column Index switch( i ) { case defMESSAGE_FRAME_COLUMN - 1 : // Data Bytes Column nColumnSize += static_cast <INT>(4.25*defDATA_BYTES_EXTRA); nFormat = LVCFMT_LEFT; break; case 0: // Message ID / Name Column. Don't alter this column break; case 1: // Channels Column nColumnSize -= static_cast <INT>(2.2*defDATA_BYTES_EXTRA); break; default: // Others nColumnSize -= static_cast <INT>(1.1*defDATA_BYTES_EXTRA ); } // Insert the column in to the list m_omLctrMsgList.InsertColumn(i,_(caColumnName[i]), nFormat, nColumnSize); } // Set extended property // Enable Check box m_omLctrMsgList.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES ); // Associate image list to the list item // Create only onece if( m_omImageList.m_hImageList == nullptr ) { m_omImageList.Create( IDR_BMP_MSGSGDB, defSIGNAL_ICON_SIZE, 1, WHITE_COLOR ); } // Set the Image List // Only if it is sucessfully created if( m_omImageList.m_hImageList != nullptr ) { m_omLctrMsgList.SetImageList( &m_omImageList, LVSIL_SMALL); } // Associate Header control Image List if( m_omHeaderImageList.m_hImageList == nullptr ) { m_omHeaderImageList.Create( IDR_BMP_CHECKBOX, defSIGNAL_ICON_SIZE, 1, BLUE_COLOR ); } // Set the Image List // Only if it is sucessfully created if( m_omHeaderImageList.m_hImageList != nullptr ) { CHeaderCtrl* pHeader = m_omLctrMsgList.GetHeaderCtrl(); if( pHeader != nullptr ) { pHeader->SetImageList( &m_omHeaderImageList ); HDITEM hditem; hditem.mask = HDI_IMAGE | HDI_FORMAT; if( pHeader->GetItem(0, &hditem ) == TRUE ) { hditem.fmt |= HDF_IMAGE; hditem.iImage = 0; pHeader->SetItem(0, &hditem ); } } } m_omButtonSendMsg.EnableWindow(FALSE); m_omButtonDeleteSelMsg.EnableWindow(FALSE); // Set the selection to the first item m_omLctrMsgList.SetItemState( 0, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED ); m_bInitDlg = FALSE; }