Προς το περιεχόμενο
  • 0
thanospr

Δημιουργια Παραθυρου στη C++

Ερώτηση

Γεια σας παιδια.Τις τελευταιες μερες ψαχνω να δω πως μπορω να κανω μια εφαρμογη σε παραθυρο.Τελικα καταφερα και εκανα κατι απλα πραγματα οπως textbox button που παιρνουν στοιχεια απο τα textbox και κανουν καποιες πραξεις.Τωρα θελω στο μενου να παταω ενα κουμπι open και να μου ανοιγει ενα αλλο παραθυρο.Πως μπορω να το φτιαξω αυτο;

Ευχαριστω για τον χρονο σας...

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

14 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

  • 0

Σε c++/cli μάλλον γράφεις.

Στο click event του κουμπιού βάλε τον παρακάτω κώδικα για να εμφανίσεις την MyForm.

 

>
MyForm^ frm = gcnew MyForm();
frm->ShowDialog();

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Κατ αρχην σ ευχαριστω για την απαντηση σου.Ενα project φτιαχνω στο Cοdeblocks και με καποιες συναρτησεις φτιαχνεις το παραθυρο.Αυτο που μου εγραψες φιλε δεν δουλευει...

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Κατ αρχην σ ευχαριστω για την απαντηση σου.Ενα project φτιαχνω στο Cοdeblocks και με καποιες συναρτησεις φτιαχνεις το παραθυρο.Αυτο που μου εγραψες φιλε δεν δουλευει...

Η c++ δεν εχει καποιο "στανταρακι"framework για παραθυρα, για αυτο καλο ειναι να αναφερεις σε τι framework εισαι.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

4.0.Δεν το ηξερα.Εχετε καταλαβει τι θελω να κανω; Το λεω μηπως δεν το χω γραψει καλα.Ας πουμε οταν σε ενα προγραμμα παταω file και μετα open με βγαζει ενα πλαισιο για να βρω καποιο αρχειο.Κατι τετοιο θελω να κανω αλλα πιο απλο.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Εχετε καταλαβει τι θελω να κανω;

 

Οχι. Πρεπει να μας πεις σε τι framework/api εισαι. Ειναι σα να σε ρωταω πως θα εκτυπωσω hello world στην κονσολα, και εσυ να μου λες cout<<"hellow world" και εγω να σου λεω οτι δεν εχω cout (αλλα ConsoleWriteLineForTheWinApi)

 

κανε paste αυτα που εχεις γραψει μπας και κταλαβουμε σε τι γραφεις.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
>
#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;
}

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Α μαλιστα. Μιλας για win gdi.

Ωραια πες μας τωρα τι ακριβος θελεις.

 

υγ εχεις ενα bug στην switch. Μετα απο το createwindow (button) βαλε brake αλλιως θα τερματιζει η εφαρμογη

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

εχω απλα ειχα φτιαξει κι αλλα κουμπια και ξεχασα το break που το ειχα στο τελος.Εχω φτιαξει και μενου με την AppendMenu και θελω οταν παταω σε μια απο τις επιλογες του μενου να μου βγαζει ενα αλλο παραθυρο...

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Τα πιανεις τα message του menu; ( wm_command klp klp)

 

Το αλλο παραθυρο θα το φτιαξεις οπως εφτιαξες το κυριο (νεα wndclassex νεα wndproc κλπ) η μονη διαφορα ειναι οτι για να το εμφανισεις θα πρεπει να το φτιαξεις με createwindow (με parent hwnd να ειναι το κυριο).

Υπαρχει το dialog αλλα θες resource editor

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

Που'σε, επειδη δουλευεις πανω σε winapi, στο googlarisma θα βαζεις και το winapi. πχ εχεις απορια για το πως φτιανεις ενα button. Πας google και βαζεις button winapi και οχι c++ button. Καλη συνεχεια.

 

 

αα και οταν εχεις απορια για συνρατηση του winapi βαζε στο googlarisma το msdn πχ. CreateWindow msdn και μπαινεις εδω

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε έναν λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι εύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
×
×
  • Δημιουργία νέου...

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.