thanospr Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Γεια σας παιδια.Τις τελευταιες μερες ψαχνω να δω πως μπορω να κανω μια εφαρμογη σε παραθυρο.Τελικα καταφερα και εκανα κατι απλα πραγματα οπως textbox button που παιρνουν στοιχεια απο τα textbox και κανουν καποιες πραξεις.Τωρα θελω στο μενου να παταω ενα κουμπι open και να μου ανοιγει ενα αλλο παραθυρο.Πως μπορω να το φτιαξω αυτο; Ευχαριστω για τον χρονο σας...
albNik Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Σε c++/cli μάλλον γράφεις. Στο click event του κουμπιού βάλε τον παρακάτω κώδικα για να εμφανίσεις την MyForm. > MyForm^ frm = gcnew MyForm(); frm->ShowDialog();
thanospr Δημοσ. 6 Δεκεμβρίου 2012 Μέλος Δημοσ. 6 Δεκεμβρίου 2012 Κατ αρχην σ ευχαριστω για την απαντηση σου.Ενα project φτιαχνω στο Cοdeblocks και με καποιες συναρτησεις φτιαχνεις το παραθυρο.Αυτο που μου εγραψες φιλε δεν δουλευει...
albNik Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Ok. Είδα "textbox" "button" και νόμιζα πως έχεις Visual Studio C++/CLI
παπι Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Κατ αρχην σ ευχαριστω για την απαντηση σου.Ενα project φτιαχνω στο Cοdeblocks και με καποιες συναρτησεις φτιαχνεις το παραθυρο.Αυτο που μου εγραψες φιλε δεν δουλευει... Η c++ δεν εχει καποιο "στανταρακι"framework για παραθυρα, για αυτο καλο ειναι να αναφερεις σε τι framework εισαι.
thanospr Δημοσ. 6 Δεκεμβρίου 2012 Μέλος Δημοσ. 6 Δεκεμβρίου 2012 4.0.Δεν το ηξερα.Εχετε καταλαβει τι θελω να κανω; Το λεω μηπως δεν το χω γραψει καλα.Ας πουμε οταν σε ενα προγραμμα παταω file και μετα open με βγαζει ενα πλαισιο για να βρω καποιο αρχειο.Κατι τετοιο θελω να κανω αλλα πιο απλο.
παπι Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Εχετε καταλαβει τι θελω να κανω; Οχι. Πρεπει να μας πεις σε τι framework/api εισαι. Ειναι σα να σε ρωταω πως θα εκτυπωσω hello world στην κονσολα, και εσυ να μου λες cout<<"hellow world" και εγω να σου λεω οτι δεν εχω cout (αλλα ConsoleWriteLineForTheWinApi) κανε paste αυτα που εχεις γραψει μπας και κταλαβουμε σε τι γραφεις.
thanospr Δημοσ. 6 Δεκεμβρίου 2012 Μέλος Δημοσ. 6 Δεκεμβρίου 2012 > #include <windows.h> /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); /* Make the class name into a global variable */ char szClassName[ ] = "WindowsApp"; int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil) { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */ /* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof (WNDCLASSEX); /* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use Windows's default color as the background of the window */ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND; /* Register the window class, and if it fails quit the program */ if (!RegisterClassEx (&wincl)) return 0; /* The class is registered, let's create the program*/ hwnd = CreateWindowEx ( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Windows App", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 544, /* The programs width */ 375, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ ); /* Make the window visible on the screen */ ShowWindow (hwnd, nFunsterStil); /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); } /* The program return-value is 0 - The value that PostQuitMessage() gave */ return messages.wParam; } /* This function is called by the Windows function DispatchMessage() */ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) /* handle the messages */ { case WM_CREATE: CreateWindow(TEXT("BUTTON"),TEXT("Button"), WS_CHILD | WS_VISIBLE, 350,40,80,20, hwnd, (HMENU) ID_BUTTON, NULL, NULL ); case WM_DESTROY: PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); } return 0; }
παπι Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Α μαλιστα. Μιλας για win gdi. Ωραια πες μας τωρα τι ακριβος θελεις. υγ εχεις ενα bug στην switch. Μετα απο το createwindow (button) βαλε brake αλλιως θα τερματιζει η εφαρμογη
thanospr Δημοσ. 6 Δεκεμβρίου 2012 Μέλος Δημοσ. 6 Δεκεμβρίου 2012 εχω απλα ειχα φτιαξει κι αλλα κουμπια και ξεχασα το break που το ειχα στο τελος.Εχω φτιαξει και μενου με την AppendMenu και θελω οταν παταω σε μια απο τις επιλογες του μενου να μου βγαζει ενα αλλο παραθυρο...
παπι Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Τα πιανεις τα message του menu; ( wm_command klp klp) Το αλλο παραθυρο θα το φτιαξεις οπως εφτιαξες το κυριο (νεα wndclassex νεα wndproc κλπ) η μονη διαφορα ειναι οτι για να το εμφανισεις θα πρεπει να το φτιαξεις με createwindow (με parent hwnd να ειναι το κυριο). Υπαρχει το dialog αλλα θες resource editor
thanospr Δημοσ. 6 Δεκεμβρίου 2012 Μέλος Δημοσ. 6 Δεκεμβρίου 2012 Οκ φιλε σ ευχαριστω πολυ.Θα το ψαξω και αν εχω αποριες θα ξαναρωτησω...
παπι Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Που'σε, επειδη δουλευεις πανω σε winapi, στο googlarisma θα βαζεις και το winapi. πχ εχεις απορια για το πως φτιανεις ενα button. Πας google και βαζεις button winapi και οχι c++ button. Καλη συνεχεια. αα και οταν εχεις απορια για συνρατηση του winapi βαζε στο googlarisma το msdn πχ. CreateWindow msdn και μπαινεις εδω
migf1 Δημοσ. 6 Δεκεμβρίου 2012 Δημοσ. 6 Δεκεμβρίου 2012 Είναι για C, αλλά χρησιμότατο πάραυτα: http://www.winprog.org/tutorial/
thanospr Δημοσ. 6 Δεκεμβρίου 2012 Μέλος Δημοσ. 6 Δεκεμβρίου 2012 Σας ευχαριστω πολυ και τους δυο για τον χρονο σας και για την βοηθεια
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα