SetPixel() function on windows.h. How to use it??

If you are learning computer graphics, you may need to create graphical structure using pixels. When trying to implement this in program, you need the programming language that has facility to print a single pixel on the screen i.e. the language that supports pixel operation. Fortunately almost all Lagrange with GUI facility support pixel printing  Now what about C/C++? You cannot print a pixel in console window. You need some graphical mechanism for this. Fortunately, windows user can use windows.h library for this.
windows.h provides a function SetPixel() to print a pixel at specified location of a window. The general form of the function is

Loading…
SetPixel(HDC hdc, int x, int y, COLORREF& color);

Where, x and y are coordinates of pixel to be display and color is the color of pixel. To print a pixel only writing SetPixel command and embedding windows.h is not sufficient. You need some extra linking operation for this. You must link the library libgdi32.a in your IDE’s linker setting before using the SetPixel function. The following program draws a horizontal line to a window. If you have any confusion please ask me in the form of comment, I will reply you as soon as possible.

Note

To run this code in your machine with Code::blocks IDE, add a link library libgdi32.a (it is usually inside MinGWlib )  in linker setting.

#include 
static HWND sHwnd;
static COLORREF redColor=RGB(255,0,0);
static COLORREF blueColor=RGB(0,0,255);
static COLORREF greenColor=RGB(0,255,0);
 
void SetWindowHandle(HWND hwnd)
{
    sHwnd=hwnd;
}
void setPixel(int x,int y,COLORREF& color=redColor)
{
    if(sHwnd==NULL)
    {
        MessageBox(NULL,"sHwnd was not initialized !","Error",MB_OK|MB_ICONERROR);
        exit(0);
    }
    HDC hdc=GetDC(sHwnd);
    SetPixel(hdc,x,y,color);
    ReleaseDC(sHwnd,hdc);
    return;
}
void drawLine()
{
    for(int i = 0; i 
Loading…