c++如何写一个用Windows的cmd运行的固定窗口,窗口标题为“俄罗斯方块by近代史”
时间: 2024-12-16 13:14:21 浏览: 3
在C++中,创建一个Windows下的固定大小、标题为“俄罗斯方块by近代史”的命令行窗口通常需要使用Windows API函数。下面是一个简单的示例,使用CreateWindowEx函数创建一个窗口,并结合MessageBox显示一条消息,这只是一个基本框架,实际的游戏窗口可能还需要处理游戏逻辑和界面绘制:
```cpp
#include <windows.h>
#pragma comment(lib, "user32.lib")
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
HINSTANCE hInstance;
int WINAPI WinMain(HINSTANCE hInstance_, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
hInstance = hInstance_;
// 窗口样式设置
const wchar_t* className = L"RussianTetris";
const wchar_t* windowName = L"俄罗斯方块by近代史";
// 创建窗口
HWND hWnd = CreateWindowEx(
WS_EX_CLIENTEDGE, // 边框风格
className.c_str(), // 类名
windowName, // 标题
WS_OVERLAPPEDWINDOW, // 普通窗口样式
CW_USEDEFAULT, // X坐标
CW_USEDEFAULT, // Y坐标
640, // 宽度
480, // 高度
NULL, // 父窗口句柄
NULL, // 窗口菜单
hInstance, // 实例句柄
NULL // 参数
);
if (hWnd == NULL) {
return 0;
}
// 显示窗口
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return static_cast<int>(msg.wParam);
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_DESTROY:
PostQuitMessage(0); // 结束程序
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
```
要在CMD中直接运行这个程序,你需要将这段代码保存到一个.cpp文件(例如main.cpp),然后通过VS的命令提示符或者MinGW/GCC编译并生成.exe文件。编译命令类似如下:
```sh
g++ main.cpp -o RussianTetris.exe -mwindows
```
之后在CMD中输入`RussianTetris.exe`即可启动。
阅读全文