#Include "windows.bi" Const As String g_szClassName = "myWindowClass" Dim Shared As HMODULE hInstance Dim Shared As ZString Ptr lpCmdLine #define IDC_MAIN_EDIT 101 Function WndProc(hwnd As HWND, msg As ULong, wParam As WPARAM, lParam As LPARAM) As LRESULT Select Case msg Case WM_CREATE Dim As HFONT hfDefault Dim As HWND hEdit hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", _ WS_CHILD Or WS_VISIBLE Or WS_VSCROLL Or WS_HSCROLL Or ES_MULTILINE Or ES_AUTOVSCROLL Or ES_AUTOHSCROLL, _ 0, 0, 100, 100, hwnd, Cast(HMENU, IDC_MAIN_EDIT), GetModuleHandle(NULL), NULL) If hEdit = NULL Then MessageBox(hwnd, "Could not create edit box.", "Error", MB_OK Or MB_ICONERROR) EndIf hfDefault = Cast(HFONT, GetStockObject(DEFAULT_GUI_FONT)) SendMessage(hEdit, WM_SETFONT, Cast(WPARAM, hfDefault), MAKELPARAM(FALSE, 0)) Case WM_SIZE Dim As HWND hEdit Dim As RECT rcClient GetClientRect(hwnd, @rcClient) hEdit = GetDlgItem(hwnd, IDC_MAIN_EDIT) SetWindowPos(hEdit, NULL, 0, 0, rcClient.right, rcClient.bottom, SWP_NOZORDER) Case WM_CLOSE DestroyWindow(hwnd) Case WM_DESTROY PostQuitMessage(0) Case Else Return DefWindowProc(hwnd, msg, wParam, lParam) End Select Return 0 End Function Function WinMain(hInstance As HINSTANCE, hPrevInstance As HINSTANCE, lpCmdLine As LPSTR, nCmdShow As Long) As Long Dim As WNDCLASSEX wc Dim As HWND hwnd Dim As MSG Msg 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 = Cast(HBRUSH, COLOR_WINDOW + 1) wc.lpszMenuName = NULL wc.lpszClassName = @g_szClassName wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION) If RegisterClassEx(@wc) = 0 Then MessageBox(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION Or MB_OK) Return 0 EndIf hwnd = CreateWindowEx(0, _ g_szClassName, _ "theForger's Tutorial Application", _ WS_OVERLAPPEDWINDOW, _ CW_USEDEFAULT, CW_USEDEFAULT, 480, 320, _ NULL, NULL, hInstance, NULL) If hwnd = NULL Then MessageBox(NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION Or MB_OK) Return 0 EndIf ShowWindow(hwnd, nCmdShow) UpdateWindow(hwnd) Do While GetMessage(@msg,NULL,0,0) TranslateMessage(@msg) DispatchMessage(@msg) Loop Return msg.wParam End Function ' Program start hInstance = GetModuleHandle(NULL) lpCmdLine = GetCommandLine WinMain(hInstance, NULL, lpCmdLine, SW_SHOWDEFAULT) ExitProcess(0)