/* ************************************ * HWND CreateListView (HWND hwndParent, LPSTR szWindowName) * 功能 创建 List View * 参数 hwndParent,父窗口 * szWindowName,窗口标题 * 返回值 窗口句柄 **************************************/ HWND CreateListView (HWND hwndParent, LPSTR szWindowName) { HWND hWndListView; // 创建List View hWndListView = CreateWindow ( WC_LISTVIEW, // List View窗口类 // 窗口标题,由于未指定 WS_TILED ,这是一个无标题的窗口 szWindowName, // 窗口样式,可视,子窗口,以及List View样式 WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_EDITLABELS, // 位置和大小,创建完成后使用SetWindows设置 CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hwndParent, // 父窗口 NULL, hinst, NULL); // 无菜单,无图标 if (hWndListView == NULL) { return NULL; } // 初始化Image List、初始化列、加入一些项 if(InitListViewImageLists(hWndListView) && InitListViewColumns(hWndListView) && AddListViewItems(hWndListView)) { return hWndListView; } DestroyWindow(hWndListView); return FALSE; }
// //OnRefreshProgram // BOOL CProgramProperties::OnRefreshProgram() { BOOL bResult = FALSE; if(!OnUpdate()) return FALSE; if(m_pDemux != NULL && m_pGraphBuilder != NULL){ if(m_number_of_programs != 0){ PopulateTransportStreamInfo(); SetListColumns(); AddListViewItems(); SetEsListColumns(); } } return TRUE; } //OnRefreshProgram
// // OnReceiveMessage // // Virtual method called by base class with Window messages // INT_PTR CProgramProperties::OnReceiveMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { case WM_INITDIALOG: { m_hwndDialog = hwnd; PopulateTransportStreamInfo( ); m_hwndProgList = GetDlgItem (hwnd, IDC_PROGLIST) ; ASSERT(m_hwndProgList); m_hwndEsList = GetDlgItem (hwnd, IDC_ES_LIST) ; ASSERT(m_hwndEsList); // populate program list SetListColumns(); AddListViewItems(); // set elementary stream list SetEsListColumns(); return TRUE; } case WM_DESTROY: { DestroyWindow(m_hwndDialog); return TRUE; } case WM_COMMAND: { switch (LOWORD (wParam)) { case IDC_VIEWBUTTON : OnViewProgram () ; m_bAvStreaming = TRUE; break ; case IDC_REFRESHBUTTON : OnRefreshProgram () ; break ; case IDC_STOPBUTTON : if(m_bAvStreaming == TRUE){ UnmapAvPIDs(); m_bAvStreaming = FALSE; } break ; }; return TRUE; } case WM_NOTIFY: { switch (wParam) { case IDC_PROGLIST: LPNM_LISTVIEW pnlv = (LPNM_LISTVIEW)lParam; BOOL itemSelected = FALSE; WORD program_number; UINT ii; switch (pnlv->hdr.code) { case NM_CLICK: ii = ListView_GetItemCount(m_hwndProgList); for(; ii; ii--) { if(0!= ListView_GetItemState( m_hwndProgList, ii-1, LVIS_SELECTED)) break; } TCHAR szTmp[MAX_LEN]; ListView_GetItemText( m_hwndProgList, ii-1, 0, // first column szTmp, MAX_LEN); program_number = (WORD) _wtoi(szTmp); Dump1(TEXT("selected program number = %s\n"), szTmp); Dump1(TEXT("selected program number = %#x\n"), program_number); SetEsListColumns(); AddEsListViewItems( program_number); break; default: break; } return TRUE; } // end switch (wParam) } default: return FALSE; } return TRUE; } // OnReceiveMessage
static VOID InitBackgroundDialog(HWND hwndDlg, PDATA pData) { TCHAR szString[256]; HKEY regKey; TCHAR szBuffer[2]; DWORD bufferSize = sizeof(szBuffer); DWORD varType = REG_SZ; LONG result; BITMAP bitmap; AddListViewItems(hwndDlg, pData); LoadString(hApplet, IDS_CENTER, szString, sizeof(szString) / sizeof(TCHAR)); SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_INSERTSTRING, PLACEMENT_CENTER, (LPARAM)szString); LoadString(hApplet, IDS_STRETCH, szString, sizeof(szString) / sizeof(TCHAR)); SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_INSERTSTRING, PLACEMENT_STRETCH, (LPARAM)szString); LoadString(hApplet, IDS_TILE, szString, sizeof(szString) / sizeof(TCHAR)); SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_INSERTSTRING, PLACEMENT_TILE, (LPARAM)szString); /* Load the default settings from the registry */ result = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, KEY_ALL_ACCESS, ®Key); if (result != ERROR_SUCCESS) { /* reg key open failed; maybe it does not exist? create it! */ DWORD dwDisposition = 0; result = RegCreateKeyEx( HKEY_CURRENT_USER, TEXT("Control Panel\\Desktop"), 0, NULL, 0, KEY_ALL_ACCESS, NULL, ®Key, &dwDisposition ); /* Now the key must be created & opened and regKey points to opened key */ /* On error result will not contain ERROR_SUCCESS. I don't know how to handle */ /* this case :( */ } result = RegQueryValueEx(regKey, TEXT("WallpaperStyle"), 0, &varType, (LPBYTE)szBuffer, &bufferSize); if (result == ERROR_SUCCESS) { if (_ttoi(szBuffer) == 0) { SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_CENTER, 0); pData->placementSelection = PLACEMENT_CENTER; } if (_ttoi(szBuffer) == 2) { SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_STRETCH, 0); pData->placementSelection = PLACEMENT_STRETCH; } } else { SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_CENTER, 0); pData->placementSelection = PLACEMENT_CENTER; } result = RegQueryValueEx(regKey, TEXT("TileWallpaper"), 0, &varType, (LPBYTE)szBuffer, &bufferSize); if (result == ERROR_SUCCESS) { if (_ttoi(szBuffer) == 1) { SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_SETCURSEL, PLACEMENT_TILE, 0); pData->placementSelection = PLACEMENT_TILE; } } RegCloseKey(regKey); pData->hBitmap = (HBITMAP) LoadImage(hApplet, MAKEINTRESOURCE(IDC_MONITOR), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); if (pData->hBitmap != NULL) { GetObject(pData->hBitmap, sizeof(BITMAP), &bitmap); pData->cxSource = bitmap.bmWidth; pData->cySource = bitmap.bmHeight; } }