Code:
#include "resource.h"
#include <windows.h>
#include <windef.h>
#include <stdafx.h>
#include <stdio.h>
#include <string.h>
HBITMAP g_hbmDieThree = NULL;
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message,
WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
char szClassName[] = "myWindowClass";
HWND hwnd;
MSG msg;
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = szClassName;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wc))
{
MessageBox(NULL, "Window Registration Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
szClassName,
"My Window",
WS_OVERLAPPEDWINDOW,
100, 100, 400, 400,
NULL, NULL, hInstance, NULL);
if(hwnd == NULL)
{
MessageBox(NULL, "Window Creation Failed!", "Error!",
MB_ICONEXCLAMATION | MB_OK);
return 0;
}
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
} // end of WinMain
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam)
{
// HDC hdc;
HWND hCtl;
PAINTSTRUCT ps;
HBITMAP g_hbmDieThree = NULL;
switch(msg)
{
case WM_CREATE: {
hCtl = CreateWindowEx (
0, "BUTTON", "ROLL",
WS_BORDER | WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
70, 300, 100, 35, hwnd,
(HMENU) IDC_BTN_ROLL,
GetModuleHandle(0),
NULL);
hCtl = CreateWindowEx (
0, "BUTTON", "Exit",
WS_BORDER | WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
220, 300, 100, 35, hwnd,
(HMENU) IDC_BTN_QUIT,
GetModuleHandle(0),
NULL);
// LOAD THE BITMAP IN MEMORY
g_hbmDieThree = LoadBitmap(GetModuleHandle(NULL),
MAKEINTRESOURCE(IDB_DieThree));
if
(g_hbmDieThree == NULL)
MessageBox(hwnd, "Could not find IDB_DieThree.", "Error",
MB_OK | MB_ICONEXCLAMATION);
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_PAINT:
{
return TRUE;
}
break;
case WM_COMMAND:
switch(LOWORD(wParam)) {
case IDC_BTN_QUIT:
{
DestroyWindow(hwnd);
return TRUE;
}
break;
case IDC_BTN_ROLL:
{
BITMAP bm;
HBITMAP g_hbmDieThree = (HBITMAP) LoadImage(
NULL, "C:\\temp\\DieThree.bmp", IMAGE_BITMAP, 0, 0,
LR_CREATEDIBSECTION | LR_DEFAULTSIZE |
LR_LOADFROMFILE);
HDC hdc = BeginPaint(hwnd, &ps);
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmOld = (HBITMAP)SelectObject (hdcMem, g_hbmDieThree);
GetObject(g_hbmDieThree, sizeof(bm), &bm);
BitBlt(hdc, 50, 20, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);
SelectObject(hdcMem, hbmOld);
// DeleteDC(hdcMem);
DeleteObject(g_hbmDieThree);
EndPaint(hwnd, &ps);
return TRUE;
}
break;
}
break; // END OF SWITCH(LOWORD)wParam))
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0; // END OF SWITCH(msg)
} // end of WndProc
// I also have a RC and H file that goes with this. If needed I'll post it too.
I hope I didn't remove any important code when I removed all my