I'm new to win32 application building using C. I'm using DEV C++ and I'm able to get a window, by using the "windows application" icon in DEV. I want to know how to display our text on to the window???
That'll be very helpfull!
This is the readymade code generated by DEV

#include <windows.h>

/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
    switch(Message) {

        /* trap the WM_CLOSE (clicking X) message, and actually tell the window to close */
        case WM_CLOSE: {

        /* Upon destruction, tell the main thread to stop */
        case WM_DESTROY: {

        /* All other messages (a lot of them) are processed using default procedures */
            return DefWindowProc(hwnd, Message, wParam, lParam);
    return 0;

/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    WNDCLASSEX wc; /* A properties struct of our window */
    HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
    MSG Msg; /* A temporary location for all messages */

    /* zero out the struct and set the stuff we want to modify */
    wc.cbSize        = sizeof(WNDCLASSEX);
    wc.lpfnWndProc   = WndProc; /* This is where we will send messages to */
    wc.hInstance     = hInstance;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);

    /* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszClassName = "WindowClass";
    wc.hIcon         = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
    wc.hIconSm       = LoadIcon(NULL, IDI_APPLICATION);

    if(!RegisterClassEx(&wc)) {
        MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;

        CW_USEDEFAULT, /* x */
        CW_USEDEFAULT, /* y */
        640, /* width */
        480, /* height */

    if(hwnd == NULL) {
        MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);
        return 0;

        This is the heart of our program where all input is processed and 
        sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
        this loop will not produre unreasonably CPU usage
    while(GetMessage(&Msg, NULL, 0, 0) > 0) { /* If no error is received... */
        TranslateMessage(&Msg); /* Translate keycodes to chars if present */
        DispatchMessage(&Msg); /* Send it to WndProc */
    return Msg.wParam;

Recommended Answers

All 7 Replies

Since you are new to win32 you should have read this tutorial

Use TextOut() for drawing text in a window. Here is a YouTube video that shows how to use it.

Here is a list of all the font and text functions that you can use

hey, Can i please ask that what are you doing in this code ? looking interesting to me(as i suspect something related to window applications.)

All that is doing is creating and displaying a blank window. Read the tutorial link I posted if you want to learn more about how to make dialog boxes, menues, and controls.

hello dragon sir. Actually i want to learm something new in vacations. Can i learn this thing ? Will it be interesting to learn if i start learning it ? i have googled about it and find that he is exploring win32 API. what exactly it is used for ?

win32 api is the MS-Windows operating system functions, all programs that run under MS-Windows call them. There are thousands of win32 api functions, so learning them all can take years. But the basic functions aren't all that complicated and can be learned in a few hours or days. The tutorial I posted is pretty good at teaching the basics. All you need is a good modern C or C++ compiler, and there are several free ones such as Code::Blocks and MS Visual Studio 2012.

Not many programs are written in pure win32 api functions any more because of higher-level compilers and languages such as C# and VB.NET.

Microsoft has developed a new layer to the os called .NET. I don't know if .NET eventually calls win32 api functions or not, I suspect some do and some don't.

You can never go wring learning the basics of how MS-Windows programs work even if you eventually program in one or more of the higher-level languages.

hmmm.. I think it is not a good thing to learn. right ? looking boring..

. I think it is not a good thing to learn. right

Wrong. You will never go wrong learning something.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.