Napravio sam neki mini program u c++ a sad me zanima kako napraviti izgled za njega a ne da bude samo ona crna consola.
Hvala na pomoći!
Napravio sam neki mini program u c++ a sad me zanima kako napraviti izgled za njega a ne da bude samo ona crna consola.
Hvala na pomoći!
treba ti neki framework za izradu sucelja. za c++ je dobar qt generalno, a ako radis u VisualStudiu na Windowsima mozes jednostavno koristiti MFC
Možeš probati VCL (C++ Builder) jer je vrlo sličan starom VB-u i puno je jednostavnije s njim raditi.
Ja osobno preporucam wxWidgets. Object-oriented framework, portabilan, cist i jasan kod, ima podrsku za native izgled.
Pa ako je program stvarno jednostavan i nema komplicirano sučelje, ja bih to napravio u čistom Windows API-ju. Predpostavljam da je riječ o Windows aplikaciji.
Pa ako je program stvarno jednostavan i nema komplicirano sučelje, ja bih to napravio u čistom Windows API-ju. Predpostavljam da je riječ o Windows aplikaciji.
zar ne mislis da je malo previse riskantno da ide sa konzolne aplikacije na cisti win api??? koliko ce tu biti problema, gresaka, memory leakova,... bolje da se primi mfc-a.... barem ce koristiti provjerene stvari koje je lakse savladati..
Probaj u knjižnici nabaviti knjigu Programiranje Windows 95. U knjižarama češ ju malo teže naći. Ako ništa drugo imaš verziju na Amazonu http://www.amazon.com/Programming-Windows-95-Microsoft/dp/1556156766 .
Osobno mi je bila poprilično zanimljiva i korisna pa ti ju iz tog razloga i preporučam.
PS.
Prije nego što kreneš na windowse , ako možeš prođi i knjigu DOS iznutra, tehnički priručnik za programere. Za mene je to bila aladinova spilja.
Pa ako je program stvarno jednostavan i nema komplicirano sučelje, ja bih to napravio u čistom Windows API-ju. Predpostavljam da je riječ o Windows aplikaciji.
zar ne mislis da je malo previse riskantno da ide sa konzolne aplikacije na cisti win api??? koliko ce tu biti problema, gresaka, memory leakova,... bolje da se primi mfc-a.... barem ce koristiti provjerene stvari koje je lakse savladati..
Ne ne mislim, ako aplikacija ima jednostavno sučelje, nekoliko buttona, textBoxova, jednostavan meni. Bez problema može pronaći na desetke primjera aplikacija baziranih na dialogu s jednostavnim sučeljem. Jedino mu preostaje prilagoditi resurce file, i WinProc da obrađuje ispravne message. A probleme može imati i u MFC-u i u bilo kojem frameworku, ako ne zna što radi.
Oprosti, ali mislim da bas debelo brijes.
Slazem se da je MFC katastrofalan framework (u usporedbi s icime normalnijim), ali predloziti WinAPI kao zamjenu???
Si zaboravio koliko kopanja po MSDN-u treba za rijesiti najobicniji message pump i WinProc?
Covjece, za obican bijedan hello world, koji nema nikakvu interaktivnost je potrebno preko 100 linija koda. Resource file jos kako tako moze rijesiti sa nekim editorom, ali ucitavanje resursa, povezivanje sa kodom, etc etc etc.... mislim da si bas zaboravio koliko tu posla ima na ruke.
wxWidgets - imas prozor sa butonom u 10 linija vrlo intuitivnog C++ koda. Cak i u MFC-u to mozes rijesiti, uz pomoc wizarda, tik tak - iako osobno mrzim wizarde.
Siguran sam da vrlo brzo to ide i u Qt-u.
Ma ja nis ne kuzim wxWidgets treba mi samo dva buttona i jedan text box
Ok, malo sam zabrijo, možda zato jer meni to nije nikakav problem to napraviti u WinAPI-ju. Za wxWidgets i Qt ne znam, nikad ih nisam koristio. MFC koliko znam koriste samo verzije Visual Studia koje koštaju. Inaće u VS2008 Profesional MFC-u Wizard za Dialog based aplikaciju izgenerira u glavnoj datoteci 80 linija koda (upravo provjerio). Onda možda postoji besplatna verzija Borland C++?, znam da on ima fino sučelje za izradu GUI-a.
Ipak nisam mogao odoliti da ne napišem cijeli WinAPI kod za dialog s dva buttona i jednim textBoxom. Fakat je taj WinAPI kompliciran . Loki pošali mi mail u privatne poruke pa ti pošaljem header i resurce fail.
#include <windows.h>
#include "resource.h"
BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_INITDIALOG:
SetDlgItemText(hwnd, IDC_TEXT, "This is a string");
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_ADD:
{
char tekst[255];
GetDlgItemText(hwnd, IDC_TEXT, tekst, 255);
MessageBox(hwnd, tekst , "Warning", MB_OK);
}
break;
case IDC_REMOVE:
{
MessageBox(hwnd, "Kliknuo si na remove button.", "Warning", MB_OK);
}
break;
}
break;
case WM_CLOSE:
EndDialog(hwnd, 0);
break;
default:
return FALSE;
}
return TRUE;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProc);
}
offtopic(samo osvrt)
nisam ekspert u c++..htio bi rec da za pocetnike je puno bolji VIsual Basic Express 2008 (recimo) nego c++ .Ja kad sam poco radit u VB preporodio sam se sa .net tehnologijom,pojedinac moze puno veci projekt napravit nego da se to ide radit od 0 sa c++.Jesam li u pravu?
Oprosti, ali mislim da bas debelo brijes.
Slazem se da je MFC katastrofalan framework (u usporedbi s icime normalnijim), ali predloziti WinAPI kao zamjenu???
Si zaboravio koliko kopanja po MSDN-u treba za rijesiti najobicniji message pump i WinProc?
Covjece, za obican bijedan hello world, koji nema nikakvu interaktivnost je potrebno preko 100 linija koda. Resource file jos kako tako moze rijesiti sa nekim editorom, ali ucitavanje resursa, povezivanje sa kodom, etc etc etc.... mislim da si bas zaboravio koliko tu posla ima na ruke.
wxWidgets - imas prozor sa butonom u 10 linija vrlo intuitivnog C++ koda. Cak i u MFC-u to mozes rijesiti, uz pomoc wizarda, tik tak - iako osobno mrzim wizarde.
Siguran sam da vrlo brzo to ide i u Qt-u.
Nemoj sad tako.. ja sam svoj gui lib isao i za nacrtati prozor trebalo mi je više od stotinu linija koda, a još ako hoću vektorski pa zaboljeni rubovi, pa kompozitni gui, pa... pih, a winapi ti je nenormalan :) cccc
Ipak nisam mogao odoliti da ne napišem cijeli WinAPI kod za dialog s dva buttona i jednim textBoxom. Fakat je taj WinAPI kompliciran . Loki pošali mi mail u privatne poruke pa ti pošaljem header i resurce fail.
Ma cek, neko je ovdje lud:
di je konfiguracija strukture za main window, plus createWindow funkcija za 500 parametara????
Nemoj mi rec da se sve to moze rijesiti sa jednim obicnim DialogBox pozivom???????
@nax
Lol :-)
Da može, samo treba znati . Naravno nitko nije lud na taj način raditi složeno sučelje. Al za nešto skroz jednostavno, sasvim je dovoljno.
Može..može ...C-Windows programiranje....vrlo malo koda i eto dijelog box ili par osnovnih stavri.Ako se ne želi ništa komplicirati.