#include <Windows.h>
#include <Commctrl.h>
HWND editBoxControlHandle, listViewControlHandle;
INT currentItemIndex;
LRESULT CALLBACK WndProc( HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam );
INT WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow )
{
HWND addButtonHandle, windowHandle;
WNDCLASSEX windowClass;
windowClass.cbSize = sizeof( WNDCLASSEX );
windowClass.style = NULL;
windowClass.lpfnWndProc = WndProc;
windowClass.cbClsExtra = NULL;
windowClass.cbWndExtra = NULL;
windowClass.hInstance = hInstance;
windowClass.hIcon = LoadIcon( NULL, IDI_APPLICATION );
windowClass.hCursor = LoadCursor( NULL, IDC_ARROW );
windowClass.hbrBackground =( HBRUSH ) COLOR_WINDOW;
windowClass.lpszMenuName = NULL;
windowClass.lpszClassName = L"WindowClassName";
windowClass.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
if( !RegisterClassEx( & windowClass ) )
{
return 1;
}
INITCOMMONCONTROLSEX initCommonControls;
initCommonControls.dwSize = sizeof INITCOMMONCONTROLSEX;
initCommonControls.dwICC = ICC_LISTVIEW_CLASSES;
if( !InitCommonControlsEx( & initCommonControls ) )
{
return 2;
}
windowHandle = CreateWindowEx( WS_EX_CLIENTEDGE, L"WindowClassName", L"T - 4254", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL );
if( !windowHandle )
{
return 3;
}
editBoxControlHandle = CreateWindowEx( WS_EX_CLIENTEDGE, L"EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 50, 50, 200, 25, windowHandle, NULL, hInstance, NULL );
if( !editBoxControlHandle )
{
return 4;
}
addButtonHandle = CreateWindowEx( WS_EX_CLIENTEDGE, L"BUTTON", L"Dodaj", WS_CHILD | WS_VISIBLE, 50, 100, 200, 25, windowHandle,( HMENU ) 1, hInstance, NULL );
if( !addButtonHandle )
{
return 5;
}
listViewControlHandle = CreateWindowEx( 0, WC_LISTVIEW, NULL, WS_CHILD | WS_VISIBLE | LVS_REPORT, 50, 150, 200, 100, windowHandle,( HMENU ) 1000, hInstance, NULL );
if( !listViewControlHandle )
{
return 6;
}
LVCOLUMN column;
column.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
column.iSubItem = 0;
column.cx = 200;
column.pszText = L"Dane";
ListView_InsertColumn( listViewControlHandle, 0, & column );
ListView_SetExtendedListViewStyle( listViewControlHandle, LVS_EX_GRIDLINES );
ShowWindow( windowHandle, SW_SHOW );
MSG message;
while( GetMessage( & message, NULL, 0, 0 ) )
{
TranslateMessage( & message );
DispatchMessage( & message );
}
return message.wParam;
}
LRESULT CALLBACK WndProc( HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_CLOSE:
DestroyWindow( hWindow );
break;
case WM_COMMAND:
{
if(( HMENU ) wParam ==( HMENU ) 1 )
{
DWORD textLength = GetWindowTextLength( editBoxControlHandle );
if( textLength > 0 )
{
++textLength;
WCHAR * text = new WCHAR[ textLength ];
if( GetWindowText( editBoxControlHandle, text, textLength ) > 0 )
{
LVITEM item;
item.mask = LVIF_TEXT;
item.pszText = text;
item.iItem = currentItemIndex;
item.iSubItem = 0;
if( ListView_InsertItem( listViewControlHandle, & item ) != - 1 )
++currentItemIndex;
}
delete[] text;
}
}
}
break;
case WM_DESTROY:
PostQuitMessage( 0 );
break;
default:
return DefWindowProc( hWindow, msg, wParam, lParam );
}
return 0;
}
Wybaczcie mi bracia i siostry. Wiem, że zgrzeszyłem, ale już nie wytrzymałem. Kierowałem się emocjami. Jestem gotów ponieść stosowną karę...