Dobrý den chtěl bych se zeptat jak udělám win okno v c++ protože když napíšu program vyhodí se v okně příkazového řádku a to se mi vůbec nelíbí. Je nějaká možnost ? :) Děkuji.
Učím se
Používám Dev C++
a baví mě to :)
Dobrý den chtěl bych se zeptat jak udělám win okno v c++ protože když napíšu program vyhodí se v okně příkazového řádku a to se mi vůbec nelíbí. Je nějaká možnost ? :) Děkuji.
Učím se
Používám Dev C++
a baví mě to :)
Ahoj,
neprogramujem v c++, ale ak chces robit priamo 'win okno' veci, tak ti odporucam stiahnut Microsoft Visual C++ Express http://goo.gl/4R5LY
Tam sa ti bude pracovat najlepsie, ci uz s oknovymi, alebo konzolovymi aplikaciami, ak si na Windowse. (moj osobny nazor).
Ak chces riesit okienka, cize GUI aj pre napr Linux, tak skus sa pozriet na QT4 od Nokie http://goo.gl/q3pH
Ale viac ti poradia asi origos c++ ludia :)
Pekny den
Pokud chceš okno, kompplětně se změní základní stavba programu. Je nekolik možností, jak okno vytvořit
Každá metoda más vé výhody a nevýhody - WinAPI je na velké projekty nepoužitelné, ale jeho naučení ti odhalí "jak to vlastně ve Windows funguje". Zastávám názor, že je velká výhoda jej umět, resp. mu rozumnět. Také je na některé miniaplikace občas i vhodnější - výsledné aplikace jsou malé, neobsahují balast v podobě knihoven.
Framework se používá nejčastěji - obaluje WinAPI do svých tříd a metod. Dělá vývoj aplikací s GUI jednodušší a rychlejší. Často také umožňují přenositelnost kódu mezi platformami. Nevýhodu je, že poté je nutné s apliací distribuovat knihovny.
WinForms osobně nepoužívám, nemám k němu vztah. Zpřístupňuje .NET rozhraní (či knihovnu) do C++ - vniká C++/CLI. Mě osobně se nelíbí - dle mě je lepší poté psát přímo v .NET za pomoci C#.
Dobře dobře :) okno je na světě :) To je dobré znamené ale ted je potřeba aby se do něj dalo psát a aby to i vypisovalo
Příklad :
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "Zdej cislo od 1 do 10 ";
cout << "Tve cislo\n";
do
{
cin >> n;
} while (n != 2);
cout << "Tve cislo je 2 .\n" ;
return 0;
}
Aha. Tak to jsme si trochu neporozumněli - ty chceš napsat jen vlastní konzoli, do které budeš moci stále vypisovat pomocí cout/cin. To bude trochu složitější. Nikdy jsem to nedělal, ale nejjdnodušší variantou asi bude mít vytvořený EditBox, do kterého se pomocí SetStdHandle (http://msdn.microsoft.com/en-us/library/ms686244%28VS.85%29.aspx) přesměruje standardní vstup/výstup. Je to ale vyšší dívčí a trochu sevybízí otázka - proč to dělat?
Zkus si letmo pročíst seriál k WinAPI na Builderu, popř. nějaký tutoriál k frameworku - pochopíš, v čem spočívá mít vlastní okno. Dělat vlastní konzoli je nesmyslné.
#5 yaqwsx
NO ono v podstatě je pouze pro vizuální účel. Protože program ve formě příkazového řádku není zrovna dokonalá tvorba :)
Pravda že v MV 2010 c++ se to dá přednastavit. Mám to ted zaplé ale furt si pokládám otázku jak do toho vložit cout\cin
v postatě
zde je zdroj na program
// fd.cpp : main project file.
#include "stdafx.h"
#include "Form1.h"
using namespace fd;
inline [STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}
a zde zdroj primo pro okno :
#pragma once
namespace fd {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->components = gcnew System::ComponentModel::Container();
this->Size = System::Drawing::Size(300,300);
this->Text = L"Form1";
this->Padding = System::Windows::Forms::Padding(0);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
}
#pragma endregion
};
}
Výtvor výše je z WinForms. S ním nemám prakticky žádné zkušenosti. Jak vytvořit vlastní konzoli jsem napsal v předchozím příspěvku, ale je to trochu vyšší dívčí, musíš rozumnět tomu, jak fungují okna apod. Osobně bych se do toho nepouštěl.
Zarazila mě spíše jedna věc:
Protože program ve formě příkazového řádku není zrovna dokonalá tvorba :)
Co myslíš dokonalá? Uživatelsky atraktivní? Věř mi, že vlastní konzole není o nic atraktivnější než ta "originální". Program psaný pro "originální" konzoli má výhody - lze ho např. spouštět v dávkách, za vstup mu vkládat soubor atd.
Tvá konzole by pro uživatele nebyla nějak atraktivnější, stále by uživatel musel psát textové příkazy. Uživatel (alespoň ten mainstreamový) chce plnohodnotné GUI - kolonky, tlačítka atd.
#9 Luckaa
Tvůj původní kód již nezjistí. Jsou způsoby, jak získat zdrojový kód přímo z exe (podívej se na reverzní inženýrství). Tento zdrojový kód však již nevypadá jako tvůj původní a často není ani pro člověka dobře čitelný. Ztratí se totiž jména proměnných, komentáře, kompiler provádí optimalizace a ty tvůj kód často změní k nepoznání.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku