#include <windows.h>
#include <string.h>
#include <commctrl.h>
#include "resource.h"
#include "dialogs.h"
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);
//Deklaration der Windows-Nachrichten-Prozedur
HINSTANCE hlnst;
int WINAPI WinMain (HINSTANCE hI, HINSTANCE hPrI, PSTR szCmdLine, int iCmdShow)
{
char szName[] = "Fensterklasse";
WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW; // CS = "class style"
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hI;
wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor (NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH) GetStockObject (GRAY_BRUSH);
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU);
wc.lpszClassName = szName;
RegisterClass (&wc);
HWND hwnd = CreateWindow (szName, "Editor", WS_OVERLAPPEDWINDOW,
-4, -2, 1030, 775, NULL, NULL, hI, NULL);
ShowWindow (hwnd, iCmdShow);
UpdateWindow (hwnd);
// Nachrichten-Schleife
MSG msg;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
return msg.wParam;
}
// Windows-Nachrichten-Prozedur
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
char string[255];
static HWND hEdit;
POINT P;
switch (message)
{
case WM_CREATE:
hEdit = CreateWindowEx(WS_EX_CLIENTEDGE,"edit","",WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|ES_LEFT|ES_MULTILINE|ES_AUTOHSCROLL|ES_AUTOVSCROLL,0,0,1024,768,hwnd, (HMENU)IDC_EDIT,(HINSTANCE) GetModuleHandle(NULL), NULL);
FontInitialize(hEdit);
return 0;
case WM_SETFOCUS:
SetFocus ( hEdit );
return 0;
case WM_SIZE:
MoveWindow(hEdit,0,0,LOWORD(lParam),HIWORD(lParam),TRUE);
return 0;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_FILE_NEW:
SetDlgItemText(hwnd, IDC_EDIT, "");
SendDlgItemMessage(hwnd, IDC_MAIN_STATUS,
SB_SETTEXT, 0, (LPARAM)"Neue Datei...");
SendDlgItemMessage(hwnd, IDC_MAIN_STATUS,
SB_SETTEXT, 1, (LPARAM)"Unbenannt");
return 0;
case ID_FILE_OPEN:
OpenFileBox(hwnd);
return 0;
case ID_FILE_SAVE:
SaveFileBox(hwnd);
return 0;
case ID_FILE_EXIT:
DestroyWindow(hwnd);
break;
case ID_FILE_FONT:
FontChooseFont(hEdit);
FontSetFont(hEdit);
return 0;
case ID_FILE_PRINT:
PrintFile(hInst,hwnd,hEdit,szFileName);
return 0;
}
return 0;
case WM_CHAR:
switch (wParam)
{
case VK_CONTROL:
switch (wParam)
{
case 'a': return 0;
}
return 0;
}
return 0;
case WM_CLOSE:
DestroyWindow(hwnd);
case WM_DESTROY:
PostQuitMessage (0);
return 0;
}
return DefWindowProc (hwnd, message, wParam, lParam);
}