MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { Singleton( ); ui->setupUi(this); pSettings = CCommonFunction::GetSettings( CommonDataType::CfgSystem ); pTextCodec = CCommonFunction::GetTextCodec( ); pLocalComm = CLocalSvrCommunication::GetInstance( pTextCodec ); connect( pLocalComm, SIGNAL( NotifyMsg( QString ) ), this, SLOT( DisplayMessage( QString ) ) ); pLocalComm->StartupServer( ); g_pLocalCltComm = new CLocalCltCommunication( pTextCodec, this ); g_pLocalCltComm->Connect2Server( ); CNetProcessData::GetCommonParams( ); netServer = CSvrThread::GetInstance( this ); connect( netServer, SIGNAL( Notify( QString ) ), this, SLOT(DisplayMessage( QString ) ) ); netServer->start( ); netServer->StartupUdpServer( true ); netServer->StartupTcpServer( true ); qRegisterMetaType< QAbstractSocket::SocketError >( "QAbstractSocket::SocketError" ); sysTrayIcon = NULL; NotifyIcon( ); Qt::WindowFlags flags = windowFlags( ); flags &= ( ~Qt::WindowMinimizeButtonHint ); setWindowFlags( flags ); //setWindowState( Qt::WindowMinimized ); //close( ); }
LRESULT AutoIt_App::WndProcHandler (HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { static UINT s_uTaskbarRestart; // Holds taskbar recreate message // What window is the message for? (note, g_hWnd may be NULL during startup WM_CREATE) if (hWnd == g_hWnd || g_hWnd == NULL) { // // Main window messages // switch (iMsg) { // Window initial creation case WM_CREATE: AUT_DEBUGMSG("==> AutoIt_App::WndProc, g_hWnd: WM_CREATE\n") // Start the main timer used for flashing the "pause" icon SetTimer(hWnd, AUT_MAIN_TIMER_ID, AUT_MAIN_TIMER_DELAY, NULL); // Register a message so we know if explorer crashes and we have to redraw taskbar s_uTaskbarRestart = RegisterWindowMessage("TaskbarCreated"); return 0; // Some form of timer has been triggered - check it out case WM_TIMER: HandleTimer(hWnd, wParam, lParam); return 0; // Menu command received case WM_COMMAND: if (HandleCommand(hWnd, iMsg, wParam, lParam) == true) return 0; // completely handled break; // Window close clicked, if this returns 0 then user will be prevented from closing case WM_CLOSE: AUT_DEBUGMSG("==> AutoIt_App::WndProc, g_hWnd: WM_CLOSE\n") // Notify the script that close was requested but DON'T allow the system to continue // with the defaut WM_CLOSE - we will call DestroyWindow() ourselves from the script g_bTrayExitClicked = true; g_bKillWorkerThreads = true; // Ask worker threads to stop (otherwise the script // may be blocked - e.g InetGet on a big download) //break; return 0; // Window is being destroyed case WM_DESTROY: AUT_DEBUGMSG("==> AutoIt_App::WndProc, g_hWnd: WM_DESTROY\n") KillTimer(hWnd, AUT_MAIN_TIMER_ID); // Remove any timers in use DestroyTrayIcon(); // Remove tray icon if present PostQuitMessage(0); // Tell the message loop to stop return 0; // Window is getting focus case WM_SETFOCUS: SetFocus(g_hWndEdit); // Put focus on the main edit window return 0; // Window has been resized in some way case WM_SIZE: MoveWindow(g_hWndEdit, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); return 0; // Popup menu accessed case AUT_WM_NOTIFYICON: NotifyIcon(hWnd, iMsg, wParam, lParam); return 0; case WM_HOTKEY: // Ignore when paused if (!g_bScriptPaused) { g_HotKeyQueue[g_HotKeyNext++] = wParam; // Store the hotkey ID pressed if (g_HotKeyNext >= AUT_HOTKEYQUEUESIZE) g_HotKeyNext = 0; } //MessageBox(NULL, "", "Hotkey pressed", MB_OK); break; default: // If the icon was visible and explorer crashed then redraw if(iMsg == s_uTaskbarRestart && g_bTrayIcon == true) { AUT_DEBUGMSG("==> AutoIt_App::WndProc, g_hWnd: TaskbarRestart received - redrawing trayicon\n") DestroyTrayIcon(); CreateTrayIcon(); } break; } // end main switch } // If not handled, return the default return DefWindowProc(hWnd, iMsg, wParam, lParam); } // WndProcHandler()