From ift

Simple FLTK tutorial using Bloodshed Dev-C++ with MinGw

Download Software

Get the latest version of Bloodshed Dev-C++ with Mingw/GCC from (~9 MB):
or v- directly from:

Install in an appropriate place.

After starting the program the first thing you need to do is to download the FLTK library. Go to “Tools->Check for updates / packages”.


Select devpak server “devpaks.org Community Devpaks” click “Check for updates” and check the fltk version 1.1.7 and click “Download selected” and continue with the installation of the library. 1.1.7 is a stable version of the FLTK library. FLTK2 is still a beta release.

Start a new FLTK project

Start Bloodshed Dev-C++ and start a new project “File->new-> project”. Choose “Empty Project” and give the project a name.


Add a new source file to the project “File->new->Source File”. Save file as main.cpp.

In order to setup the FLTK library for the project go to “Project->Project options” and add the following under the Parameters tab:

Compiler: -DWIN32 -mms-bitfields 
Linker: -lfltk -lole32 -luuid -lcomctl32 -lwsock32 –lm

File:Project options.bmp

Under the General tab choose Win32 GUI.

File:Project options2.bmp

The quick way of creating a FLTK project

“File->new-> project” and choose GUI and FLTK. This will automatically set up the linking and compiler setttings. File:Newproject2.bmp

Develop code

Create a new source file and write the following code:

#include !<FL/Fl.H>
#include \<FL/Fl_Window.H>

int main (int argc , int **argv)
    Fl_Window win(400,200,"Test");  //win(width, height,name)
    win.show();                     // show window
    return(Fl::run());              //fltk application loop

Save and press F9 (Compile & Run) and a simple window will be created.


Create a simple window with a button

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>

void but_cb(Fl_Widget* w, void*){
      Fl_Button *b= (Fl_Button*)w;
      if (b->label() == "Off") {

int main (int argc , int **argv)
    Fl_Window win(400,200,"Test");  //win(width, height,name)
    Fl_Button but(100,50,70,30,"On");
                         // show window
    return(Fl::run());              //fltk application loop