BOOL WZCWLanNetworkDlgProc(HWND hDlg, UINT message, UINT wParam, LONG lParam) { PWLAN_INFO psWLanInfo = (PWLAN_INFO)GetWindowLong(hDlg, GWL_USERDATA); BOOL fRet = PropPageDialogHelper(hDlg, message, wParam, lParam); // Figure out whther to show the listbox or "insert card" text and hide // the control we don't need. We do this before calling SHRCMLDialogProc // because these controls occupy the same position - if they're both // visible, the dialog resizing code gets confused. if (WM_INITDIALOG== message) { psWLanInfo = (PWLAN_INFO)(((PROPSHEETPAGE*)lParam)->lParam); if (psWLanInfo) { psWLanInfo->hDlg = hDlg; SetWindowLong(hDlg, GWL_USERDATA, (LPARAM)psWLanInfo); OnInitDialog(psWLanInfo); if (psWLanInfo->fWirelessCardPresent) { // show listbox, hide textbox ShowWindow(GetDlgItem(hDlg,IDC_WZC_STATIC_NO_WIRELESS_CARD_PRESEND),SW_HIDE); } else { ShowWindow(GetDlgItem(hDlg,IDC_WZC_LIST_NETWORKS),SW_HIDE); } } } fRet = SHRCMLDialogProc( HINST_RESDLL, MAKEINTRESOURCE(IDD_WZC_WLAN_NETWORK), hDlg, message, wParam, lParam); // Check for the home screen being activated if (g_uMsgActivateHome == message) { OnActivateHome(psWLanInfo); } switch(message) { case WM_INITDIALOG: fRet = TRUE; break; case WM_COMMAND: fRet = OnCommand(psWLanInfo, wParam); break; case WM_ACTIVATE: OnActivate(wParam, (HWND)lParam, psWLanInfo); break; case WM_NOTIFY: fRet = OnNotify(psWLanInfo, wParam, lParam); break; case WM_DESTROY: OnDestroy(psWLanInfo); break; case WM_SIZE: RelayoutDlg(psWLanInfo); break; case WM_INITMENUPOPUP: OnMenuPopup(psWLanInfo, (HMENU) wParam, ListView_GetNextItem(psWLanInfo->hwndNetList, -1, LVNI_SELECTED)); break; case WM_SHWZC_CALLBACK: psWLanInfo->dwHWFlags = SHWZCGetHardwareFlags(); switch (wParam) { case SHWZC_EVENT_BROADCASTCHANGE: case SHWZC_EVENT_CONNECTING: case SHWZC_EVENT_CONNECTION: if (NULL == psWLanInfo->hwndNCPrsht) { RefreshNetListView(psWLanInfo); } break; } break; case WM_WARNING_NO_WIRELESS_CARD: if (psWLanInfo->hwndNCPrsht) { // IDOK actually is not save, this will save network settings while // unplug wireless network card. But IDCANCEL is refused by Network Property // property sheet. So we need to keep an eye on this one. PostMessage(psWLanInfo->hwndNCPrsht, WM_COMMAND, IDOK, 0); } break; } return fRet; }
BOOL CALLBACK MainWndProc (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_CREATE: { #ifdef _WIN32_WCE SHMENUBARINFO mbi; memset(&mbi, 0, sizeof(SHMENUBARINFO)); mbi.cbSize = sizeof(SHMENUBARINFO); mbi.hwndParent = hwnd; mbi.hInstRes = g_hinst; mbi.nBmpId = 0; mbi.cBmpImages = 0; mbi.nToolBarId = IDM_MAIN_MENU; SHCreateMenuBar(&mbi); g_hwnd_menu = mbi.hwndMB; #else g_hwnd_menu = NULL; #endif g_hwnd_status = CreateWindow(TEXT("STATIC"), TEXT("Status"), WS_CHILD|WS_VISIBLE|SS_LEFT, 0, 0, disp_w, caption_h, hwnd, NULL, g_hinst, NULL); do_layout(1); } break; case WM_COMMAND: if (HandleCommand(hwnd, wParam, lParam)) return DefWindowProc(hwnd, msg, wParam, lParam); break; case WM_TIMER: if (wParam==STATE_TIMER_ID) update_state_info(); #ifdef TERM_NOT_THREADED else gf_term_process_step(term); #endif break; case WM_HOTKEY: break; case WM_KEYDOWN: if (playlist_navigation_on && !navigation_on) { if (wParam==VK_LEFT) { switch_playlist(1); break; } else if (wParam==VK_RIGHT) { switch_playlist(0); break; } } /*fall through*/ case WM_SYSKEYDOWN: case WM_SYSKEYUP: case WM_KEYUP: case WM_CHAR: case WM_MOUSEMOVE: case WM_LBUTTONDOWN: case WM_LBUTTONDBLCLK: case WM_LBUTTONUP: ::SendMessage(g_hwnd_disp, msg, wParam, lParam); return 0; case WM_INITMENUPOPUP: OnMenuPopup(hwnd, wParam); break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_SETFOCUS: gf_freeze_display(0); break; case WM_KILLFOCUS: if ((HWND) wParam==g_hwnd) { gf_freeze_display(1); } break; case WM_ACTIVATE: if (WA_INACTIVE != LOWORD(wParam)) { if ((HWND) lParam == g_hwnd) { gf_freeze_display(0); SetFocus(hwnd); } } else { if ((HWND) lParam == g_hwnd_disp) { gf_freeze_display(1); } } break; case WM_LOADTERM: if (!LoadTerminal()) { MessageBox(hwnd, _T("Cannot load GPAC"), _T("Error"), MB_OK); PostQuitMessage(0); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 回调函数 LRESULT CALLBACK CMainWnd::MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { CChildWnd *pWnd; TCHAR tzTemp[MAX_PATH]; switch (uMsg) { case WM_CREATE: // 窗口被创建 m_hWnd = hWnd; m_hMenu = GetMenu(m_hWnd); OnCreate(); break; case WM_SIZE: // 尺寸改变 OnSize(wParam, lParam); return 0; case WM_WINDOWPOSCHANGED: // 位置改变 for (pWnd = CChildWnd::m_pHead; pWnd; pWnd = pWnd->m_pNext) { if (pWnd->m_hWnd) { pWnd->SetDrawRect(); } } break; case WM_INITMENUPOPUP: // 弹出菜单初始化 OnMenuPopup(wParam, lParam); break; case WM_MENUSELECT: // 菜单项被选择 OnMenuSelect(LOWORD(wParam)); break; case WM_EXITMENULOOP: // 退出菜单循环 CClientWnd::SetStatusText(LNG_Ready); break; case WM_COMMAND: // 命令处理 OnCommand(wParam, lParam); break; case WM_COPYDATA: // 本程序的其它实例通知打开文件 if (((PCOPYDATASTRUCT) lParam)->dwData == IDM_File_Open) { static TCHAR s_tzFileName[MAX_PATH]; lstrcpyn(s_tzFileName, (PTSTR) ((PCOPYDATASTRUCT) lParam)->lpData, MAX_PATH); PostMessage(m_hWnd, WM_COMMAND, IDM_File_Open, (LPARAM) s_tzFileName); } break; case WM_HOTKEY: // 热键消息 if ((m_hWnd != GetForegroundWindow()) && (wParam == IDC_TrayIcon)) { OnTrayIcon(FALSE); } break; case WM_DROPFILES: // 拖动文件 DragQueryFile((HDROP) wParam, 0, tzTemp, MAX_PATH); DragFinish((HDROP) wParam); OnFileOpen(tzTemp); break; case WM_HELP: // 帮助 OnCommand(IDM_Help_Content); break; case WM_DESTROY: // 窗口被销毁 OnDestroy(); break; } return DefFrameProc(hWnd, CClientWnd::m_hWnd, uMsg, wParam, lParam); }