Jak na Okno Win. – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Jak na  Okno Win. – C / C++ – Fórum – Programujte.comJak na Okno Win. – C / C++ – Fórum – Programujte.com

 

Lucka
~ Anonymní uživatel
2 příspěvky
30. 5. 2012   #1
-
+1
-
Zajímavé

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 :)

Nahlásit jako SPAM
IP: 89.102.75.–
kavva+4
Návštěvník
30. 5. 2012   #2
-
+1
-
Zajímavé

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

Nahlásit jako SPAM
IP: 195.212.29.–
yaqwsx+9
Posthunter
30. 5. 2012   #3
-
+3
-
Zajímavé

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#.

Nahlásit jako SPAM
IP: 85.160.60.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Luckaa+2
Návštěvník
30. 5. 2012   #4
-
+2
-
Zajímavé

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;
}

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
yaqwsx+9
Posthunter
30. 5. 2012   #5
-
+2
-
Zajímavé

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é.

Nahlásit jako SPAM
IP: 85.160.60.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Luckaa+2
Návštěvník
30. 5. 2012   #6
-
+2
-
Zajímavé

#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
};
}

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
yaqwsx+9
Posthunter
30. 5. 2012   #7
-
+2
-
Zajímavé

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.

Nahlásit jako SPAM
IP: 85.160.60.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Luckaa+2
Návštěvník
30. 5. 2012   #8
-
+2
-
Zajímavé

#7 yaqwsx
Parádní vysvětlení :) díky :)

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Luckaa+2
Návštěvník
30. 5. 2012   #9
-
+2
-
Zajímavé

Jen ještě dotaz, když vytvořím aplikaci a odešlu pouze jen exe soubour. Ma ten druhý možnost nějak zjistit zdrojový kod ?

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
yaqwsx+9
Posthunter
30. 5. 2012   #10
-
+2
-
Zajímavé

#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í.

Nahlásit jako SPAM
IP: 85.160.60.–
Life is too short to remove USB mass storage safely...
Správný drsňák udělá z konzole cokoliv
Luckaa+2
Návštěvník
30. 5. 2012   #11
-
+2
-
Zajímavé

#10 yaqwsx
Dobře :) děkuji :)

Nahlásit jako SPAM
IP: 89.102.75.–
Ucim se c++
Pouzivam Dev-C++
A bavi me to! :)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 59 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý