#include #include #include #include "resource1.h" #include #include #include #include #include //prototip funkcije za obradu poruka prozoru LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM); // prototip funkcije za obradu poruka main prozora // prototip procedure za obradu dialog prozora About BOOL CALLBACK DialogProcHelp(HWND,UINT,WPARAM,LPARAM); BOOL CALLBACK DialogAutor(HWND,UINT,WPARAM,LPARAM); //za autor void ObradaPitanja(HWND); char pitanje[1000]; char odgovor[100]; int broj_linije; int WINAPI WinMain(HINSTANCE instanca,HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { MSG Msg; WNDCLASSEX mojprozor; mojprozor.cbSize = sizeof(WNDCLASSEX); mojprozor.lpfnWndProc = MainWndProc; mojprozor.hInstance = instanca; const char imeklase[] = "Moja_klasa_prozor"; mojprozor.lpszClassName = imeklase; mojprozor.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); mojprozor.style = 0; mojprozor.cbClsExtra = 0; mojprozor.cbWndExtra = 0; mojprozor.hCursor = NULL; mojprozor.lpszMenuName = NULL; mojprozor.hIcon= LoadIcon(NULL,IDI_QUESTION); mojprozor.hIconSm= (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_ICON3), IMAGE_ICON, 16, 16, 0); mojprozor.lpszMenuName= MAKEINTRESOURCE(IDR_MENU3); mojprozor.hCursor=LoadCursor(GetModuleHandle (NULL),MAKEINTRESOURCE(IDC_CURSOR2)); mojprozor.hbrBackground = (HBRUSH)(CreateSolidBrush(RGB(0xFF,0,0))); //registrirati svoju klasu prozor if(!RegisterClassEx(&mojprozor)) { MessageBox(NULL, "Neuspjela registracija prozora!", "Greška!",MB_ICONEXCLAMATION | MB_OK); return 0; } //poziv funkcije CreateWindow HWND hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,mojprozor.lpszClassName, "KVIZ v1.1",WS_OVERLAPPEDWINDOW, 200,200, 400, 400, NULL, NULL, mojprozor.hInstance, NULL); //pozvati funkcije za show i update window ShowWindow(hwnd,nShowCmd); UpdateWindow(hwnd); //ucitaj akceleratore HACCEL hAccelTable=LoadAccelerators(GetModuleHandle(NULL),(LPCTSTR)IDR_ACCELERATOR1); //petlja za citanje poruka while(GetMessage(&Msg, NULL, 0, 0) > 0) { if (!TranslateAccelerator(Msg.hwnd, hAccelTable, &Msg)) { TranslateMessage(&Msg); DispatchMessage(&Msg);} } return 0; } //procedura za obradu poruka prozoru LRESULT WINAPI MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { char szFileName[MAX_PATH] = ""; // za selektiranje filea za open/save... OPENFILENAME ofn; // deklariranje strukture ofn ZeroMemory(&ofn, sizeof(ofn)); //popuni nulama da se neke funkcije ne bune ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hwnd; ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0"; ofn.lpstrFile = szFileName; ofn.nMaxFile = MAX_PATH; ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT; ofn.lpstrDefExt = "txt"; switch(msg) { case WM_COMMAND: switch (LOWORD(wParam)) { case ID_IZBORNIK_NOVAIGRA: DialogBox( GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_PITANJA), hwnd, (DLGPROC)DialogProcHelp); //ObradaPitanja(); break; case ID_OIGRI_POMOC: DialogBox( GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_POMOC), hwnd, (DLGPROC)DialogProcHelp); break; case ID_OIGRI_AUTOR: DialogBox( GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_AUTOR), hwnd, (DLGPROC)DialogAutor); break; case ID_IZBORNIK_KRAJ: //MessageBox(NULL, "Poruka za kraj!", "Na koncu konca",MB_ICONEXCLAMATION | MB_OK); DestroyWindow(hwnd); break; default: return 0; } break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; } //procedura za obradu dialog prozora Pitanja BOOL CALLBACK DialogProcHelp(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { //za centriranje u sredinu HWND hwndOwner; RECT rc, rcDlg, rcOwner; switch (message) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDCANCEL: EndDialog(hwndDlg, wParam); return TRUE; case IDOK: // obrada unešenog odgovora int len = GetWindowTextLength(GetDlgItem(hwndDlg, IDC_EDIT1)); if(len > 0) { //int i; char* buf; buf = (char*)GlobalAlloc(GPTR, len + 1); GetDlgItemText(hwndDlg, IDC_EDIT1, buf, len + 1); //... do stuff with text ... //ucitavanje odgovora iz datoteke int i,k=1; i=broj_linije; FILE *dat; dat=fopen("odgovori","r"); while(k