//按下设置键 void COptionDlg::OnBnClickedOptiondlgOk() { int b1 = m_AutoRun.GetCheck(); int b2 = m_RelePas.GetCheck(); bool bAutoRun = b1 == BST_CHECKED ? true : false; bool bRele = b2 == BST_CHECKED ? true : false; CPassManagerDlg * p = (CPassManagerDlg *)GetParent(); if (bInitAuto != bAutoRun) { SetAutoRun(bAutoRun); p->OnSonDlgClose(m_errStr); } if (bInitRele != bRele) { SetFileRele(bRele); p->OnSonDlgClose(m_errStr); } OnOK(); }
// Message handler for Dialog INT_PTR CALLBACK DlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { if (message == RegisterWindowMessage(L"TaskbarCreated") && !IsWindowVisible(hDlg)) { Minimize(hDlg); return (INT_PTR)TRUE; } TCHAR buffer[MAX_LOADSTRING]; INT tmp; switch (message) { case WM_INITDIALOG: OnInitDlg(hDlg); InstallCtrlMouseHook(hDlg); InstallHook_Draw(hDlg); SetNumTimeReplay(REPLAYTIME); //Set Icon for Dialog SendMessage(hDlg, WM_SETICON, ICON_SMALL, (LPARAM)LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1))); SendMessage(hDlg, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1))); return (INT_PTR)TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: DestroyWindow(hDlg); return (INT_PTR)TRUE; case IDC_BUTTONAPPLY: UpdateData(DIRECTION, BUTTON, SPEED); SetNumTimeReplay(REPLAYTIME); EnableWindow(GetDlgItem(hMainDlg, IDC_BUTTONAPPLY), FALSE); Minimize(hDlg); SaveSettings(); return (INT_PTR)TRUE; case IDC_AUTORUN: if (Button_GetCheck(GetDlgItem(hDlg, IDC_AUTORUN))) SetAutoRun(), AUTORUN = 1, SaveSettings(); else OffAutoRun(), AUTORUN = 0, SaveSettings(); break; case IDC_EDITSPEED: if (HIWORD(wParam) != EN_CHANGE) break; Edit_GetText(GetDlgItem(hDlg, IDC_EDITSPEED), buffer, MAX_LOADSTRING); tmp = _wtoi(buffer); if (tmp > 0 && tmp <= 10000000) EnableWindow(GetDlgItem(hMainDlg, IDC_BUTTONAPPLY), TRUE), SPEED = tmp; else EnableWindow(GetDlgItem(hMainDlg, IDC_BUTTONAPPLY), FALSE); return (INT_PTR)TRUE; case IDC_EDITREPLAY: if (HIWORD(wParam) != EN_CHANGE) break; Edit_GetText(GetDlgItem(hDlg, IDC_EDITREPLAY), buffer, MAX_LOADSTRING); tmp = _wtoi(buffer); if (tmp > 0 && tmp <= 10000000) EnableWindow(GetDlgItem(hMainDlg, IDC_BUTTONAPPLY), TRUE), REPLAYTIME = tmp; else EnableWindow(GetDlgItem(hMainDlg, IDC_BUTTONAPPLY), FALSE); } break; case WM_KEYDOWN: if (wParam == VK_CONTROL && active) if (!draw) { hWndDraw = CreateWindow(L"WindowDraw", NULL, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInst, NULL); SetWindowPos(hWndDraw, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); draw = TRUE; GetHWND(hWndDraw); SetWindowLong(hWndDraw, GWL_EXSTYLE, GetWindowLong(hWndDraw, GWL_EXSTYLE) | WS_EX_LAYERED); SetLayeredWindowAttributes(hWndDraw, 0, 255, LWA_ALPHA); RECT rect; SetWindowPos(hWndDraw, NULL, 0, 0, GetDeviceCaps(GetDC(NULL), HORZRES), GetDeviceCaps(GetDC(NULL), VERTRES), SWP_FRAMECHANGED); GetWindowRect(hWndDraw, &rect); HRGN hrgn; hrgn = CreateRectRgn(0, 32, GetDeviceCaps(GetDC(NULL), HORZRES), GetDeviceCaps(GetDC(NULL), VERTRES) - 32); SetWindowRgn(hWndDraw, hrgn, true); ShowWindow(hWndDraw, SW_MAXIMIZE); } else { ShowWindow(hWndDraw, SW_HIDE); draw = FALSE; hWndDraw = NULL; } break; case WM_CLOSE: Minimize(hDlg); active = TRUE; return (INT_PTR)TRUE; case WM_TRAYICON: if (wParam == TRAY_ICON_ID && lParam == WM_LBUTTONUP){ Restore(hDlg); active = FALSE; } return (INT_PTR)TRUE; case WM_DESTROY: UninstallCtrlMouseHook(); UninstallHook_Draw(); PostQuitMessage(0); return (INT_PTR)TRUE; } return (INT_PTR)FALSE; }
void CpermoDlg::OnRButtonDown(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CPoint p; //传递过来的坐标为相对于窗口左上角的坐标,WM_CONTEXTMENU传递过来的是屏幕坐标 GetCursorPos(&p);//鼠标点的屏幕坐标 m_Menu.CheckMenuItem(SelectedInterface + START_INDEX, MF_BYCOMMAND | MF_CHECKED); int nID = m_Menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RETURNCMD, p.x, p.y, this); switch (nID) { case IDM_TOPMOST: OnTopmost(); break; case IDM_GREEN: OnGreen(); break; case IDM_BLUE: OnBlue(); break; case IDM_BLACK: OnBlack(); break; case IDM_RED: OnRed(); break; case IDM_ORANGE: OnOrange(); break; case IDM_EXIT: OnExit(); break; case IDM_AUTOHIDE: OnAutoHide(); break; case IDM_SHOWBYHOVER: SetShowWay(); break; case IDM_SHOWBYLDOWN: SetShowWay(); break; case IDM_TRANS0: OnTrans0(); break; case IDM_TRANS10: OnTrans10(); break; case IDM_TRANS20: OnTrans20(); break; case IDM_TRANS30: OnTrans30(); break; case IDM_TRANS40: OnTrans40(); break; case IDM_TRANS50: OnTrans50(); break; case IDM_TRANS60: OnTrans60(); break; case IDM_TRANS70: OnTrans70(); break; case IDM_TRANS80: OnTrans80(); break; case IDM_TRANS90: OnTrans90(); break; case IDM_FONTSIZE12: SetFontSize(12); break; case IDM_FONTSIZE13: SetFontSize(13); break; case IDM_FONTSIZE14: SetFontSize(14); break; case IDM_FONTSIZE15: SetFontSize(15); break; case IDM_FONTSIZE16: SetFontSize(16); break; case IDM_FONTSIZE17: SetFontSize(17); break; case IDM_FONTSIZE18: SetFontSize(18); break; case IDM_AUTOSTART: SetAutoRun(); break; case IDM_SHOWNETINFO: ShowNetInfo(); break; case 0: return; default: {m_Menu.CheckMenuItem(SelectedInterface + START_INDEX, MF_BYCOMMAND | MF_UNCHECKED); SelectedInterface = nID - START_INDEX; } break; } CDialog::OnRButtonDown(nFlags, point); }