Algorytm sortowania QuickSort w WinApi.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
//Autor: Piotr Burzala 2ATI

#include <windows.h>
#include <ctime>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE g_hinst;

void sortSzybkie(int *tab, int lewy, int prawy)
                                        {
       
                                        int v=tab[(lewy+prawy)/2];
                                        int i,j,x;
                                        i=lewy;
                                        j=prawy;
                                                do{
                                        while (tab[i]<v) i++;
                                        while (tab[j]>v) j--;
                                                if (i<=j)
                                                        {
                                        x=tab[i];
                                        tab[i]=tab[j];
                                        tab[j]=x;
                                        i++; j--;
                                                }
                                                } while (i<=j);
   
                                        if (j>lewy) sortSzybkie(tab,lewy, j);
                                        if (i<prawy) sortSzybkie(tab, i, prawy);
                                        }

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                                        LPSTR lpCmdLine, int nCmdShow )
 
 
                                                 
{



       
  MSG  msg ;    
  WNDCLASS wc = {0};
  wc.lpszClassName = TEXT( "Sortowanie" ); //Nazwa naszej aplikacji
  wc.hInstance     = hInstance ;
  wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE); //Kolor tła - standardowy win
  wc.lpfnWndProc   = WndProc ; //Nazwa procedury obsługi zdarzeń
  wc.hCursor       = LoadCursor(0, IDC_ARROW); //Wygląd kursora aplikacji

  g_hinst = hInstance;
 
  RegisterClass(&wc);
  CreateWindow( wc.lpszClassName, TEXT("Sortowanie"), //Tekst w nagłówku okna głównego
                WS_OVERLAPPEDWINDOW | WS_VISIBLE, //Flagi okna głównego
                150, 150, 640, 600, 0, 0, hInstance, 0);   //pozycja X, Y, szerokość i wysokość okna, a także wskaźnik na instancję aplikacji

  while( GetMessage(&msg, NULL, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return (int) msg.wParam;
}

LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
//Procedura obsługi zdarzeń - serce API
{
 static HWND Opt[200]; //Tablica kontrolek - ile kontrolek tyle elementów tu 12
   
  switch(msg)  
  {
        case WM_CREATE: //tworzenie wszystkich kontrolek
         //Lista tworzonych kontrolek, np:
                Opt[1]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             20, 20, 50, 20,        
                             hwnd, (HMENU) 1, NULL, NULL);    
                Opt[2]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             80, 20, 50, 20,        
                             hwnd, (HMENU) 2, NULL, NULL);
        Opt[3]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             140, 20, 50, 20,        
                             hwnd, (HMENU) 3, NULL, NULL);  
        Opt[4]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             200, 20, 50, 20,        
                             hwnd, (HMENU) 4, NULL, NULL);                                    
        Opt[5]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             260, 20, 50, 20,        
                             hwnd, (HMENU) 5, NULL, NULL);
        Opt[6]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             320, 20, 50, 20,        
                             hwnd, (HMENU) 6, NULL, NULL);
        Opt[7]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             380, 20, 50, 20,        
                             hwnd, (HMENU) 7, NULL, NULL);
                Opt[8]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             440, 20, 50, 20,        
                             hwnd, (HMENU) 8, NULL, NULL);
                Opt[9]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             500, 20, 50, 20,        
                             hwnd, (HMENU) 9, NULL, NULL);
                Opt[10]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             560, 20, 50, 20,        
                             hwnd, (HMENU) 10, NULL, NULL);
                Opt[11]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             20, 80, 50, 20,        
                             hwnd, (HMENU) 11, NULL, NULL);
                Opt[12]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             80, 80, 50, 20,        
                             hwnd, (HMENU) 12, NULL, NULL);
                Opt[13]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             140, 80, 50, 20,        
                             hwnd, (HMENU) 13, NULL, NULL);
                Opt[14]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             200, 80, 50, 20,        
                             hwnd, (HMENU) 14, NULL, NULL);
                Opt[15]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             260, 80, 50, 20,        
                             hwnd, (HMENU) 15, NULL, NULL);                                      
                Opt[16]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             320, 80, 50, 20,        
                             hwnd, (HMENU) 16, NULL, NULL);
                Opt[17]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             380, 80, 50, 20,        
                             hwnd, (HMENU) 17, NULL, NULL);
                Opt[18]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             440, 80, 50, 20,        
                             hwnd, (HMENU) 18, NULL, NULL);
        Opt[19]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             500, 80, 50, 20,        
                             hwnd, (HMENU) 19, NULL, NULL);
        Opt[20]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_NUMBER | ES_CENTER ,
                             560, 80, 50, 20,        
                             hwnd, (HMENU) 20, NULL, NULL);
        Opt[21]=CreateWindow(TEXT("STATIC"), TEXT("1"),    
                             WS_VISIBLE | WS_CHILD ,
                             40, 2, 10, 15,        
                             hwnd, (HMENU) 21, NULL, NULL);
        Opt[22]=CreateWindow(TEXT("STATIC"), TEXT("2"),    
                             WS_VISIBLE | WS_CHILD ,
                             100, 2, 10, 15,        
                             hwnd, (HMENU) 22, NULL, NULL);
        Opt[23]=CreateWindow(TEXT("STATIC"), TEXT("3"),    
                             WS_VISIBLE | WS_CHILD ,
                             160, 2, 10, 15,        
                             hwnd, (HMENU) 23, NULL, NULL);
        Opt[24]=CreateWindow(TEXT("STATIC"), TEXT("4"),    
                             WS_VISIBLE | WS_CHILD ,
                             220, 2, 10, 15,        
                             hwnd, (HMENU) 24, NULL, NULL);
        Opt[25]=CreateWindow(TEXT("STATIC"), TEXT("5"),    
                             WS_VISIBLE | WS_CHILD ,
                             280, 2, 10, 15,        
                             hwnd, (HMENU) 25, NULL, NULL);
        Opt[26]=CreateWindow(TEXT("STATIC"), TEXT("6"),    
                             WS_VISIBLE | WS_CHILD ,
                             340, 2, 10, 15,        
                             hwnd, (HMENU) 26, NULL, NULL);
        Opt[27]=CreateWindow(TEXT("STATIC"), TEXT("7"),    
                             WS_VISIBLE | WS_CHILD ,
                             400, 2, 10, 15,        
                             hwnd, (HMENU) 27, NULL, NULL);
        Opt[28]=CreateWindow(TEXT("STATIC"), TEXT("8"),    
                             WS_VISIBLE | WS_CHILD ,
                             460, 2, 10, 15,        
                             hwnd, (HMENU) 28, NULL, NULL);
        Opt[29]=CreateWindow(TEXT("STATIC"), TEXT("9"),    
                             WS_VISIBLE | WS_CHILD ,
                             520, 2, 10, 15,        
                             hwnd, (HMENU) 29, NULL, NULL);
        Opt[30]=CreateWindow(TEXT("STATIC"), TEXT("10"),    
                             WS_VISIBLE | WS_CHILD ,
                             575, 2, 15, 15,        
                             hwnd, (HMENU) 30, NULL, NULL);
        Opt[31]=CreateWindow(TEXT("STATIC"), TEXT("11"),    
                             WS_VISIBLE | WS_CHILD ,
                             35, 62, 15, 15,        
                             hwnd, (HMENU) 31, NULL, NULL);
        Opt[32]=CreateWindow(TEXT("STATIC"), TEXT("12"),    
                             WS_VISIBLE | WS_CHILD ,
                             95, 62, 15, 15,        
                             hwnd, (HMENU) 32, NULL, NULL);
        Opt[33]=CreateWindow(TEXT("STATIC"), TEXT("13"),    
                             WS_VISIBLE | WS_CHILD ,
                             155, 62, 15, 15,        
                             hwnd, (HMENU) 33, NULL, NULL);
        Opt[34]=CreateWindow(TEXT("STATIC"), TEXT("14"),    
                             WS_VISIBLE | WS_CHILD ,
                             215, 62, 15, 15,        
                             hwnd, (HMENU) 34, NULL, NULL);
        Opt[35]=CreateWindow(TEXT("STATIC"), TEXT("15"),    
                             WS_VISIBLE | WS_CHILD ,
                             275, 62, 15, 15,        
                             hwnd, (HMENU) 35, NULL, NULL);
        Opt[36]=CreateWindow(TEXT("STATIC"), TEXT("16"),    
                             WS_VISIBLE | WS_CHILD ,
                             335, 62, 15, 15,        
                             hwnd, (HMENU) 36, NULL, NULL);
        Opt[37]=CreateWindow(TEXT("STATIC"), TEXT("17"),    
                             WS_VISIBLE | WS_CHILD ,
                             395, 62, 15, 15,        
                             hwnd, (HMENU) 37, NULL, NULL);
        Opt[38]=CreateWindow(TEXT("STATIC"), TEXT("18"),    
                             WS_VISIBLE | WS_CHILD ,
                             455, 62, 15, 15,        
                             hwnd, (HMENU) 38, NULL, NULL);
        Opt[39]=CreateWindow(TEXT("STATIC"), TEXT("19"),    
                             WS_VISIBLE | WS_CHILD ,
                             515, 62, 15, 15,        
                             hwnd, (HMENU) 39, NULL, NULL);
        Opt[40]=CreateWindow(TEXT("STATIC"), TEXT("20"),    
                             WS_VISIBLE | WS_CHILD ,
                             575, 62, 15, 15,        
                             hwnd, (HMENU) 40, NULL, NULL);
        Opt[41]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             20, 220, 50, 20,        
                             hwnd, (HMENU) 41, NULL, NULL);    
                Opt[42]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             80, 220, 50, 20,        
                                                 hwnd, (HMENU) 42, NULL, NULL);
                Opt[43]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             140, 220, 50, 20,        
                             hwnd, (HMENU) 43, NULL, NULL);  
        Opt[44]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             200, 220, 50, 20,        
                             hwnd, (HMENU) 44, NULL, NULL);                                    
        Opt[45]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             260, 220, 50, 20,        
                             hwnd, (HMENU) 45, NULL, NULL);
        Opt[46]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             320, 220, 50, 20,        
                             hwnd, (HMENU) 46, NULL, NULL);
        Opt[47]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                                                         WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             380, 220, 50, 20,        
                             hwnd, (HMENU) 47, NULL, NULL);
                Opt[48]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             440, 220, 50, 20,        
                             hwnd, (HMENU) 48, NULL, NULL);
                Opt[49]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             500, 220, 50, 20,        
                             hwnd, (HMENU) 49, NULL, NULL);
                Opt[50]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             560, 220, 50, 20,        
                             hwnd, (HMENU) 50, NULL, NULL);
                Opt[51]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             20, 280, 50, 20,        
                             hwnd, (HMENU) 51, NULL, NULL);
                Opt[52]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             80, 280, 50, 20,        
                             hwnd, (HMENU) 52, NULL, NULL);
                Opt[53]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             140, 280, 50, 20,        
                             hwnd, (HMENU) 53, NULL, NULL);
                Opt[54]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             200, 280, 50, 20,        
                             hwnd, (HMENU) 54, NULL, NULL);
                Opt[55]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             260, 280, 50, 20,        
                             hwnd, (HMENU) 55, NULL, NULL);                                      
                Opt[56]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             320, 280, 50, 20,        
                             hwnd, (HMENU) 56, NULL, NULL);
                Opt[57]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             380, 280, 50, 20,        
                             hwnd, (HMENU) 57, NULL, NULL);
                Opt[58]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             440, 280, 50, 20,        
                             hwnd, (HMENU) 58, NULL, NULL);
        Opt[59]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             500, 280, 50, 20,        
                             hwnd, (HMENU) 59, NULL, NULL);
        Opt[60]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             560, 280, 50, 20,        
                             hwnd, (HMENU) 60, NULL, NULL);
        Opt[61]=CreateWindow(TEXT("STATIC"), TEXT("1"),    
                             WS_VISIBLE | WS_CHILD ,
                             40, 202, 10, 15,        
                             hwnd, (HMENU) 41, NULL, NULL);    
                Opt[62]=CreateWindow(TEXT("STATIC"), TEXT("2"),    
                             WS_VISIBLE | WS_CHILD ,
                             100, 202, 10, 15,        
                                                 hwnd, (HMENU) 42, NULL, NULL);
                Opt[63]=CreateWindow(TEXT("STATIC"), TEXT("3"),    
                             WS_VISIBLE | WS_CHILD ,
                             160, 202, 10, 15,        
                             hwnd, (HMENU) 43, NULL, NULL);  
        Opt[64]=CreateWindow(TEXT("STATIC"), TEXT("4"),    
                             WS_VISIBLE | WS_CHILD ,
                             220, 202, 10, 15,        
                             hwnd, (HMENU) 44, NULL, NULL);                                    
        Opt[65]=CreateWindow(TEXT("STATIC"), TEXT("5"),    
                             WS_VISIBLE | WS_CHILD ,
                             280, 202, 10, 15,        
                             hwnd, (HMENU) 45, NULL, NULL);
        Opt[66]=CreateWindow(TEXT("STATIC"), TEXT("6"),    
                             WS_VISIBLE | WS_CHILD ,
                             340, 202, 10, 15,        
                             hwnd, (HMENU) 46, NULL, NULL);
        Opt[67]=CreateWindow(TEXT("STATIC"), TEXT("7"),    
                             WS_VISIBLE | WS_CHILD ,
                             400, 202, 10, 15,        
                             hwnd, (HMENU) 47, NULL, NULL);
                Opt[68]=CreateWindow(TEXT("STATIC"), TEXT("8"),    
                             WS_VISIBLE | WS_CHILD ,
                             460, 202, 10, 15,        
                             hwnd, (HMENU) 48, NULL, NULL);
                Opt[69]=CreateWindow(TEXT("STATIC"), TEXT("9"),    
                             WS_VISIBLE | WS_CHILD ,
                             520, 202, 10, 15,        
                             hwnd, (HMENU) 49, NULL, NULL);
                Opt[70]=CreateWindow(TEXT("STATIC"), TEXT("10"),    
                             WS_VISIBLE | WS_CHILD ,
                             575, 202, 15, 15,        
                             hwnd, (HMENU) 50, NULL, NULL);
                Opt[71]=CreateWindow(TEXT("STATIC"), TEXT("11"),    
                             WS_VISIBLE | WS_CHILD ,
                             35, 262, 15, 15,        
                             hwnd, (HMENU) 51, NULL, NULL);
                Opt[72]=CreateWindow(TEXT("STATIC"), TEXT("12"),    
                             WS_VISIBLE | WS_CHILD ,
                             95, 262, 15, 15,        
                             hwnd, (HMENU) 52, NULL, NULL);
                Opt[73]=CreateWindow(TEXT("STATIC"), TEXT("13"),    
                             WS_VISIBLE | WS_CHILD ,
                             155, 262, 15, 15,        
                             hwnd, (HMENU) 53, NULL, NULL);
                Opt[74]=CreateWindow(TEXT("STATIC"), TEXT("14"),    
                             WS_VISIBLE | WS_CHILD ,
                             215, 262, 15, 15,        
                             hwnd, (HMENU) 54, NULL, NULL);
                Opt[75]=CreateWindow(TEXT("STATIC"), TEXT("15"),    
                             WS_VISIBLE | WS_CHILD ,
                             275, 262, 15, 15,        
                             hwnd, (HMENU) 55, NULL, NULL);                                      
                Opt[76]=CreateWindow(TEXT("STATIC"), TEXT("16"),    
                             WS_VISIBLE | WS_CHILD ,
                             335, 262, 15, 15,        
                             hwnd, (HMENU) 56, NULL, NULL);
                Opt[77]=CreateWindow(TEXT("STATIC"), TEXT("17"),    
                             WS_VISIBLE | WS_CHILD ,
                             395, 262, 15, 15,        
                             hwnd, (HMENU) 57, NULL, NULL);
                Opt[78]=CreateWindow(TEXT("STATIC"), TEXT("18"),    
                             WS_VISIBLE | WS_CHILD ,
                             455, 262, 15, 15,        
                             hwnd, (HMENU) 58, NULL, NULL);
        Opt[79]=CreateWindow(TEXT("STATIC"), TEXT("19"),    
                             WS_VISIBLE | WS_CHILD ,
                             515, 262, 15, 15,        
                             hwnd, (HMENU) 59, NULL, NULL);
        Opt[80]=CreateWindow(TEXT("STATIC"), TEXT("20"),    
                             WS_VISIBLE | WS_CHILD ,
                             575, 262, 15, 15,        
                             hwnd, (HMENU) 60, NULL, NULL);
                Opt[81]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             20, 400, 50, 20,        
                             hwnd, (HMENU) 41, NULL, NULL);    
                Opt[82]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             80, 400, 50, 20,        
                                                 hwnd, (HMENU) 42, NULL, NULL);
                Opt[83]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             140, 400, 50, 20,        
                             hwnd, (HMENU) 43, NULL, NULL);  
        Opt[84]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             200, 400, 50, 20,        
                             hwnd, (HMENU) 44, NULL, NULL);                                    
        Opt[85]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             260, 400, 50, 20,        
                             hwnd, (HMENU) 45, NULL, NULL);
        Opt[86]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             320, 400, 50, 20,        
                             hwnd, (HMENU) 46, NULL, NULL);
        Opt[87]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             380, 400, 50, 20,        
                             hwnd, (HMENU) 47, NULL, NULL);
                Opt[88]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             440, 400, 50, 20,        
                             hwnd, (HMENU) 48, NULL, NULL);
                Opt[89]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             500, 400, 50, 20,        
                             hwnd, (HMENU) 49, NULL, NULL);
                Opt[90]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             560, 400, 50, 20,        
                             hwnd, (HMENU) 50, NULL, NULL);
                Opt[91]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             20, 460, 50, 20,        
                             hwnd, (HMENU) 51, NULL, NULL);
                Opt[92]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             80, 460, 50, 20,        
                             hwnd, (HMENU) 52, NULL, NULL);
                Opt[93]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             140,460, 50, 20,        
                             hwnd, (HMENU) 53, NULL, NULL);
                Opt[94]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             200, 460, 50, 20,        
                             hwnd, (HMENU) 54, NULL, NULL);
                Opt[95]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             260, 460, 50, 20,        
                             hwnd, (HMENU) 55, NULL, NULL);                                      
                Opt[96]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             320, 460, 50, 20,        
                             hwnd, (HMENU) 56, NULL, NULL);
                Opt[97]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             380, 460, 50, 20,        
                             hwnd, (HMENU) 57, NULL, NULL);
                Opt[98]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             440, 460, 50, 20,        
                             hwnd, (HMENU) 58, NULL, NULL);
        Opt[99]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             500, 460, 50, 20,        
                             hwnd, (HMENU) 59, NULL, NULL);
        Opt[100]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | WS_BORDER | ES_CENTER ,
                             560, 460, 50, 20,        
                             hwnd, (HMENU) 60, NULL, NULL);
                Opt[101]=CreateWindow(TEXT("STATIC"), TEXT("1"),    
                             WS_VISIBLE | WS_CHILD ,
                             40, 382, 10, 15,        
                             hwnd, (HMENU) 41, NULL, NULL);    
                Opt[102]=CreateWindow(TEXT("STATIC"), TEXT("2"),    
                             WS_VISIBLE | WS_CHILD ,
                             100, 382, 10, 15,        
                                                 hwnd, (HMENU) 42, NULL, NULL);
                Opt[103]=CreateWindow(TEXT("STATIC"), TEXT("3"),    
                             WS_VISIBLE | WS_CHILD ,
                             160, 382, 10, 15,        
                             hwnd, (HMENU) 43, NULL, NULL);  
        Opt[104]=CreateWindow(TEXT("STATIC"), TEXT("4"),    
                             WS_VISIBLE | WS_CHILD ,
                             220, 382, 10, 15,        
                             hwnd, (HMENU) 44, NULL, NULL);                                    
        Opt[105]=CreateWindow(TEXT("STATIC"), TEXT("5"),    
                             WS_VISIBLE | WS_CHILD ,
                             280, 382, 10, 15,        
                             hwnd, (HMENU) 45, NULL, NULL);
        Opt[106]=CreateWindow(TEXT("STATIC"), TEXT("6"),    
                             WS_VISIBLE | WS_CHILD ,
                             340, 382, 10, 15,        
                             hwnd, (HMENU) 46, NULL, NULL);
        Opt[107]=CreateWindow(TEXT("STATIC"), TEXT("7"),    
                             WS_VISIBLE | WS_CHILD ,
                             400, 382, 10, 15,        
                             hwnd, (HMENU) 47, NULL, NULL);
                Opt[108]=CreateWindow(TEXT("STATIC"), TEXT("8"),    
                             WS_VISIBLE | WS_CHILD ,
                             460, 382, 10, 15,        
                             hwnd, (HMENU) 48, NULL, NULL);
                Opt[109]=CreateWindow(TEXT("STATIC"), TEXT("9"),    
                             WS_VISIBLE | WS_CHILD ,
                             520, 382, 10, 15,        
                             hwnd, (HMENU) 49, NULL, NULL);
                Opt[110]=CreateWindow(TEXT("STATIC"), TEXT("10"),    
                             WS_VISIBLE | WS_CHILD ,
                             575, 382, 15, 15,        
                             hwnd, (HMENU) 50, NULL, NULL);
                Opt[111]=CreateWindow(TEXT("STATIC"), TEXT("11"),    
                             WS_VISIBLE | WS_CHILD ,
                             35, 442, 15, 15,        
                             hwnd, (HMENU) 51, NULL, NULL);
                Opt[112]=CreateWindow(TEXT("STATIC"), TEXT("12"),    
                             WS_VISIBLE | WS_CHILD ,
                             95, 442, 15, 15,        
                             hwnd, (HMENU) 52, NULL, NULL);
                Opt[113]=CreateWindow(TEXT("STATIC"), TEXT("13"),    
                             WS_VISIBLE | WS_CHILD ,
                             155, 442, 15, 15,        
                             hwnd, (HMENU) 53, NULL, NULL);
                Opt[114]=CreateWindow(TEXT("STATIC"), TEXT("14"),    
                             WS_VISIBLE | WS_CHILD ,
                             215, 442, 15, 15,        
                             hwnd, (HMENU) 54, NULL, NULL);
                Opt[115]=CreateWindow(TEXT("STATIC"), TEXT("15"),    
                             WS_VISIBLE | WS_CHILD ,
                             275, 442, 15, 15,        
                             hwnd, (HMENU) 55, NULL, NULL);                                      
                Opt[116]=CreateWindow(TEXT("STATIC"), TEXT("16"),    
                             WS_VISIBLE | WS_CHILD ,
                             335, 442, 15, 15,        
                             hwnd, (HMENU) 56, NULL, NULL);
                Opt[117]=CreateWindow(TEXT("STATIC"), TEXT("17"),    
                             WS_VISIBLE | WS_CHILD ,
                             395, 442, 15, 15,        
                             hwnd, (HMENU) 57, NULL, NULL);
                Opt[118]=CreateWindow(TEXT("STATIC"), TEXT("18"),    
                             WS_VISIBLE | WS_CHILD ,
                             455, 442, 15, 15,        
                             hwnd, (HMENU) 58, NULL, NULL);
        Opt[119]=CreateWindow(TEXT("STATIC"), TEXT("19"),    
                             WS_VISIBLE | WS_CHILD ,
                             515, 442, 15, 15,        
                             hwnd, (HMENU) 59, NULL, NULL);
        Opt[120]=CreateWindow(TEXT("STATIC"), TEXT("20"),    
                             WS_VISIBLE | WS_CHILD ,
                             575, 442, 15, 15,
                             hwnd, (HMENU) 60, NULL, NULL);
        Opt[121]=CreateWindow(TEXT("BUTTON"), TEXT("Od najmniejszej do największej"),    
                             WS_VISIBLE | WS_CHILD | BS_GROUPBOX ,
                             10, 180, 610, 150,
                             hwnd, (HMENU) 60, NULL, NULL);
        Opt[122]=CreateWindow(TEXT("BUTTON"), TEXT("Od największej do najmniejszej"),    
                             WS_VISIBLE | WS_CHILD | BS_GROUPBOX ,
                             10, 360, 610, 150,
                             hwnd, (HMENU) 60, NULL, NULL);
                Opt[123]=CreateWindow(TEXT("EDIT"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | ES_NUMBER | WS_BORDER | ES_CENTER ,
                             20, 120, 50, 20,        
                             hwnd, (HMENU) 80, NULL, NULL);
        Opt[124]=CreateWindow(TEXT("BUTTON"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD | BS_GROUPBOX ,
                             0, 105, 633, 1,        
                             hwnd, (HMENU) 81, NULL, NULL);
        Opt[125]=CreateWindow(TEXT("STATIC"), TEXT("Podaj ilość liczb"),    
                             WS_VISIBLE | WS_CHILD ,
                             80, 120, 110, 20,        
                                                 hwnd, (HMENU) 80, NULL, NULL);
                Opt[126]=CreateWindow(TEXT("BUTTON"), TEXT("Losuj liczby"),    
                             WS_VISIBLE | WS_CHILD ,
                             420, 120, 90, 25,        
                             hwnd, (HMENU) 62, NULL, NULL);
                Opt[127]=CreateWindow(TEXT("STATIC"), TEXT(""),    
                             WS_VISIBLE | WS_CHILD ,
                             20, 150, 390, 20,        
                             hwnd, (HMENU) 80, NULL, NULL);                    
        Opt[200]=CreateWindow(TEXT("BUTTON"), TEXT("Sortuj"),    
                             WS_VISIBLE | WS_CHILD ,
                             280, 120, 80, 25,        
                             hwnd, (HMENU) 61, NULL, NULL);
       
                         
                                                         
                                                         
                                                         
                                                         
                                                         
                                                               
       
       
        break;
       
    case WM_COMMAND: //obsluga kliknięcia w kontrolkę
        switch(LOWORD(wParam)) //numer kontrolki
        {            
              case 61:
                   char liczba[100];
                                   int k, i, l;
                                   
                                   GetWindowText(Opt[123],liczba,100);
                                   l=atoi(liczba);
                                   
                                   if (l>20)
                                        {
                                        SetWindowText(Opt[127],"Podałeś zbyt duzą wartość! Została ona obniżona do 20.");
                                        l=20;
                                        }
                                       
                                        if (l<=1)
                                        {
                                        SetWindowText(Opt[127],"Podałes zbyt małą wartość! Została ona podniesiona do 2.");              
                                        l=2;                           
                                        }
                                       
                                        if (l<20&l>=2)
                                        {
                                        i=l+1;
                                        do
                                                {
                                                SetWindowText(Opt[i],"");      
                                                SetWindowText(Opt[i+40],"");
                                                SetWindowText(Opt[i+80],"");
                                                i++;
                                                }while(i<21);          
                                        }
                                       
                                   int tab[20];
                                   
                                   
                                   
                                   k=1;
                                   i=0;
                                   do
                                                {
                                                GetWindowText(Opt[k],liczba,100);      
                                                tab[i]=atoi(liczba);                   
                                                i++;
                                                k++;           
                                                } while(i<l);
                                   
                                   sortSzybkie(tab,0,l-1);
                                   
                                   k=41;
                                   i=0;
                                   do
                                                {
                                                itoa(tab[i], liczba, 10);
                                                SetWindowText(Opt[k],TEXT(liczba));
                                                i++;
                                                k++;                                   
                                                }while(i<l);
                                               
                                        k=81;
                                        i=l-1;
                                        do
                                                {
                                                itoa(tab[i], liczba, 10);
                                                SetWindowText(Opt[k],TEXT(liczba));
                                                i--;
                                                k++;                                   
                                                }while(i>-1);
                                               
                 
                 
                  break;

              case 62:
                          int x;
                          GetWindowText(Opt[123],liczba,100);
                                   l=atoi(liczba);
                       
                          if (l>20)
                                        {
                                        SetWindowText(Opt[127],"Podałeś zbyt duzą wartość! Została ona obniżona do 20.");
                                        l=20;
                                        }
                               
                                       
                          if (l<=1)
                                        {
                                        SetWindowText(Opt[127],"Podałes zbyt małą wartość! Została ona podniesiona do 2.");              
                                        l=2;                           
                                        }
                                       
                          if (l<20)
                                        {
                                        i=l+1;
                                        do
                                                {
                                                SetWindowText(Opt[i],"");      
                                                i++;
                                                }while(i<21);          
                                        }
                                       
                          time_t t;
                          srand((unsigned)time(&t));
                         
                          i=0;
                          k=1;
                          do
                            {
                                x=rand()%100+1;
                                itoa(x, liczba, 10);           
                                SetWindowText(Opt[k],TEXT(liczba));
                                i++;
                                k++;           
                                }while(i<l);                        
         
                 
                 
                 
                 
                  break;
          //case 3:........ obsługa wszystkich kontrolek  

         }
    break; //koniec obsługi kliknięcia na kontrolkę
       
    case WM_DESTROY: //zdarzenie zamknięcia głównego okna
         PostQuitMessage(0);
    break;
  }
  return DefWindowProc(hwnd, msg, wParam, lParam);
}
C