Code:
#include <windows.h> //using win32 api
#include <windowsx.h>//for additional win32 api functions
#include "identifiers.h"//so I can access my identifiers
const char g_ClassName[]="hwnd window class name";
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(GET_WM_COMMAND_ID(wParam,lParam))
{
case HWND_FILE_EXIT:
PostQuitMessage(0);
break;
case EXTRA_BASE_CONVERT:
ShowWindow(GetDlgItem(hwnd,EXTRA_BASE_CONVERT),SW_NORMAL);
UpdateWindow(GetDlgItem(hwnd,EXTRA_BASE_CONVERT));
break;
}
break;
case WM_SIZE:
{
HWND hEdit = GetDlgItem(hwnd,HWND_EDIT);
HFONT hfDefault = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
RECT hwnd_cord;
GetClientRect(hwnd,&hwnd_cord);
SetWindowPos(hEdit,NULL,0,0,hwnd_cord.right,hwnd_cord.bottom,SWP_NOZORDER);
SendMessage(hEdit,WM_SETFONT,(WPARAM)hfDefault,MAKELPARAM(false,0));
}
break;
default:
return DefWindowProc(hwnd,msg,wParam,lParam);
}
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR nCmdLine,
int nCmdShow)
{
HWND hwnd;
MSG Message;
HWND hEdit;
HWND hBaseC;
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
wc.cbWndExtra = 0;
wc.cbClsExtra = 0;
wc.style = CS_DBLCLKS;
wc.hbrBackground = CreateSolidBrush(RGB(0,0,100));
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.lpszMenuName = MAKEINTRESOURCE(HWND_MENU);
wc.lpszClassName = g_ClassName;
wc.lpfnWndProc = WndProc;
RegisterClassEx(&wc);
hwnd = CreateWindowEx(WS_EX_TOOLWINDOW,
g_ClassName,
"Base Converter/NotePad",
WS_SYSMENU,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
HWND_DESKTOP,
NULL,
hInstance,
NULL);
hEdit = CreateWindowEx(WS_EX_CLIENTEDGE,
"EDIT",
"",
WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_MULTILINE,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
hwnd,
(HMENU)HWND_EDIT,
GetModuleHandle(NULL),
NULL);
hBaseC = CreateWindowEx(WS_EX_TOOLWINDOW,
g_ClassName,
"Base Converter",
WS_CHILD|WS_SYSMENU,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
hwnd,
(HMENU)EXTRA_BASE_CONVERT,
hInstance,
NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&Message,NULL,0,0)>0)
{
TranslateMessage(&Message);
DispatchMessage (&Message);
}
return Message.wParam;
}
I tried so many things =/ I decided to to try and make a notepadish program and implement my base converter in the menu (to see if I could create child windows through my menu...). If I do get something to appear, its like a blank square.