jak w temacie, jak w c++ mozna wywołać okienko małe dialogowe np 200 na 200 pikseli z kwadracikiem np 50 na 10 na srodku tego okienka np w kolorze zielonym i czy takie okno będzie czy też nie bedzie blokowało głownej petkli aplikacji , owe wywołanie miało by być z konsoli czyli od funkcji main()

- Rejestracja:ponad rok
- Ostatnio:około 5 godzin
- Postów:390
- Rejestracja:9 miesięcy
- Ostatnio:około 10 godzin
- Postów:25
Nie wiem do czego to potrzebne. Sposobów jest wiele.
Raylib
#include "raylib.h"
int main() {
const int screenWidth = 200, screenHeight = 200;
InitWindow(screenWidth, screenHeight, "Raylib Example");
while (!WindowShouldClose()) {
BeginDrawing();
ClearBackground(RAYWHITE);
DrawRectangle((screenWidth - 50) / 2, (screenHeight - 10) / 2, 50, 10, GREEN);
EndDrawing();
}
CloseWindow();
return 0;
}
QT
#include <QApplication>
#include <QWidget>
#include <QPainter>
class MyWidget : public QWidget {
protected:
void paintEvent(QPaintEvent*) override {
QPainter painter(this);
painter.fillRect((width() - 50) / 2, (height() - 10) / 2, 50, 10, Qt::green);
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget window;
window.resize(200, 200);
window.show();
return app.exec();
}
WINAPI
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) {
switch (msg) {
case WM_PAINT: {
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
HBRUSH greenBrush = CreateSolidBrush(RGB(0, 255, 0));
RECT rect = { 75, 95, 125, 105 }; // (x1, y1, x2, y2)
FillRect(hdc, &rect, greenBrush);
DeleteObject(greenBrush);
EndPaint(hwnd, &ps);
} break;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd, msg, wp, lp);
}
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int nCmdShow) {
const char CLASS_NAME[] = "MyWindowClass";
WNDCLASS wc = {};
wc.lpfnWndProc = WndProc;
wc.hInstance = hInst;
wc.lpszClassName = CLASS_NAME;
RegisterClass(&wc);
HWND hwnd = CreateWindow(CLASS_NAME, "WinAPI Example", WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX,
CW_USEDEFAULT, CW_USEDEFAULT, 200, 200, nullptr, nullptr, hInst, nullptr);
ShowWindow(hwnd, nCmdShow);
MSG msg = {};
while (GetMessage(&msg, nullptr, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
Nie rozumiem co znaczy że ma być wywołany z konsoli. To czy będzie blokowało pewnie zależy od tego jak się napisze. Można użyć osobnego wątku gdyby to miał być problem. Nie mam w tych sprawach doświadczenia. Kod jest generowany. Sprawdziłem tylko Raylib - działa.

- Rejestracja:ponad rok
- Ostatnio:około 5 godzin
- Postów:390
z konsoli czyli start od int main(int argc, char* argv[]) {}
te dwa pierwsze przykady wszystko fajnie tyle ze mój vc++ nie posiada takich plików nagłówkowych i to u mnie nie działa ale dzięki , jak masz inny sposób to poczekam proszę i nie pod Raylib ani pod Qt tylko pod vc++
- Rejestracja:9 miesięcy
- Ostatnio:około 10 godzin
- Postów:25
jak pisałem. Sposobów jest wiele, tylko że myślę że większość z nich będzie wymagała jakiegoś dodatkowego pliku nagłówkowego. Dodatkowo, zero gwarancji że będzie działało w VC++6.0 Pro z C++98.
Raylib jest dostępny tu GitHub - strona projektu.
QT pewnie jakoś tu link
Tak pól żartem pół serio - bo w konsoli. Jeszcze jeden przykład.
ncurses (też generowany, ale z pomocą - działa)
#include <ncurses.h>
int main() {
initscr(); // Inicjalizacja ncurses
noecho();
curs_set(0); // Ukrycie kursora
start_color(); // Włączenie obsługi kolorów
init_pair(1, COLOR_GREEN, COLOR_GREEN); // Zielony tekst na zielonym tle
int width = 50, height = 10;
int start_x = (COLS - width) / 2;
int start_y = (LINES - height) / 2;
attron(COLOR_PAIR(1)); // Aktywuj kolor
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
mvaddch(start_y + i, start_x + j, ' '); // Używamy spacji do rysowania
}
}
attroff(COLOR_PAIR(1)); // Dezaktywuj kolor
refresh();
getch(); // Czekaj na klawisz
endwin(); // Zakończ ncurses
return 0;
}

- Rejestracja:ponad rok
- Ostatnio:około 5 godzin
- Postów:390
to ostatnie fajne tylko skąd pobrać ten plik nagłówkowy #include <ncurses.h>
- Rejestracja:9 miesięcy
- Ostatnio:około 10 godzin
- Postów:25
Używałem kiedyś pod Windows. Mam dwie małe gry w tym napisane. To jest 'win32a', wersja ncurses pod Windows. Ciekawą ma historie.

- Rejestracja:ponad rok
- Ostatnio:około 5 godzin
- Postów:390
jak tego PDCursesMod zainstalować pod vc++ ?
- Rejestracja:9 miesięcy
- Ostatnio:około 10 godzin
- Postów:25
Tutaj są jakieś instrukcje. Nigdy nie używałem VC++. Może raz przez chwilę. Na samym początku używałem Borland C++ Buildera 6 Personal. Później już tylko g++ (pod MinGW/MSYS2 albo Linux). W skrócie jest makefile dostępny (Makefile.vc - Microsoft Visual C++).