Code:
#include <windows.h>
#include "resource.h"
HWND Child1;
HINSTANCE gHinst; //NOT USED, REFERENCED A DIFFERENT WAY
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK AboutDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ){
HWND Uber;
MSG msg;
WNDCLASSEX wc;
gHinst = hInstance;
wc.cbClsExtra = 0;
wc.cbSize = sizeof(WNDCLASSEX);
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(hInstance, IDC_CROSS);
wc.hIcon = LoadIcon(hInstance, IDI_ERROR);
wc.hIconSm = NULL;
wc.hInstance = hInstance;
wc.lpfnWndProc = MainWndProc;
wc.lpszClassName = "Main Window";
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
wc.style = CS_HREDRAW | CS_VREDRAW;
if(!RegisterClassEx(&wc)) {
MessageBox(NULL, "Could not initialize window", "ERROR", MB_OK);
return ERROR;
}
if(!(Uber = CreateWindowEx(NULL, "Main Window", "Main Window", WS_SYSMENU | WS_MAXIMIZEBOX | WS_MINIMIZEBOX,
0, 0,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL))) {
MessageBox(NULL, "Could not initialize window", "ERROR", MB_OK);
return ERROR;
}
Child1 = CreateWindowEx(NULL, "BUTTON", "SEX!",WS_VISIBLE | WS_CHILD |BS_DEFPUSHBUTTON, 10, 40, 35, 35, Uber, NULL, hInstance, NULL );
ShowWindow(Uber, nShowCmd);
UpdateWindow(Uber);
while(GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
static HINSTANCE hInstance ;
switch(message) {
case WM_COMMAND:
switch(LOWORD(wParam)) {
case WM_CREATE:
hInstance = ((LPCREATESTRUCT) lParam)->hInstance ;
break;
case ID_FILE_HI:
MessageBox(hWnd, "Hi Mother", "HMF", MB_YESNO);
break;
case ID_APP_BUTTON2:
MessageBox(hWnd, "This is the ID_APP_ABOUT EVENT", "asdf", MB_OK);
break;
case ID_APP_BUTTON3:
MessageBox(hWnd, "This is the ID_BUTTON3 EVENT", "cheese", MB_OK);
break;
case ID_APP_DIALOG1:
DialogBox(hInstance, TEXT ("AboutBox"), hWnd, AboutDlgProc);
break;
}
return 0;
//switch to determine what kind of command has taken place and provide appropriate code
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
BOOL CALLBACK AboutDlgProc(HWND Dlg, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message)
{
case WM_INITDIALOG :
return TRUE ;
case WM_COMMAND :
switch (LOWORD (wParam))
{
case IDOK :
case IDCANCEL :
EndDialog (Dlg, 0) ;
return TRUE ;
}
break ;
}
return FALSE ;
}