Code:
#include <windows.h>
#include "resource.h"
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
TCHAR szAppName[] = TEXT("Default window"); // Header
HWND hWnd;
HWND hWnd_read;
HWND hWnd_edit;
MSG msg;
WNDCLASSEX wc;
wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON)); // Ico
wc.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON)); // Ico_sm
wc.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CURSOR));
wc.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1); // Background
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU);
wc.lpszClassName = szAppName;
RegisterClassEx(&wc);
hWnd = CreateWindowEx(0,szAppName,
szAppName,
WS_OVERLAPPEDWINDOW,
200, // Margin from left
200, // Margin from top
500, // Widht
400, // Height
NULL,
NULL,
hInstance,NULL);
ShowWindow(hWnd, iCmdShow);
UpdateWindow(hWnd);
//Child wins
hWnd_read = CreateWindowEx(0,
TEXT("BUTTON"),
TEXT("Read"),
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
20, 40, 75, 25,
hWnd,
NULL,
hInstance,
NULL);
if ( hWnd_read == NULL )
return FALSE;
hWnd_edit = CreateWindowEx(WS_EX_CLIENTEDGE,
TEXT("EDIT"),
TEXT("Edit"),
WS_CHILD | WS_VISIBLE | ES_LEFT,
20, 10, 200, 25,
hWnd,
NULL,
hInstance,
NULL);
if ( hWnd_edit == NULL )
return FALSE;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
void Write(HWND hWnd)
{
PAINTSTRUCT ps;
HDC hDC;
RECT rect;
hDC = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rect);
SetBkMode(hDC, TRANSPARENT);
DrawText(hDC, TEXT("Hi there"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
ReleaseDC(hWnd, hDC);
EndPaint(hWnd, &ps);
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
TCHAR chText[100];
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:
Write(hWnd);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case ID_EXIT:
SendMessage(hWnd, WM_DESTROY, wParam, lParam);
case ID_FUNCTION1:
GetWindowText(hWnd_edit, chText, 100);
MessageBox(hWnd, chText, TEXT("Your text"), MB_ICONINFORMATION);
break;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
Error content: "error C2065: 'hWnd_edit' : undeclared identifier"