Exemple #1
0
wxcdioCanvas::wxcdioCanvas(wxView *view, wxFrame *frame, const wxPoint& pos,
                           const wxSize& size, const long style) :
    wxScrolledWindow(frame, wxID_ANY, pos, size, style), m_treeCtrl(NULL),
    m_view(view)
{
    m_treeCtrl = new wxcdioTreeCtrl(view, this);

    wxBoxSizer* bSizer = new wxBoxSizer(wxVERTICAL);
    bSizer->Add(m_treeCtrl, 1, wxEXPAND, 5);

    SetSizer(bSizer);

    SetTargetWindow(m_treeCtrl);
    Layout();
}
Exemple #2
-1
void TfrmMain::wmTimer(WPARAM wParam, LPARAM lParam) {
    if (wParam == ID_bvlTarget) { // Timer for Target selector
        static int primarymouse;
        if(!m_hTargetHighlighter) {
            primarymouse=GetSystemMetrics(SM_SWAPBUTTON)?VK_RBUTTON:VK_LBUTTON;
            m_hTargetHighlighter=CreateWindowEx(WS_EX_LAYERED|WS_EX_TRANSPARENT|WS_EX_TOOLWINDOW,(LPTSTR)g_clsTargetHighlighter,NULL,WS_POPUP,0,0,0,0,NULL,NULL,hInst,NULL);
            if(!m_hTargetHighlighter) return;
            SetLayeredWindowAttributes(m_hTargetHighlighter,0,123,LWA_ALPHA);
            SetSystemCursor(CopyCursor(IcoLib_GetIcon(ICO_PLUG_SSTARGET)),OCR_NORMAL);
            Hide();
        }
        if(!(GetAsyncKeyState(primarymouse)&0x8000)) {
            KillTimer(m_hWnd,ID_bvlTarget);
            SystemParametersInfo(SPI_SETCURSORS,0,NULL,0);
            DestroyWindow(m_hTargetHighlighter),m_hTargetHighlighter=NULL;
            SetTargetWindow(m_hTargetWindow);
            Show();
            return;
        }
        POINT point;
        GetCursorPos(&point);
        m_hTargetWindow=WindowFromPoint(point);
        if(!((GetAsyncKeyState(VK_SHIFT)|GetAsyncKeyState(VK_MENU))&0x8000))
            for(HWND hTMP; (hTMP=GetParent(m_hTargetWindow)); m_hTargetWindow=hTMP);
        if(m_hTargetWindow!=m_hLastWin) {
            m_hLastWin=m_hTargetWindow;
            RECT rect;
            GetWindowRect(m_hLastWin,&rect);
            int width=rect.right-rect.left;
            int height=rect.bottom-rect.top;
            if(g_iTargetBorder) {
                SetWindowPos(m_hTargetHighlighter,NULL,0,0,0,0,SWP_HIDEWINDOW|SWP_NOMOVE|SWP_NOSIZE);
                if(width>g_iTargetBorder*2 && height>g_iTargetBorder*2) {
                    HRGN hRegnNew=CreateRectRgn(0,0,width,height);
                    HRGN hRgnHole=CreateRectRgn(g_iTargetBorder,g_iTargetBorder,width-g_iTargetBorder,height-g_iTargetBorder);
                    CombineRgn(hRegnNew,hRegnNew,hRgnHole,RGN_XOR);
                    DeleteObject(hRgnHole);
                    SetWindowRgn(m_hTargetHighlighter,hRegnNew,FALSE);//cleans up hRegnNew
                } else SetWindowRgn(m_hTargetHighlighter,NULL,FALSE);
            }
            SetWindowPos(m_hTargetHighlighter,HWND_TOPMOST,rect.left,rect.top,width,height,SWP_SHOWWINDOW|SWP_NOACTIVATE);
        }
        return;
    }
    if (wParam == ID_chkTimed) { // Timer for Screenshot
#ifdef _DEBUG
        OutputDebugStringA("SS Bitmap Timer Start\r\n" );
#endif
        if(!m_bCapture) {		//only start once
            if (m_Screenshot) {
                FIP->FI_Unload(m_Screenshot);
                m_Screenshot = NULL;
            }
            m_bCapture = true;
            switch (m_opt_tabCapture) {
            case 0:
                m_Screenshot = CaptureWindow(m_hTargetWindow, m_opt_chkClientArea);
                break;
            case 1:
                m_Screenshot = CaptureMonitor((m_opt_cboxDesktop > 0) ? m_Monitors[m_opt_cboxDesktop-1].szDevice : NULL);
                break;
            default:
                KillTimer(m_hWnd,ID_chkTimed);
                m_bCapture = false;
#ifdef _DEBUG
                OutputDebugStringA("SS Bitmap Timer Stop (no tabCapture)\r\n" );
#endif
                return;
            }
            if (!m_Screenshot) m_bCapture = false;
        }
        if (m_Screenshot) {
            KillTimer(m_hWnd,ID_chkTimed);
            m_bCapture = false;
#ifdef _DEBUG
            OutputDebugStringA("SS Bitmap Timer Stop (CaptureDone)\r\n" );
#endif
            SendMessage(m_hWnd,UM_EVENT, 0, (LPARAM)EVT_CaptureDone);
        }
    }
}