Beispiel #1
0
            protected override HandleRef BuildWindowCore(HandleRef hwndParent)
            {
                var wParent = (wnd)hwndParent.Handle;

                _w = WndUtil.CreateWindow(_wndProc = _WndProc, false, "Static", null, WS.CHILD | WS.CLIPCHILDREN, 0, 0, 0, 10, 10, wParent);

                return(new HandleRef(this, _w.Handle));
            }
Beispiel #2
0
        //Called from Main() in non-admin process when command line starts with /dd.
        public static void MainDD(string[] args)
        {
            _msgWnd = (wnd)args[1].ToInt();

            WndUtil.RegisterWindowClass("Au.Editor.DD", _WndProc);
            _w = WndUtil.CreateWindow("Au.Editor.DD", null, WS.POPUP | WS.DISABLED, WSE.LAYERED | WSE.NOACTIVATE | WSE.TOOLWINDOW | WSE.TOPMOST);
            Api.SetLayeredWindowAttributes(_w, 0, 1, 2);

            Thread.CurrentThread.TrySetApartmentState(ApartmentState.Unknown);             //uninit MTA
            Api.OleInitialize(default);
Beispiel #3
0
        //const string c_winClassName = "KTreeView";
        //static KTreeView() {
        //	WndUtil.RegisterWindowClass(c_winClassName);
        //}

        protected override HandleRef BuildWindowCore(HandleRef hwndParent)
        {
            var wParent = (wnd)hwndParent.Handle;

            //WndUtil.CreateWindow(_wndProc = _WndProc, false, c_winClassName, Name, WS.CHILD | WS.CLIPCHILDREN, 0, 0, 0, 10, 10, wParent);

            _w       = WndUtil.CreateWindow(_wndProc = _WndProc, false, "Static", Name, WS.CHILD | WS.CLIPCHILDREN, 0, 0, 0, 10, 10, wParent);
            _hasHwnd = true;
            _SetDpiAndItemSize(More.Dpi.OfWindow(_w));

            //Mouse messages must go to the parent window. On WM_NCHITTEST return HTTRANSPARENT.
            //	But UIA element from point does not work. Solution: let it be Static; UIA knows it.
            //Other tested ways don't work:
            //	WS.DISABLED. Scrollbars don't work.
            //	WSE.TRANSPARENT|WSE.LAYERED + Api.SetLayeredWindowAttributes(_w, 0, 0, 0). Unavailable on Win7. Scrollbars and UIA don't work.
            //	Relay mouse messages to the parent window. Does not work.

            return(new HandleRef(this, _w.Handle));
        }
Beispiel #4
0
            /// <returns>0 Cancel, 1 OK, 2 Retry.</returns>
            public int Show(Bitmap img, ICFlags flags, RECT r)
            {
                _img    = img;
                _flags  = flags;
                _cursor = MouseCursor.Load(ResourceUtil.GetBytes("<Au>resources/red_cross_cursor.cur"), 32);
                _dpi    = screen.primary.Dpi;
                _w      = WndUtil.CreateWindow(_WndProc, true, "#32770", "Au.uiimage.CaptureUI", WS.POPUP | WS.VISIBLE, WSE.TOOLWINDOW | WSE.TOPMOST, r.left, r.top, r.Width, r.Height);
                _w.ActivateL();

                try {
                    while (Api.GetMessage(out var m) > 0 && m.message != Api.WM_APP)
                    {
                        switch (m.message)
                        {
                        case Api.WM_KEYDOWN when !_capturing:
                            switch ((KKey)(int)m.wParam)
                            {
                            case KKey.Escape: return(0);

                            case KKey.F3: return(2);
                            }
                            break;

                        case Api.WM_RBUTTONUP when m.hwnd == _w:
                            switch (popupMenu.showSimple("1 Retry\tF3|2 Cancel\tEsc", owner: _w))
                            {
                            case 1: return(2);

                            case 2: return(0);
                            }
                            break;
                        }
                        Api.DispatchMessage(m);
                    }
                }
                finally {
                    var w = _w; _w = default;
                    Api.DestroyWindow(w);
                }
                return(_res);
            }