2012-03-02 1 views
1

私はSkills USAのプログラミングコンテストに参加しています。コンテストの方法は不明ですが、私はいくつかのルールを知っています。最大の問題は、あなたがソースコードを持ってこないことです。教師からQT Creatorが許可されないと聞きました。C++ guiプログラミングリソース

私はQT(または他のライブラリバンドルなし)でC++でコーディングするつもりですが、私はWindowsのローカルなものを使用しなければなりません...どうすればいいですか?

ウェブサイトで見つけたこのコードバンドルがありました。それがないすべてのウィンドウを作成し、私はより多くのこの選択を探求してきただろうが、それがどのように多くのコードを見...

#include <windows.h> 

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 

static char sClassName[] = "MyClass"; 
static HINSTANCE zhInstance = NULL; 

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { 
     WNDCLASSEX WndClass; 
     HWND hwnd; 
     MSG Msg; 

     zhInstance = hInstance; 

     WndClass.cbSize  = sizeof(WNDCLASSEX); 
     WndClass.style   = NULL; 
     WndClass.lpfnWndProc = WndProc; 
     WndClass.cbClsExtra = 0; 
     WndClass.cbWndExtra = 0; 
     WndClass.hInstance  = zhInstance; 
     WndClass.hIcon   = LoadIcon(NULL, IDI_APPLICATION); 
     WndClass.hCursor  = LoadCursor(NULL, IDC_ARROW); 
     WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); 
     WndClass.lpszMenuName = NULL; 
     WndClass.lpszClassName = sClassName; 
     WndClass.hIconSm  = LoadIcon(NULL, IDI_APPLICATION); 

     if(!RegisterClassEx(&WndClass)) { 
       MessageBox(0, "Error Registering Class!", "Error!", MB_ICONSTOP | MB_OK); 
       return 0; 
     } 

     hwnd = CreateWindowEx(WS_EX_STATICEDGE, sClassName, "db Tutorial", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 

CW_USEDEFAULT, 
        320, 240, NULL, NULL, zhInstance, NULL); 

     if(hwnd == NULL) { 
       MessageBox(0, "Error Creating Window!", "Error!", MB_ICONSTOP | MB_OK); 
       return 0; 
     } 

     ShowWindow(hwnd, nCmdShow); 
     UpdateWindow(hwnd); 

     while(GetMessage(&Msg, NULL, 0, 0)) { 
       TranslateMessage(&Msg); 
       DispatchMessage(&Msg); 
     } 

     return Msg.wParam; 
} 

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { 
     switch(Message) { 
       case WM_CLOSE: 
         DestroyWindow(hwnd); 
         break; 
       case WM_DESTROY: 
         PostQuitMessage(0); 
         break; 
       default: 
         return DefWindowProc(hwnd, Message, wParam, lParam); 
     } 
     return 0; 
} 

である私はこれについて多くを学ぶことに問題がないだろうが、私は以来、私はソースコードを持ってこないようにしました。私はこれを覚えていなければなりません。それは起こっていない。

QTのようなものを使用したり、空のウィンドウを作成するコードページを入力する必要がないC++でウィンドウ/ボタンを作成する方法はありますか?私はグーグルで見ており、すべてのQTクリエイターについてです。どんな助けも素晴らしいだろう。

「簡単な方法」を探しているわけではありません.C++の教科書以外の例にアクセスすることなく、覚えて入力することができます。

+0

MFCを使用できますか? – adelphus

+0

なぜリソースを使用しないのですか?その後、リソースエディタを使用してコントロールをドラッグアンドドロップできます。 –

+0

@デルファス私は確信していません...私はそれを電子メールに含めます。私はこのことを担当する人々に送信します。 – Gabe

答えて

1

私はweb siteを見て、それが
コンピュータプログラミング

競争は、プロジェクトのコーディングおよび出力、スキル関連 筆記試験と面接で構成されています。と言います競技者は、書面によるテストへの指示と2つの プロジェクトのそれぞれを含むパケット を受け取ります。各プロジェクトの仕様はVisual Basic、 Java、C#、C++、RPG用に書かれています。プロジェクトはデスクトップの "SkillsUSA Contestant#_"という フォルダに保存されます。すべてのプロジェクトは、 のジャンプドライブまたはディスケット(学生が好きな方)にダウンロードされた になり、コードとスクリーンの両方に印刷されるメインステーションに転送されます。

上記のいずれかの言語が使用できるようです。あなたは1つまたは2つの課題を与えられ、それをコード化するよう求められます。 UIが含まれている場合は、C++コーダーであることが欠点です。 VBコーダーはおそらく、UIタイプの割り当てで最も簡単な時間を持っています。

+0

それは事です。私は3つすべてを知っていますが、あなたがプログラミングのスキルを判断しようとするならば、裁判官はC++に最も感銘を受けます。私はVBを使用することに頼らない。 – Gabe

+0

私は彼らがあなたの能力を正しく判断することを望んでいます。正方形のペグ、丸い穴など – adelphus

+0

@Gabe要件は、alloted時間の下で満たされている限り、言語は重要ではありません。 –

1

QTのようなものを使用したり、空のウィンドウを作成するコードページを入力する必要がない、C++でウィンドウ/ボタンを作成する方法はありますか?私はグーグルで見ており、すべてのQTクリエイターについてです。どんな助けも素晴らしいだろう。 Windows APIのレベルのGUIプログラミングへの簡単な方法については

、あなた’示す再定型コードの多くを回避するために、ダイアログのリソースを使用して、私の"Lessons in Windows API Programming"を、チェックしてください。

このようなリソースを作成するには、ツールとドキュメントが必要です。

’のように聞こえますが、その場合は、絶対にC++を使用して、絶対にGUIを作成する必要がある場合は、’を再インストールしてください。しかし、私はあなたが何か誤解しているに違いないと思います。バスドライバーとしての人のスキルをテストすることはできません。