Valhalla Legends Forums Archive | C/C++ Programming | Problem: Loading a winapi window from main class then a separate class

AuthorMessageTime
JJBot
Hello,

After figuring out how to add a WndProc to a seperate class and handle a window I've come across a problem:

In my main.cpp file I load a window with classname "PokerMain" and then create a class of type CardTable. When CardTable is initialized it is supposed to load a window of classname "PokerTable" but does not appear - that is, unless I change the window so that it's parent is HWND_DESKTOP rather than identifying PokerMain's hwnd as it's parent, then it appears after the PokerMain window is closed.

However, when using PokerMain's hwnd as the parent and loading the application I close PokerMain's window yet the program is not terminated. So the PokerTable window is loaded but not visible?

Heres what I have in main.cpp (PokerMain)
[code]
    hwndMain = CreateWindowEx (0, szClassName, "Poker Main", (WS_CLIPCHILDREN | WS_OVERLAPPEDWINDOW) & 0xFFFEFFFF,
                              CW_USEDEFAULT, CW_USEDEFAULT, 800, 600, HWND_DESKTOP, 0, hThisInstance, NULL);
    ShowWindow(hwndMain, 1);
    CardTable cd("pokerbgd.dat", 800, 600, hwndMain);
[/code]

And what I have in the CardTable class initialization:

[code]
CardTable::CardTable(char* sBackground, int width, int height, HWND hWndParent){
    HINSTANCE hInst    = GetModuleHandle(NULL);
    char szClassName[] = "PokerTable";
    WND_WIDTH          = width;
    WND_HEIGHT        = height;
    hMemDC            = 0;
    origDC            = 0;
   
    hBackground        = LoadBitmapFile(sBackground);
    cm.gDeck          = cm.createDeck();
    hRichEdit          = LoadLibrary("RICHED32.DLL");
   
    RegisterWindowClass(szClassName, hInst);
   
    hWnd = CreateWindowEx (0, szClassName, "John's Poker Table", (WS_CLIPCHILDREN | WS_OVERLAPPEDWINDOW) & 0xFFFEFFFF, CW_USEDEFAULT,
                          CW_USEDEFAULT, WND_WIDTH, WND_HEIGHT, hWndParent, 0, hInst, this);

    ShowWindow (hWnd, 1);
<more code here>
}
[/code]


Also it seems that if I create 2 CardTable classes after the PokerMain window closes both of them will appear. Yet why can't they appear while the PokerMain window is open? What am I doing wrong?

Any help is greatly appreciated. Thanks!
July 24, 2006, 4:25 AM

Search