c++ rysowanie linie na ekranie

0

Napisałem aplikację konsolową i chciałbym narysować linie pionową na ekranie, w dowolnym jego miejscu. Jak mogę to zrobić?

0

To niestety nie działa: http://stackoverflow.com/questions/8542660/draw-on-desktop-using-visual-c
Błąd:

[Linker error] main.o:main.cpp:(.text+0x72): undefined reference to `CreateSolidBrush@4'
collect2: ld returned 1 exit status
C:\Users\ntmmed\Desktop\Mati\Programy\Obsluga myszy\Makefile.win [Error] [Obsluga_myszy.exe] Error 1 (if this is the only error: please check your library includes)

Już testowałem :) Próbowałem też WinApi ale nie wiem czy to nie przerost formy nad treścią. Bo musiałbym zrobić okno przeźroczyste na całym ekranie.

0

Bo jakiejś libki nie zlinkowałeś.

0

W przykładzie jest tylko
windows.h i iostream
A te mam zainkludowane.

0
MSDN napisał(a)

Minimum supported client Windows 2000 Professional

Minimum supported server Windows 2000 Server

Header Wingdi.h (include Windows.h)

Library Gdi32.lib

DLL Gdi32.dll

0
Azarien napisał(a):
MSDN napisał(a)

Minimum supported client Windows 2000 Professional

Minimum supported server Windows 2000 Server

Header Wingdi.h (include Windows.h)

Library Gdi32.lib

DLL Gdi32.dll

Dodałem do kompilatora i projektu bibliotekę Gdi32.lib, dodałem też plik nagłówkowy wingdi.h i mam taki error

C:\Users\ntmmed\Desktop\Mati\Programy\Obsluga myszy\main.cpp In function 'int main()':
15 43 C:\Users\ntmmed\Desktop\Mati\Programy\Obsluga myszy\main.cpp [Error] 'FillRect' was not declared in this scope
C:\Users\ntmmed\Desktop\Mati\Programy\Obsluga myszy\Makefile.win [Error] [main.o] Error 1 (if this is the only error: please check your library includes)

0

weź czasem trochę pogógluj...

http://msdn.microsoft.com/en-us/library/windows/desktop/dd162719(v=vs.85).aspx

odałem też plik nagłówkowy wingdi.h
nie. należy inkludować tylko windows.h, w którym jest zawarte #include <wingdi.h>

0

Niestety dalej nic. Mam taki kod:

#include <iostream>
#include <Windows.h>

int main() {    

    /* hide console window */
    ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);

    /* Calling GetDC with argument 0 retrieves the desktop's DC */
    HDC hDC_Desktop = GetDC(0);

    /* Draw a simple blue rectangle on the desktop */
    RECT rect = { 20, 20, 200, 200 };
    HBRUSH blueBrush=CreateSolidBrush(RGB(0,0,255));
    FillRect(hDC_Desktop, &rect, blueBrush);

    Sleep(10);
    return 0;
}

Zainkludowany do projektu folder z biblioteką Gdi32.lib. I nic,

C:\Users\ntmmed\Desktop\Mati\Programy\drawing\main.cpp In function 'int main()':
15 43 C:\Users\ntmmed\Desktop\Mati\Programy\drawing\main.cpp [Error] 'FillRect' was not declared in this scope
C:\Users\ntmmed\Desktop\Mati\Programy\drawing\Makefile.win [Error] [main.o] Error 1 (if this is the only error: please check your library includes)

0

Skopiowałem ten kod do pliku a.cpp,

D:\>g++ a.cpp
C:\Users\Jarek\AppData\Local\Temp\cciVAGdz.o:a.cpp:(.text+0x72): undefined refer
ence to `CreateSolidBrush@4'
collect2: ld returned 1 exit status

D:\>g++ a.cpp -lGdi32

Wszystko działa.

Pewnie źle dodałeś bibliotekę... Jakiego IDE używasz? Niech zgadnę, Dev-C++...?

0
msm napisał(a):

Skopiowałem ten kod do pliku a.cpp,

D:\>g++ a.cpp
C:\Users\Jarek\AppData\Local\Temp\cciVAGdz.o:a.cpp:(.text+0x72): undefined refer
ence to `CreateSolidBrush@4'
collect2: ld returned 1 exit status

D:\>g++ a.cpp -lGdi32

Wszystko działa.

Pewnie źle dodałeś bibliotekę... Jakiego IDE używasz? Niech zgadnę, Dev-C++...?

Tak. Używam dev c++
Udało się! Źle dołączałem bibliotekę, miałeś racje ;).

1 użytkowników online, w tym zalogowanych: 0, gości: 1