Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
i write a program who would have to interact with the mouse, so I would like to get the screen/monitor widht and height in c++, for linux.
I search on google and here and didn't find anything.
Thank you
You can use XLibs functions to get the size of a display.
For example, for de default display :
#include <X11/Xlib.h>
Display* d = XOpenDisplay(NULL);
Screen* s = DefaultScreenOfDisplay(d);
XOpenDisplay(NULL) to get the main Display of your X server (assuming you have a basic X config with only one display...)
Then get the screen you want the resolution from.
For the main screen, use DefaultScreenOfDisplay, otherwise use : ScreenOfDisplay(display, screen_nb).
Then you get your Screen * structure.
You can access to the height and the width member to get the resolution !
s->height;
s->width;
This is better than using WidthOfScreen/HeightOfScreen because it take only one request to populate the Screen struct. And you probably aldready have it if you are aldready using Xlib in your program and you have the choice of the screen (in case of multiple screen).
You can get the number of screens running on your display by using ScreenCount(display) function
If you're in a X environment, you can use the Xlib:
http://tronche.com/gui/x/xlib/display/screen-information.html
WidthOfScreen and HeightOfScreen
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 4 years ago.
Improve this question
Recently I made a program by Qt(c++) to get screen resolution and show it by moving mouse. Currently, it works well but just on the MainWindow form;
How can I make it work when I move mouse on desktop also?
I Really appreciate you if you answer.;)
If you want to get mouse input outside of the widget then you have to call QWidget::grabMouse() and later QWidget::releaseMouse() when done. Bear in mind that it may not work on some operating systems or it may stop working when your widget (MainWindow on your case) loses focus. Also it may work worse with next update of operating system. That is because operating system vendors do not like spyware that spies mouse clicks or malware that locks whole desktop.
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 4 years ago.
Improve this question
I've got a slideshow program written in C++ with MFC. It's been working pretty well, with one window showing images on my secondary monitor.
I decided to add an option to display a smaller image (think "thumbnail") on my primary monitor.
When I stop the slideshow, the app makes a call to destroyWindow("Main Screen") which works fine, then the next call is destroywindow("Thumbnail") which hangs up.
While the app is running, I get a crosshair icon over the main screen, and an aero cursor over the thumbnail. If I try to do anything with the thumbnail image - such as click in the image or click resize on the window, it takes a few seconds for the action to take effect.
Any help would be appreciated! Thank you in advance. I'm using openCV2.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I am writing a program that firstly shows Java GUI using JNI and then calls Windows simple GUI.
IF I call Windows simple GUI without calling Java GUI, it shows on the top of other windows so I can see it directly right after it starts.
the problem is, if I call Windows simple GUI after calling JAVA GUI, it shows its windows simple GUI at bottom of other windows: other Windows just hide it.
Here is a picture, you cam see my simple Windows GUI has been hide by visual studio when it starts.
I am not sure I understood the question but I am going to try to answer anyway. What I understand is that you are launching 2 programs and you want to bring one of them to the front of the desktop.
I suppose that you are using CreateProcess to start the programs. There are flags that you can set in the STARTUPINFO structure (wShowWindow), so see if you can use that.
Otherwise you can try calling ShowWindow after launching both programs (and possibly waiting for the Java program to start). You will need to pass the window handle to this function.
You can obtain the window handle by calling EnumWindows, checking the executable file name for each window using GetWindowModuleFileName.
Pseudo code:
foreach window in EnumWindows()
if GetWindowModuleFileName(window) == "program.exe"
ShowWindow(window, ...)
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
I wants to make a GUI application with some fancy graphics, like flipping the window, creating translucent window on window/Linux platform.
What will be the steps for these, if I am using window/linux platform and C++ programming language using wxWidget or Juce.
As I know idea how to create such window, But i have some knowledge about wxWidget and Juce.
Thanks!
On wxWidgets, I found an interesting message that states:
Since wxFrame (which is usually the class you use for the main application),
is derived from wxTopLevelWindow, you can use wxTopLevelWindow::SetTransparent(int alpha) method, where: an alpha value of 0 sets the window to be fully transparent, and a value of 255 sets the window to be fully opaque.
There's a demo available here that seems to use this technique (search for Alpha.zip). I was able to compile it with:
g++ AlphaApp.cpp AlphaMain.cpp GUIDialog.cpp -o alpha `wx-config --libs` `wx-config --cxxflags`
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I mean it hides automatically, but I can still see it as a white line in the bottom which is annoying in fullscreen mode. Is there any way to completely remove it from the screen? I still can reach it with ctrl + home, so I don't need it to popup on mouse hover
Open the command prompt, navigate to the folder where vboxmanage is and execute the code below.
VBoxManage setextradata global GUI/Customizations noMenuBar,noStatusBar
You don't have to fool with VBoxManage if you'd rather use CLI. If you launch your VM with the VBoxSDL command, then the VM is displayed in a simple window without any pretty icons.
VBoxSDL --startvm
Reference:
http://www.virtualbox.org/manual/ch09.html#vboxsdl