Get window snapshoot
7 отговора
0 прегледа
Get window snapshoot
Искам да попитам дали някой някога се е зблъсквал със следния проблем:
Трябва да се вземе моментна снимка на даден прозорец (що го наречем WinA). Проблема е че когато се копира DC-то на прозореца и ако върху него има друг прозорец (ще го наречем WinB) то тогава се копира и частта от прозорец WinB която попада върху прозореца WinA.
Знаете ли как може да се реши проблема използвайки C# или MFC или просто Win32 API функциите.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Трябва да се вземе моментна снимка на даден прозорец (що го наречем WinA). Проблема е че когато се копира DC-то на прозореца и ако върху него има друг прозорец (ще го наречем WinB) то тогава се копира и частта от прозорец WinB която попада върху прозореца WinA.
Знаете ли как може да се реши проблема използвайки C# или MFC или просто Win32 API функциите.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: Get window snapshoot
използвайки C# или MFC или просто Win32 API функциите
не може
не може
Re: Get window snapshoot
може - ако вземе указател към прозореца и го набичи най-отгоре - след това го връща обратно.естествено следеният човек ще забележи странно поведение, но все пак...
Re: Get window snapshoot
Ам не, не става с topmost window. Представи си, че програмата има няколко view-та (MDI application) и искам когато натисна Ctrl + Tab да ми показва диалог подобен на Vista Alt + Tab.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: Get window snapshoot
Стандартно се прави с WM_PRINT с mem dc във wParam, обаче някои custom контроли не си правят труда да го уважават и не винаги работи.
cheers,
</wqw>
[линк]
cheers,
</wqw>
[линк]
Re: Get window snapshoot
И аз стигнах до извода, че се прави с printing CDC, но не мога да създам такова CDC понеже нема стандартна функция за това, а и както казваш WM_PAINT може да не се обработва от някои контроли.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
Re: Get window snapshoot
я да видим какво ще каже [линк]
и другото е, че TopMost Определено не ти върши работа. то е аналог на SysModal в мфц/апи.
и другото е, че TopMost Определено не ти върши работа. то е аналог на SysModal в мфц/апи.
Re: Get window snapshoot
Туй дето го казва Google е добре ама тези функции ти връщат валидно printer DC само ако имаш принтер. Аз нямам и не искам да имам. Интересно е че кода дето сам драснал работи много добре (без да се получава сливане на прозорци) на Vista с активна Vista тема. Обаче ако сменя Vista темата с друга (промерно Windows Classic) и ефекта на сливането на прозорци пак се появява.
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"
"Добрите програмисти знаят какво да пишат. Великите знаят какво да пренапишат"