MFC IVideoWindow put_FullScreenMode works incorrectly - winapi

So I have next problem:
I have two monitors and do video translation from web camera on one of them(secondary). I do it in full screen mode using
put_FullScreenMode().
It works fine but when I click any mouse button on area of primary monitor, window with video translation wrap into just window mode.
How can I save full screen mode working with primary monitor?
At the first, I move my video to the left (on secondary monito from primary) and use full screen mode.
if(monitors.GetCount() > 1)
gx.pVW->put_Left(primaryRect.right);
gx.pVW->put_FullScreenMode(OATRUE);
gx.pVW->put_Visible(OATRUE);
Thank you for your time.

[Much] older applications took advantage of FullScreenMode since API supplied a specific "full screen renderer" filter which efficiently took care of full screen presentation. Since then video adapters found their way into stretching of presented video and full screen mode become unnecessary. Windowed mode of video renderer (you are using) was also not a recommended mode compared to windowless any longer.
You would be better off using renderer in windowless mode right in your UI, in your window, form or dialog. Using borderless window hosting video renderer you can easily imitate full screen mode without actually change of display mode. Such window remains normal window and does not need to go back from full screen with another UI activity, e.g. such that happens on another monitor.
VMR filters themselves demonstrate the two ways of going fullscreen in their Filter Config property page:
Set Fullscreen does it the way you do and suffer from the mentioned issue. The other method does full screen mode using borderless window stretched to the extent of a monitor.
See also related discussion:
IVideoWindow::put_FullScreen returning only native video size

Related

How to create a global overlay for MacOS?

I am trying to develop a MacOS application using Xcode and Cocoa. My intent is to create an overlay on the user's screen that is mostly transparent, and does not register input. For example, an application like f.lux tints the colour of your entire screen like a global overlay, but you can still click on-screen items, as mouse clicks go right through (assuming that it's an overlay). How can I get started with achieving a similar overlay/widget?

How can I omit capturing of a button/region using DirectShow APIs?

I am using "Push Source Desktop" filter for capturing screen in my application.
I hide my application while recording is going on. Only a button for stopping the recording is visible on screen.
The button also gets recorded by the filter. During playback of the saved recording the button is visible along with rest of the screen region.
Is there any way I can prevent the button from getting recorded ?
My aim is to record the screen without the button. I cannot hide the button as it required for stopping the recording of my application.
I have tried to alter the alpha component of my button and make it semi-transparent. But still the filter captures the semi-transparent button.
How can I get the background region of the button and ignore the capturing of the button itself?
The problem has actually nothing to do with DirectShow. Long story short, DirectShow starts when you send the image you already have using DirectShow API and form factor of your software item.
Your question is how to display something on the desktop and grab from the same desktop excluding the part you present to user. I don't think you can implement it accurately without going in too many details, but quite so often you can do a trick like this: you know the position of your UI element so you can identify what's below it in terms of window Z-order (another application window or desktop etc). You can ask this window to repaint into your DC, and then combine the parts into the video you send downstream as a DirectShow source.

How to test what a webpage/web app will look like with Firefox on a specific screen resolution

I have the task of testing a web application where it is given that this app should fit a screen with the resolution of 1280*1024.
My work monitor is, however, a 20 inch screen with resolution 1680*1050.
Will resizing the Firefox window to 1280*1024 meet the test criteria or should I always change the resolution of my monitor? (Obviously, the second option is not preferred).
And also: Is there a Firefox plugin which will help me to set the window size appropriately?
Sometimes asking the question out loud helps to realise what you really want :)
There is Firefox addon called More Display Resolutions which helps to show the page in given resolution, even in 1280*1024
After you install it, just go to Tools -> Web Developer- > Responsive Design View and here you can turn on the preffered resolution:
Ok, the above died. What now?
Since time of writing this answer I changed jobs and do not have to test specific resolutions. But I did quick google search and this site seems to be working: http://quirktools.com/screenfly/
Responsive Design Mode is a stock part of Firefox which is available from the Menu Bar: Tools -> Web Developer -> Responsive Design View in all Firefox versions (keyboard shortcut: Ctrl + Shift + M, (or Cmd + Opt + M on OS X)). No extension is needed to access this mode.
Within Responsive Design Mode, you can set the exact display area used for the webpage. There are several preset dimensions. Alternately, custom display dimensions can be used by either directly typing the dimensions in, or dragging the display to the size desired. What is being set is the pixel dimensions used for the area containing the display of the webpage.
These dimensions are not the same as setting the pixel dimensions used for the entire screen, which would include the Firefox user interface. If you set it to the dimensions of a specific physical display size it is the same as would be displayed using Full Screen mode (on desktop versions, keyboard shortcut F11). If you want to see what your page will look like including the Firefox user interface, you will need to determine how many pixels the user interface consumes at the screen resolution you are interested in and on the platform you are intending to use (e.g. desktop, Android, iOS). You will then need to use a custom display size. Note that the amount of room used for the Firefox user interface will depend on many factors which include—in addition to the OS and resolution of the physical display—any theme the user has installed, which toolbars the user has chosen to display, and, potentially, which add-ons the user has installed.
This is what Responsive Design Mode looks like:

How to draw on screen using RealBasic, Visual basic? Where i have one default laptop screen and second monitor

I have my laptop default screen and second screen. How can I write RealBasic, VisualBasic (Java not possible) application which can allow me to paint on desktop (both screen)?
Most likely you won't be able to draw directly to the screen, but you could potentially grab screenshots of each screen and then draw onto those. Depending on what exactly you're trying to do with your application, it would almost definitely be a more realistic goal to grab a screenshot of each screen and then simply display the screenshots in standard windows that take up the entire screen, letting you then edit and "draw" onto the screen there.
Another option would be to create a transparent window, and then intercept mouse clicks and present information on that window.
If you're using RB on a Mac, you can use the Monkeybread Software Plugin to create a NSWindowMBS and modify the alpha value or an OverlayWindowMBS. It looks like you're trying to do this on Windows, though, so this won't work.

UI Design on Windows Mobile/CE

I have recently started on a project developing a window mobile/ce buisiness application. I have a ui design that uses a wizard to capture input data. To get the wizard started we open a windows form and maximize it. The form has one panel on it that is set to the size of the form. We pass a reference to the panel into the wizard controller as a container for the wizard user controls (each wizard step is a user control and the user control's size is set to that of the panel and thus the windows form. When viewed in a windows mobile emulator this works great the user control takes up the entire screen and the controls on the wizard step control are all visible on the screen with no vertical or horizontal scroll bars visible. When we load this onto one of the potential handheld devices the windows form doesn't fit exactly onto the screen as I would expect. There are both horizontal and vertical scroll bars and the controls aren't all visible. Does anyone have any hints and tips on getting around this problem? Is it possible to maximize a windows form in such a way that it exactly fills the screen on any mobile or ce device?
You need to check the screen resolution of your emulator and of your handheld device.
I suspect you are working on different screen resolutions.
If it's the case, then set the screen res for your emulator to match the screen res of your device. If for some reason this is not possible, just create your form to match the screen res of the device and try to fit all your UI in that limited space.
If you need to support many screen resolutions, you have 2 approaches:
1. Develop for the lowest res. This might look a bit ugly for higher res devices
2. Use anchors and control docking when defining your form layout.

Resources