Esempio n. 1
0
 private static extern int GetWindowRect(IntPtr hwnd,
     ref  RECT lpRect);
Esempio n. 2
0
        /// <summary>
        /// プレビュー画面を表示する
        /// </summary>
        private void startPreview(IntPtr pPreviewHnd)
        {
            RECT lpRect = new RECT();
            bool bGetRect = Win32API.GetClientRect(pPreviewHnd, ref lpRect);

            HwndSourceParameters sourceParams = new HwndSourceParameters("sourceParams");
            sourceParams.PositionX = 0;
            sourceParams.PositionY = 0;
            sourceParams.Height = lpRect.Bottom - lpRect.Top;
            sourceParams.Width = lpRect.Right - lpRect.Left;
            sourceParams.ParentWindow = pPreviewHnd;
            sourceParams.WindowStyle = (int)(WindowStyles.WS_VISIBLE | WindowStyles.WS_CHILD | WindowStyles.WS_CLIPCHILDREN);

            // プレビュー画面では静音にする
            MainPanel previewPanel = new MainPanel(true);

            HwndSource winWPFContent = new HwndSource(sourceParams);
            winWPFContent.Disposed += (s, e) =>
            {
                if (previewPanel != null)
                    previewPanel.PanelExit();
            };

            Canvas canvas = new Canvas();
            canvas.Background = System.Windows.Media.Brushes.AliceBlue;
            canvas.Width = sourceParams.Width;
            canvas.Height = sourceParams.Height;

            // capture desktop
            Image img = new Image();
            img.Source = Win32API.CaptureScreen();
            Canvas.SetTop(img, 0);
            Canvas.SetLeft(img, 0);
            img.Width = sourceParams.Width; img.Height = sourceParams.Height;
            canvas.Children.Add(img);

            // movie panel
            Canvas.SetTop(previewPanel, 0);
            Canvas.SetLeft(previewPanel, 0);
            previewPanel.Width = sourceParams.Width;
            previewPanel.Height = sourceParams.Height;
            canvas.Children.Add(previewPanel);

            winWPFContent.RootVisual = canvas;
        }
Esempio n. 3
0
 public static extern bool GetClientRect(IntPtr hWnd, ref RECT lpRect);