下一代显示器启动画面| C ++

时间:2015-04-30 05:08:02

标签: c++ visual-studio

是否有显示没有窗口的闪屏?就像图像弹出几秒钟一样,之后会显示一个对话框,询问玩家是否要创建新项目或打开新项目。我知道,两个问题合而为一。我现在正在使用Visual Studio。

谢谢!

1 个答案:

答案 0 :(得分:4)

你的意思是:

代码块:
Code Blocks

的Photoshop:
Photoshop

甚至,您正在使用的程序,Visual Studio:
Visual Studio

其他的包括Adobe套件中的任何内容,以及办公套件中的任何内容,就在我的脑海中。

所以,显然答案是肯定的。这样做的方法是创建一个无边框窗口。使用C ++,这似乎有点困难。我强烈建议坚持使用矩形闪屏,除非你想处理油漆事件以画出你下面的任何东西,这是一种痛苦。

我找到了一个方法over here at Programmers Heaven,它位于以下位置,因此根据SO指南也会在此网站上显示。

另一种选择是简单地使用C#,这使得这种事情变得非常容易。

首先使用WS_POPUP标志

创建一个窗口

另外 - 在创建窗口时考虑到系统可能仍然想要绘制边框和标题栏等事实...所以计算到窗口尺寸如下

#define WINDOW_WIDTH 300 // whatever size you need
#define WINDOW_HEIGHT 256

// Calculate the proper size for the window given a client 
DWORD dwFrameWidth = GetSystemMetrics( SM_CXSIZEFRAME );
DWORD dwFrameHeight = GetSystemMetrics( SM_CYSIZEFRAME );
DWORD dwMenuHeight = GetSystemMetrics( SM_CYMENU );
DWORD gdwWindowXPos = ( GetSystemMetrics( SM_CXSCREEN ) - WINDOW_WIDTH ) / 2;
DWORD gdwWindowYPos = ( GetSystemMetrics( SM_CYSCREEN ) - WINDOW_HEIGHT ) / 2;
DWORD gdwWindowWidth = WINDOW_WIDTH + dwFrameWidth * 2;
DWORD gdwWindowHeight = WINDOW_HEIGHT + dwFrameHeight * 2 + dwMenuHeight;

你应该为你的窗口创建这样的东西:

HWND hwnd = CreateWindowEx(0,
                           "Class Name",
                           "Window Name",
                           WS_POPUP, // and any other flags you need
                           gdwWindowXPos, // these just center the
                           gdwWindowYPos, // window on the screen
                           gdwWindowWidth, // Calculated width
                           gdwWindowHeight, // and height
                           NULL, // Parent window
                           NULL, // Menu (don't want one)
                           hInst, // hInstance
                           NULL // Other Parameters
);

......对......

接下来是设置窗口区域,以便您只使用CreateRectRgnSetWindowRgn来绘制您感兴趣的区域:

HRGN hrgn = CreateRectRgn( 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT );

SetWindowRgn( hwnd, hrgn, TRUE );

当我#defined WINDOW_WIDTHWINDOW_HEIGHT

时,这会将窗口剪切为我想要的尺寸