Standardowe kontrolki (1)

Slides:



Advertisements
Podobne prezentacje
Programowanie Windows
Advertisements

Ćwiczenie (1) Dostosuj poniższy program do potrzeb zdefiniowanych w treści programu zaliczeniowego: #include void dodaj(){}; void edytuj(){}; void usun(){};
Funkcje standardowe (1)
Algorytmy – zapis struktur programowania
argumenty wiersza poleceń: getopt
Dziel – Rządź - Złącz.
Funkcje Modularyzacja : program główny , funkcje Funkcje :
Zakres i zasięg deklaracji Zakres : obszar programu, w którym identyfikator może być użyty zakres globalny : cały program zakres lokalny : definicja pojedynczej.
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Przetwarzanie tekstów i AWK Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wyrażenia regularne i język AWK
Tablice.
Laboratoria z „wstęp do programowania”
Ćwiczenie (1) Dostosuj poniższy program do swojego programy zaliczeniowego. (Plik z programem jest dostępny pod adresem
Ćwiczenie (1) Dostosuj poniższy program do wymogów programu zaliczeniowego #include typedef struct{ char imie[30]; char nazwisko[50]; int rokUrodzenia;
Sprawy organizacyjne 1. Zasady zaliczenia przedmiotu
Funkcje znakowe, liczbowe i obsługa dat Kolejny krok w poznaniu SQL-a.
Funkcje znakowe, liczbowe i obsługa dat Kolejny krok w poznaniu SQL-a.
Programowanie w C Wykład 3
Język ANSI C Operacje we/wy
Zachodniopomorskie Centrum Edukacyjne Zadanie domowe.
Procesy odrębne –Unikatowy PID ( ) –Zmienne –Zbiory deskryptorów plików –Przestrzeń stosu (lokalne zmienne, wywołania funkcji) –Środowisko –Licznik.
Programowanie obiektowe W2
nowe operatory & . (kropka) * operator rzutowy -> , (przecinek)
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
MS ACCESS Kwerendy.
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Programowanie w Środowisku Windows Common controls.
Podstawy programowania. Język C i C++– podstawy Temat: 1
Podstawy programowania w języku C i C++
Programowanie w Środowisku Windows
Podstawy programowania II
Podstawy WINAPI - MessageBOX
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Podstawy programowania w języku C i C++
Programowanie strukturalne i obiektowe
Programowanie komponentowe jesień-zima 2013
Edytor tesktu i skrypty
Gramatyki i translatory
Programowanie baz danych
Współpraca z innymi aplikacjami. Organizacja informacji 10 XII 2013.
Ujarzmić Worda Agnieszka Terebus.
PWSZ Gniezno // codefly 2009 Łukasz Tomczak
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Podstawy programowania II Wykład 3: Obsługa plików w stdio.h.
Systemy operacyjne Wykład 3a Działanie aplikacji okienkowej dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki
Tworzenie graficznego interfejsu użytkownika (GUI)
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Komunikaty Windows Jacek Matulewski 22 września 2012 Programowanie Windows
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
Przypomnienie wiadomości – kilka zadań
Programowanie obiektowe – zastosowanie języka Java SE
Dane, zmienne, instrukcje
Excel Informacje różne.
Zapis prezentacji:

Standardowe kontrolki (1) Pole edycyjne Przykład: case WM_CREATE: { HFONT hfDefault; HWND hEdit; hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL, 0, 0, 100, 100, hwnd, (HMENU)1000, GetModuleHandle(NULL), NULL); if(hEdit == NULL) MessageBox(hwnd, "Could not create edit box.", "Error", MB_OK | MB_ICONERROR); hfDefault = GetStockObject(DEFAULT_GUI_FONT); SendMessage(hEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); } Zadania: 1) Sprawdź działanie programu po usunięciu wybranych flag związanych z trzecim parametrem funkcji CreateWindowEx (parametry o nazwach WS_*)

Standardowe kontrolki (2) Lista Przykład: case WM_CREATE: { HWND hLB; HFONT hfDefault; hLB = CreateWindowEx(WS_EX_CLIENTEDGE, "LISTBOX", "", WS_CHILDWINDOW | WS_VISIBLE | WS_BORDER|LBS_SORT, 10, 10, 200, 60, hwnd, (HMENU)9004, GetModuleHandle(NULL), NULL); if(hLB == NULL) MessageBox(hwnd, "Could not create list box.", "Error", MB_OK | MB_ICONERROR); SendMessage (hLB, LB_INSERTSTRING, (WPARAM) -1, (LPARAM) "Opcja 1"); SendMessage (hLB, LB_INSERTSTRING, (WPARAM) -1, (LPARAM) "Opcja 2"); SendMessage (hLB, LB_INSERTSTRING, (WPARAM) -1, (LPARAM) "Opcja 3"); hfDefault = GetStockObject(DEFAULT_GUI_FONT); SendMessage(hLB, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); break; } Zadanie 1) Dodaj do aplikacji listę zawierającą opcje związane tematycznie z Twoim semestralnym programem zaliczeniowym.

Standardowe kontrolki (3) Przyciski Przykład: CreateWindow("button", "Przycisk", WS_CHILD | WS_VISIBLE, 30,100,100,40, hwnd, (HMENU)101, GetModuleHandle(NULL), NULL); Przyciski radio CreateWindow("button", "Przycisk", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, 30,150,100,20, hwnd, (HMENU)105, GetModuleHandle(NULL), NULL); Pasek przewijania CreateWindow("SCROLLBAR", NULL, WS_CHILD | WS_VISIBLE | SBS_VERT, 0, 0, 15, 200, hwnd, (HMENU)100, GetModuleHandle(NULL), NULL);

Standardowe kontrolki (4) Zakładki Przykład: case WM_CREATE: { HWND hTab; InitCommonControls(); hTab = CreateWindowEx(0, WC_TABCONTROL, 0, WS_CHILD | WS_VISIBLE | TCS_FIXEDWIDTH, 0, 0, 540, 340, hwnd, (HMENU)10, GetModuleHandle(NULL), NULL); TCITEM tie, tie2; tie.mask = TCIF_TEXT ; tie.pszText = "Zakładka 1."; TabCtrl_InsertItem(hTab, 0, &tie); tie2.mask = TCIF_TEXT ; tie2.pszText = "Zakładka 2."; TabCtrl_InsertItem(hTab, 1, &tie2); break; }

Standardowe kontrolki (5) Zadania: 1) Dodaj do aplikacji kilka przycisków związanych tematycznie z semestralnym programem zaliczeniowym. 2) Dodaj grupę przycisków radio zawierającą opcję wyboru związaną z programem zaliczeniowym. 3) Dodaj pionowy pasek przewijania. 4) Dodaj do aplikacji listę, której pozycje są uzupełniane wartościami z pliku

Pasek statusu (1) Pasek statusu Wymaga podłączenia pliku nagłówkowego commctrl.h oraz dodania biblioteki lib/libcomctl32.a (menu „Project\ Project Options”, zakładka „Parameters”, przycisk „Add Library or Object”) Przykład: InitCommonControls(); HWND hStatus; int statwidths[] = {100, -1}; hStatus = CreateWindowEx(0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP , 0, 0, 0, 0, hwnd, (HMENU)108, GetModuleHandle(NULL), NULL); SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths); SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)"Tekst paska statusowego"); Zadanie 1) Dodaj pasek statusu do swojej aplikacji i wyświetl w nim aktualną datę i godzinę

Zadania 1) Napisz funkcję obliczającą czas pozostały do końca zajęć 2) Napisz program obliczający harmonogram spłat kredytu. Użytkownik podaje wysokość stopy procentowej, czas spłaty i kwotę kredytu

Scanf dla ciągów ze spacjami (1) #include <stdio.h> #include <stdlib.h> typedef struct{ char imie[30]; char nazwisko[50]; int rokUrodzenia; char PESEL[20]; } klient; void zapisz(klient pDoZapisu) { FILE *plik; char a[100], sciezka[100] = "C:\\temp\\abc.txt" ; if ((plik = fopen(sciezka, "a")) == NULL) { printf("Nie mozna otworzyc %s\n", sciezka); system("PAUSE"); exit(1); } fprintf(plik, "PESEL:%s\n", pDoZapisu.PESEL); fprintf(plik, "Imie:%s\n", pDoZapisu.imie); fprintf(plik, "Nazwisko:%s\n", pDoZapisu.nazwisko); fprintf(plik, "Rok urodzenia:%d\n", pDoZapisu.rokUrodzenia); fclose(plik);

Scanf dla ciągów ze spacjami (2) void dodaj(){ klient nowy; getchar(); printf("Wprowadz PESEL:"); scanf("%[^\n]", nowy.PESEL); printf("Wprowadz imie:"); scanf("%[^\n]", nowy.imie); printf("Wprowadz nazwisko:"); scanf("%[^\n]", nowy.nazwisko); printf("Wprowadz rok urodzenia:"); scanf("%d", &nowy.rokUrodzenia); zapisz(nowy); }; void edytuj(){}; void usun(){}; void wyszukaj(){}; void zakoncz(){};

Scanf dla ciągów ze spacjami (3) int main(int argc, char *argv[]){ int option; while(option!=0){ printf("Wybierz opcję:\n1 - Dodaj kienta\n2 - Edytuj klienta\n3 - Usuń klienta\n"); printf("4 - Wyszukaj klienta\n0 - Zakończ\n"); scanf("%d", &option); switch(option){ case 0: zakoncz(); break; case 1: dodaj(); break; case 2: edytuj(); break; case 3: usun(); break; case 4: wyszukaj(); break; } system("PAUSE"); return 0;

Funkcje związane z czasem (1) #include <stdio.h> #include <stdlib.h> #include <time.h> int main(int argc, char *argv[]) { time_t start; char data[100]; struct tm* x; int a; while(1){ system("CLS"); time(&start); x = localtime(&start); //a = strftime(data, sizeof(data), "%j %d %m %Y", x); a = strftime(data, sizeof(data), "%H:%M:%S", x); printf("%s\n", data); sleep(1000); } system("PAUSE"); return 0;

Funkcje związane z czasem (2) Znaczniki formatu: %a - skrót dnia tygodnia %A - pełna nazwa dnia tygodnia %b - skrót miesiąca %B - pełna nazwa miesiąca %c - data i czas %d - dzień miesiąca zapisany w dwóch cyfrach (01-31) %D - data w formacie %m/%d/%y %e - dzień miesiąca (1-31) %H - godzina (00-23) %I - godzina (01-12) %j - dzień roku (001-366) %k - godzina (0-23) %l - godzina (0-12) %m - miesiąc (01-12) %M - minuta (00-59) %n - nowa linia %p - AM lub PM %S - sekunda (00-59) %U - numer tygodnia w roku (00-52) %w - dzień tygodnia (0-6) %x - pełna data %y - rok bez wieku (00-99) %Y - rok %Z - strefa czasowa %% - znak %

Funkcja system i komendy MS DOS(1) #include <stdio.h> #include <stdlib.h> void dirList(char* pDir){ char command[200] = "tree "; strcat(command, pDir); system(command); } void createDir(char* pDir){ char command[200] = "md "; void systemTime(){ system("TIME");

Funkcja system i komendy MS DOS(2) int main(int argc, char *argv[]) { createDir("c:\\2009-01-10"); dirList("c:\\DB"); systemTime(); system("PAUSE"); return 0; }

Generowanie liczb pseudolosowych #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int wylosowane, i; srand(time(NULL)); //NIE np. srand(100); printf("W dzisiejszym losowaniu padly numery:\n"); for(i = 0; i < 6; i++){ wylosowane = rand()%48; printf("%d\n", wylosowane); } system("PAUSE"); return 0;

Interpretacja liczbowa ciągów znaków #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ char option[10]; int iOption; while(option!=0){ printf("Wybierz opcję:\n1 - Dodaj kienta\n2 - Edytuj klienta\n3 - Usuń klienta\n"); printf("4 - Wyszukaj klienta\n0 - Zakończ\n"); scanf("%s", option); if(!isdigit(option)){ printf("Wybierz poprawna opcje\n"); } else { iOption = atoi(option); switch(iOption){ case 0: printf("Zakoncz\n"); break; case 1: printf("Dodaj\n"); break; case 2: printf("Edytuj\n"); break; case 3: printf("Usun\n"); break; case 4: printf("Zakoncz\n"); break; } system("CLS"); system("PAUSE"); return 0;

Dalszy rozwój (1) Certyfikaty z języków programowania oferowane przykładowo przez: - www.ucertify.com/ - www.compendium.pl - www.altkom.pl - www.combidata.pl 2) Udział w zawodach TopCoder (www.topcoder.com) Firma zajmująca się organizacją konkursów programistycznych. Zwycięzcy otrzymują nagrody pieniężne. Firma prowadzi ranking uczestników. www.google.com/codesearch Analiza kodu OpenSource Działalność w kołach naukowych informatyki, np.: - kni.ae.krakow.pl - kernel.agh.edu.pl