-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Mariusz Marszałkowski" <b...@g...SKASUJ-TO.pl>
Newsgroups: pl.comp.programming
Subject: Re: Rysowanie wartości tablicy w okienku.
Date: Sat, 26 Sep 2009 19:07:43 +0000 (UTC)
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 191
Message-ID: <h9lopv$h8s$1@inews.gazeta.pl>
References: <0...@r...googlegroups.com>
<h9kgk6$qtb$1@inews.gazeta.pl>
<2...@q...googlegroups.com>
<h9kmvk$hhl$1@inews.gazeta.pl>
<7...@3...googlegroups.com>
NNTP-Posting-Host: localhost
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1253992063 17692 172.20.26.243 (26 Sep 2009 19:07:43 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Sat, 26 Sep 2009 19:07:43 +0000 (UTC)
X-User: brodacz100
X-Forwarded-For: 89.229.16.190
X-Remote-IP: localhost
Xref: news-archive.icm.edu.pl pl.comp.programming:183644
[ ukryj nagłówki ]Jan Górski <j...@g...com> napisał(a):
> Dzi=EAkuj=EA za pomoc, w=B3a=B6nie o tak=B1 odpowied=BC mi chodzi=B3o. Docz=
> ytam
> sobie to i postaram si=EA sam wymodzi=E6.
Poniżej obiecany gotowiec :)
Pozdrawiam
#undef UNICODE
#include <windows.h>
#include <stdio.h>
HINSTANCE hInst;
int w,h,wrow;
HBITMAP mem_bmp;
HDC mem_hdc;
unsigned __int8 *pix;
unsigned __int8 *buf1;
unsigned __int8 *buf2;
unsigned __int8 *ptr_buf1,*ptr_buf2;
unsigned __int8 colot_table[5*5*5];
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
static DWORD czas=0;
static DWORD frame=0;
static TCHAR buf[256];
static int start=0;
static int licz=0;
switch (message)
{
case WM_CREATE:
break;
case WM_TIMER:
InvalidateRect( hWnd , NULL , FALSE );
break;
case WM_KEYDOWN:
if( wParam == VK_ESCAPE )
DestroyWindow( hWnd );
if( wParam == VK_SPACE )
{
if( start )
KillTimer( hWnd , 0 );
else
{
SetTimer( hWnd , 0 , 0 , NULL );
czas = GetTickCount();
}
start = !start;
}
break;
case WM_PAINT:
{
int x,y,x1,y1,t,sum;
unsigned __int8 *swp;
t = GetTickCount();
if( t - czas > 5000 )
{
sprintf( buf , "fps: %5.2lf", frame * 1000.0 / ( t - czas ) );
czas = t;
frame = 0;
}
frame ++ ;
hdc = BeginPaint(hWnd, &ps);
for( y=20 ; y<h-20 ; y++ )
{
for( x=20 ; x<w-20 ; x++ )
{
sum = 0;
for(x1=x-2;x1<=x+2;x1++)
for(y1=y-2;y1<=y+2;y1++)
sum += ptr_buf1[y1*w+x1];
sum -= ptr_buf1[y*w+x];
ptr_buf2[y*w+x] = colot_table[sum];
pix[y*wrow*3+x*3+0] = 0;
pix[y*wrow*3+x*3+1] = 0;
pix[y*wrow*3+x*3+2] = ptr_buf2[y*w+x] ? 255 : 0;
}
}
TextOut( mem_hdc , 20 , 30 , buf , (int)strlen(buf) );
BitBlt( hdc , 0 , 0 , w , h , mem_hdc , 0 , 0 , SRCCOPY );
EndPaint(hWnd, &ps);
swp = ptr_buf1;
ptr_buf1 = ptr_buf2;
ptr_buf2 = swp;
break;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
lpCmdLine, int nCmdShow)
{
int i;
MSG msg;
WNDCLASSEX wcex;
hInst = hInstance;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION );
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = TEXT("dywan_wnd_class");
wcex.hIconSm = NULL;
ATOM res = RegisterClassEx(&wcex);
w = GetSystemMetrics(SM_CXSCREEN);
h = GetSystemMetrics(SM_CYSCREEN);
mem_hdc = CreateCompatibleDC( NULL );
BITMAPINFO bmi;
memset(&bmi,0,sizeof(bmi));
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = w;
bmi.bmiHeader.biHeight = -h;
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biCompression = BI_RGB;
bmi.bmiHeader.biBitCount = 24;
mem_bmp = CreateDIBSection(mem_hdc,&bmi,DIB_RGB_COLORS,(void**
)&pix,NULL,0);
SelectObject(mem_hdc,mem_bmp);
wrow = w;
while(wrow & 0x3)
wrow++;
SetTextColor( mem_hdc , RGB(100,100,255));
SetBkMode( mem_hdc , TRANSPARENT );
buf1 = new unsigned __int8[w*h];
buf2 = new unsigned __int8[w*h];
ptr_buf1 = buf1;
ptr_buf2 = buf2;
memset( buf1 , 0 , w*h );
memset( buf2 , 0 , w*h );
memset( colot_table , 0 , sizeof(colot_table) );
colot_table[3] = 5;
colot_table[4] = 2;
colot_table[7] = 5;
colot_table[11] = 1;
colot_table[18] = 5;
colot_table[29] = 1;
colot_table[46] = 3;
colot_table[76] = 1;
colot_table[123] = 5;
ptr_buf1[w*(h/2-2)+w/2-2] = 1;
ptr_buf1[w*(h/2-2)+w/2+1] = 1;
ptr_buf1[w*(h/2+1)+w/2-2] = 1;
ptr_buf1[w*(h/2+1)+w/2+1] = 1;
HWND hWnd = CreateWindow(TEXT("dywan_wnd_class"), TEXT("xx") ,
WS_POPUP|WS_VISIBLE , 0 , 0, w , h , NULL, NULL, hInstance, NULL);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
delete[] buf1;
delete[] buf2;
DeleteDC( mem_hdc );
DeleteObject( mem_bmp );
return (int) msg.wParam;
}
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 26.09.09 19:40 Mateusz Loskot
- 30.09.09 08:17 pkorbut
- 30.09.09 10:46 Mateusz Loskot
- 30.09.09 10:46 pkorbut
- 30.09.09 11:58 Mateusz Loskot
- 30.09.09 12:39 pkorbut
- 30.09.09 14:10 Mateusz Loskot
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-12-16 W telefonie brak szufladki na drugą kartę SIM
- 2024-12-16 Szukam monitora HDMI ok. 4"
- 2024-12-16 Poznań => Key Account Manager <=
- 2024-12-16 Akwarium w aucie
- 2024-12-16 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2024-12-16 Warszawa => Expert Recruiter 360 <=
- 2024-12-16 Gdańsk => System Architect (background deweloperski w Java) <=
- 2024-12-16 Warszawa => Key Account Manager <=
- 2024-12-16 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-16 Białystok => Analityk w dziale Trade Development (doświadczenie z Po
- 2024-12-16 Warszawa => Programista Microsoft Dynamics 365 Business Central <=
- 2024-12-16 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2024-12-16 Szczecin => Key Account Manager (ERP) <=
- 2024-12-16 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-16 Gdańsk => Specjalista ds. Sprzedaży <=