Cara membuat panduan penggunaan software sederhana

Lompati ke konten utamaBrowser ini sudah tidak didukung.

Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.

Panduan: Membuat aplikasi Windows Desktop tradisional (C++)

  • Artikel
  • 09/26/2022
  • 13 menit untuk membaca

Dalam artikel ini

Panduan ini menunjukkan cara membuat aplikasi desktop Windows tradisional di Visual Studio. Contoh aplikasi yang akan Anda buat menggunakan API Windows untuk menampilkan "Halo, Windows desktop!" di jendela. Anda dapat menggunakan kode yang Anda kembangkan dalam panduan ini sebagai pola untuk membuat aplikasi desktop Windows lainnya.

API Windows (juga dikenal sebagai WIN32 API, Windows Desktop API, dan Windows Classic API) adalah kerangka kerja berbasis bahasa C untuk membuat aplikasi Windows. Ini telah ada sejak tahun 1980-an dan telah digunakan untuk membuat aplikasi Windows selama beberapa dekade. Kerangka kerja yang lebih canggih dan lebih mudah diprogram telah dibangun di atas WINDOWS API. Misalnya, MFC, ATL, .NET frameworks. Bahkan kode Windows Runtime paling modern untuk aplikasi UWP dan Store yang ditulis dalam C++/WinRT menggunakan API Windows di bawahnya. Untuk informasi selengkapnya tentang API Windows, lihat Indeks API Windows. Ada banyak cara untuk membuat aplikasi Windows, tetapi proses di atas adalah yang pertama.

Penting

Demi brevity, beberapa pernyataan kode dihilangkan dalam teks. Bagian Bangun kode di akhir dokumen ini memperlihatkan kode lengkap.

Prasyarat

  • Komputer yang menjalankan Microsoft Windows 7 atau versi yang lebih baru. Kami merekomendasikan Windows 10 atau yang lebih baru untuk pengalaman pengembangan terbaik.

  • Salinan Visual Studio. Untuk informasi tentang cara mengunduh dan menginstal Visual Studio, lihat Menginstal Visual Studio. Saat Anda menjalankan alat penginstal, pastikan bahwa pengembangan Desktop dengan beban kerja C++ diperiksa. Jangan khawatir jika Anda tidak menginstal beban kerja ini saat menginstal Visual Studio. Anda dapat menjalankan alat penginstal lagi dan menginstalnya sekarang.

    Cara membuat panduan penggunaan software sederhana

  • Pemahaman tentang dasar-dasar penggunaan IDE Visual Studio. Jika Anda telah menggunakan Windows aplikasi desktop sebelumnya, Anda mungkin dapat mengikutinya. Untuk pengenalan, lihat tur fitur ide Visual Studio.

  • Pemahaman tentang cukup tentang dasar-dasar bahasa C++ untuk diikuti. Jangan khawatir, kita tidak melakukan sesuatu yang terlalu rumit.

Membuat proyek desktop Windows

Ikuti langkah-langkah ini untuk membuat proyek desktop Windows pertama Anda. Saat Anda pergi, Anda akan memasukkan kode untuk aplikasi desktop Windows yang berfungsi. Untuk melihat dokumentasi untuk versi Visual Studio pilihan Anda, gunakan kontrol Pemilih versi. Ini ditemukan di bagian atas daftar isi di halaman ini.

Untuk membuat proyek desktop Windows di Visual Studio

  1. Dari menu utama, pilih FileBaru>>Project untuk membuka kotak dialog Buat Project Baru.

  2. Di bagian atas dialog, atur Bahasa ke C++, atur Platform ke Windows, dan atur jenis Project ke Desktop.

  3. Dari daftar tipe proyek yang difilter, pilih Windows Wizard Desktop lalu pilih Berikutnya. Di halaman berikutnya, masukkan nama untuk proyek, misalnya, DesktopApp.

  4. Pilih tombol Buat untuk membuat proyek.

  5. Dialog Project Desktop Windows sekarang muncul. Di bawah Jenis aplikasi, pilih Aplikasi desktop (.exe). Di bawah Opsi tambahan, pilih Kosongkan proyek. Pilih OK untuk membuat proyek.

  6. Di Penjelajah Solusi, klik kanan proyek DesktopApp, pilih Tambahkan, lalu pilih Item Baru.

    Cara membuat panduan penggunaan software sederhana

  7. Dalam kotak dialog Tambahkan Item Baru , pilih File C++ (.cpp). Dalam kotak Nama , ketik nama untuk file, misalnya, HelloWindowsDesktop.cpp. Pilih Tambahkan.

    Cara membuat panduan penggunaan software sederhana

Proyek Anda sekarang dibuat dan file sumber Anda dibuka di editor. Untuk melanjutkan, lewati ke depan untuk Membuat kode.

Untuk membuat proyek desktop Windows di Visual Studio 2017

  1. Pada menu File, pilih Baru lalu pilih Project.

  2. Dalam kotak dialog Project Baru, di panel kiri, perluas InstalVisual>C++, lalu pilih Windows Desktop. Di panel tengah, pilih Windows Wizard Desktop.

    Dalam kotak Nama , ketik nama untuk proyek, misalnya, DesktopApp. Pilih OK.

    Cara membuat panduan penggunaan software sederhana

  3. Dalam dialog Project Desktop Windows, di bawah Jenis aplikasi, pilih aplikasi Windows (.exe). Di bawah Opsi tambahan, pilih Kosongkan proyek. Pastikan Header Yang Telah Dikommpilasikan sebelumnya tidak dipilih. Pilih OK untuk membuat proyek.

  4. Di Penjelajah Solusi, klik kanan proyek DesktopApp, pilih Tambahkan, lalu pilih Item Baru.

    Cara membuat panduan penggunaan software sederhana

  5. Dalam kotak dialog Tambahkan Item Baru , pilih File C++ (.cpp). Dalam kotak Nama , ketik nama untuk file, misalnya, HelloWindowsDesktop.cpp. Pilih Tambahkan.

    Cara membuat panduan penggunaan software sederhana

Proyek Anda sekarang dibuat dan file sumber Anda dibuka di editor. Untuk melanjutkan, lewati ke depan untuk Membuat kode.

Untuk membuat proyek desktop Windows di Visual Studio 2015

  1. Pada menu File, pilih Baru lalu pilih Project.

  2. Dalam kotak dialog Project Baru, di panel kiri, perluasInstalledTemplatesVisual>>C++, lalu pilih Win32. Di panel tengah, pilih Win32 Project.

    Dalam kotak Nama , ketik nama untuk proyek, misalnya, DesktopApp. Pilih OK.

    Cara membuat panduan penggunaan software sederhana

  3. Pada halaman Gambaran UmumPanduan Aplikasi Win32, pilih Berikutnya.

    Cara membuat panduan penggunaan software sederhana

  4. Pada halaman Pengaturan Aplikasi, di bawah Jenis aplikasi, pilih aplikasi Windows. Di bawah Opsi tambahan, hapus centang Header yang telah dikompilasi sebelumnya, lalu pilih Kosongkan proyek. Pilih Selesai untuk membuat proyek.

  5. Di Penjelajah Solusi, klik kanan proyek DesktopApp, pilih Tambahkan, lalu pilih Item Baru.

    Cara membuat panduan penggunaan software sederhana

  6. Dalam kotak dialog Tambahkan Item Baru , pilih File C++ (.cpp). Dalam kotak Nama , ketik nama untuk file, misalnya, HelloWindowsDesktop.cpp. Pilih Tambahkan.

    Cara membuat panduan penggunaan software sederhana

Proyek Anda sekarang dibuat dan file sumber Anda dibuka di editor.

Membuat kode

Selanjutnya, Anda akan mempelajari cara membuat kode untuk aplikasi desktop Windows di Visual Studio.

Untuk memulai aplikasi desktop Windows

  1. Sama seperti setiap aplikasi C dan aplikasi C++ harus memiliki main fungsi sebagai titik awalnya, setiap aplikasi desktop Windows harus memiliki WinMain fungsi. WinMain memiliki sintaks berikut.

    int WINAPI WinMain(
       _In_ HINSTANCE hInstance,
       _In_opt_ HINSTANCE hPrevInstance,
       _In_ LPSTR     lpCmdLine,
       _In_ int       nCmdShow
    );
    

    Untuk informasi tentang parameter dan nilai pengembalian fungsi ini, lihat Titik masuk WinMain.

    Catatan

    Apa saja kata tambahan tersebut, seperti WINAPI, atau CALLBACK, atau HINSTANCE, atau _In_? API Windows tradisional menggunakan typedefs dan makro praprosesor secara luas untuk mengabstraksi beberapa detail jenis dan kode khusus platform, seperti konvensi panggilan, __declspec deklarasi, dan pragma kompilator. Di Visual Studio, Anda bisa menggunakan fitur Info Cepat IntelliSense untuk melihat apa yang ditentukan typedefs dan makro ini. Arahkan mouse Anda ke kata yang menarik, atau pilih dan tekan CtrlK+,CtrlI+ untuk jendela pop-up kecil yang berisi definisi. Untuk informasi selengkapnya, lihat Menggunakan IntelliSense. Parameter dan jenis pengembalian sering menggunakan Anotasi SAL untuk membantu Anda menangkap kesalahan pemrograman. Untuk informasi selengkapnya, lihat Menggunakan Anotasi SAL untuk Mengurangi Cacat Kode C/C++.

  2. Windows program desktop memerlukan <windows.h>. <tchar.h> mendefinisikan TCHAR makro, yang pada akhirnya menyelesaikan jika wchar_t simbol UNICODE didefinisikan dalam proyek Anda, jika tidak, ini akan diselesaikan ke char. Jika Anda selalu membangun dengan UNICODE diaktifkan, Anda tidak memerlukan TCHAR dan hanya dapat menggunakan wchar_t secara langsung.

    #include <windows.h>
    #include <tchar.h>
    
  3. Seiring dengan WinMain fungsi , setiap aplikasi desktop Windows juga harus memiliki fungsi prosedur jendela. Fungsi ini biasanya bernama WndProc, tetapi Anda dapat menamainya apa pun yang Anda suka. WndProc memiliki sintaks berikut.

    LRESULT CALLBACK WndProc(
       _In_ HWND   hWnd,
       _In_ UINT   message,
       _In_ WPARAM wParam,
       _In_ LPARAM lParam
    );
    

    Dalam fungsi ini, Anda menulis kode untuk menangani pesan yang diterima aplikasi dari Windows ketika peristiwa terjadi. Misalnya, jika pengguna memilih tombol OK di aplikasi Anda, Windows akan mengirim pesan kepada Anda dan Anda dapat menulis kode di dalam fungsi Anda WndProc yang melakukan pekerjaan apa pun yang sesuai. Ini disebut menangani peristiwa. Anda hanya menangani peristiwa yang relevan untuk aplikasi Anda.

    Untuk informasi selengkapnya, lihat Prosedur Jendela.

Untuk menambahkan fungsionalitas ke fungsi WinMain

  1. Dalam fungsi , WinMain Anda mengisi struktur jenis WNDCLASSEX. Struktur berisi informasi tentang jendela: ikon aplikasi, warna latar belakang jendela, nama untuk ditampilkan di bilah judul, antara lain. Yang penting, ini berisi penunjuk fungsi ke prosedur jendela Anda. Contoh berikut menunjukkan struktur umum WNDCLASSEX .

    WNDCLASSEX wcex;
    
    wcex.cbSize         = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(wcex.hInstance, IDI_APPLICATION);
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, IDI_APPLICATION);
    

    Untuk informasi tentang bidang struktur di atas, lihat WNDCLASSEX.

  2. WNDCLASSEX Daftarkan dengan Windows sehingga tahu tentang jendela Anda dan cara mengirim pesan ke dalamnya. Gunakan fungsi RegisterClassEx dan teruskan struktur kelas jendela sebagai argumen. _T Makro digunakan karena kita menggunakan tipe .TCHAR

    if (!RegisterClassEx(&wcex))
    {
       MessageBox(NULL,
          _T("Call to RegisterClassEx failed!"),
          _T("Windows Desktop Guided Tour"),
          NULL);
    
       return 1;
    }
    
  3. Sekarang Anda dapat membuat jendela. Gunakan fungsi CreateWindowEx .

    static TCHAR szWindowClass[] = _T("DesktopApp");
    static TCHAR szTitle[] = _T("Windows Desktop Guided Tour Application");
    
    // The parameters to CreateWindowEx explained:
    // WS_EX_OVERLAPPEDWINDOW : An optional extended window style.
    // szWindowClass: the name of the application
    // szTitle: the text that appears in the title bar
    // WS_OVERLAPPEDWINDOW: the type of window to create
    // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y)
    // 500, 100: initial size (width, length)
    // NULL: the parent of this window
    // NULL: this application does not have a menu bar
    // hInstance: the first parameter from WinMain
    // NULL: not used in this application
    HWND hWnd = CreateWindowEx(
    WS_EX_OVERLAPPEDWINDOW,
       szWindowClass,
       szTitle,
       WS_OVERLAPPEDWINDOW,
       CW_USEDEFAULT, CW_USEDEFAULT,
       500, 100,
       NULL,
       NULL,
       hInstance,
       NULL
    );
    if (!hWnd)
    {
       MessageBox(NULL,
          _T("Call to CreateWindowEx failed!"),
          _T("Windows Desktop Guided Tour"),
          NULL);
    
       return 1;
    }
    

    Fungsi ini mengembalikan HWND, yang merupakan handel ke jendela. Handel agak seperti penunjuk yang Windows gunakan untuk melacak jendela yang terbuka. Untuk informasi selengkapnya, lihat Windows Jenis Data.

  4. Pada titik ini, jendela telah dibuat, tetapi kita masih perlu memberi tahu Windows untuk membuatnya terlihat. Itulah yang dilakukan kode ini:

    // The parameters to ShowWindow explained:
    // hWnd: the value returned from CreateWindow
    // nCmdShow: the fourth parameter from WinMain
    ShowWindow(hWnd,
       nCmdShow);
    UpdateWindow(hWnd);
    

    Jendela yang ditampilkan tidak memiliki banyak konten karena Anda belum menerapkan WndProc fungsi. Dengan kata lain, aplikasi belum menangani pesan yang sekarang dikirim Windows ke dalamnya.

  5. Untuk menangani pesan, pertama-tama kita menambahkan perulangan pesan untuk mendengarkan pesan yang Windows kirim. Ketika aplikasi menerima pesan, perulangan ini mengirimkannya ke fungsi Anda WndProc untuk ditangani. Perulangan pesan menyerubungi kode berikut.

    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
    }
    
    return (int) msg.wParam;
    

    Untuk informasi selengkapnya tentang struktur dan fungsi dalam perulangan pesan, lihat MSG, GetMessage, TranslateMessage, dan DispatchMessage.

    Pada titik ini, WinMain fungsi harus menyerupai kode berikut.

    int WINAPI WinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPSTR lpCmdLine,
                       int nCmdShow)
    {
       WNDCLASSEX wcex;
    
       wcex.cbSize = sizeof(WNDCLASSEX);
       wcex.style          = CS_HREDRAW | CS_VREDRAW;
       wcex.lpfnWndProc    = WndProc;
       wcex.cbClsExtra     = 0;
       wcex.cbWndExtra     = 0;
       wcex.hInstance      = hInstance;
       wcex.hIcon          = LoadIcon(wcex.hInstance, IDI_APPLICATION);
       wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
       wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
       wcex.lpszMenuName   = NULL;
       wcex.lpszClassName  = szWindowClass;
       wcex.hIconSm        = LoadIcon(wcex.hInstance, IDI_APPLICATION);
    
       if (!RegisterClassEx(&wcex))
       {
          MessageBox(NULL,
             _T("Call to RegisterClassEx failed!"),
             _T("Windows Desktop Guided Tour"),
             NULL);
    
          return 1;
       }
    
       // Store instance handle in our global variable
       hInst = hInstance;
    
       // The parameters to CreateWindowEx explained:
       // WS_EX_OVERLAPPEDWINDOW : An optional extended window style.
       // szWindowClass: the name of the application
       // szTitle: the text that appears in the title bar
       // WS_OVERLAPPEDWINDOW: the type of window to create
       // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y)
       // 500, 100: initial size (width, length)
       // NULL: the parent of this window
       // NULL: this application dows not have a menu bar
       // hInstance: the first parameter from WinMain
       // NULL: not used in this application
       HWND hWnd = CreateWindowEx(
          WS_EX_OVERLAPPEDWINDOW,
          szWindowClass,
          szTitle,
          WS_OVERLAPPEDWINDOW,
          CW_USEDEFAULT, CW_USEDEFAULT,
          500, 100,
          NULL,
          NULL,
          hInstance,
          NULL
       );
    
       if (!hWnd)
       {
          MessageBox(NULL,
             _T("Call to CreateWindow failed!"),
             _T("Windows Desktop Guided Tour"),
             NULL);
    
          return 1;
       }
    
       // The parameters to ShowWindow explained:
       // hWnd: the value returned from CreateWindow
       // nCmdShow: the fourth parameter from WinMain
       ShowWindow(hWnd,
          nCmdShow);
       UpdateWindow(hWnd);
    
       // Main message loop:
       MSG msg;
       while (GetMessage(&msg, NULL, 0, 0))
       {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
       }
    
       return (int) msg.wParam;
    }
    

Untuk menambahkan fungsionalitas ke fungsi WndProc

  1. Untuk mengaktifkan WndProc fungsi untuk menangani pesan yang diterima aplikasi, terapkan pernyataan switch.

    Salah satu pesan penting yang harus ditangani adalah pesan WM_PAINT . Aplikasi menerima WM_PAINT pesan ketika bagian dari jendela yang ditampilkan harus diperbarui. Peristiwa dapat terjadi ketika pengguna memindahkan jendela di depan jendela Anda, lalu memindahkannya lagi. Aplikasi Anda tidak tahu kapan peristiwa ini terjadi. Hanya Windows yang tahu, sehingga memberi tahu aplikasi Anda dengan WM_PAINT pesan. Ketika jendela pertama kali ditampilkan, semua jendela harus diperbarui.

    Untuk menangani WM_PAINT pesan, pertama-tama panggil BeginPaint, lalu tangani semua logika untuk meletakkan teks, tombol, dan kontrol lain di jendela, lalu panggil EndPaint. Untuk aplikasi, logika antara panggilan awal dan panggilan akhir menampilkan string "Halo, Windows desktop!" di jendela. Dalam kode berikut, fungsi TextOut digunakan untuk menampilkan string.

    PAINTSTRUCT ps;
    HDC hdc;
    TCHAR greeting[] = _T("Hello, Windows desktop!");
    
    switch (message)
    {
    case WM_PAINT:
       hdc = BeginPaint(hWnd, &ps);
    
       // Here your application is laid out.
       // For this introduction, we just print out "Hello, Windows desktop!"
       // in the top left corner.
       TextOut(hdc,
          5, 5,
          greeting, _tcslen(greeting));
       // End application-specific layout section.
    
       EndPaint(hWnd, &ps);
       break;
    }
    

    HDC dalam kode adalah handel ke konteks perangkat, yang digunakan untuk menggambar di area klien jendela. BeginPaint Gunakan fungsi dan EndPaint untuk mempersiapkan dan menyelesaikan gambar di area klien. BeginPaint mengembalikan handel ke konteks perangkat tampilan yang digunakan untuk menggambar di area klien; EndPaint mengakhiri permintaan cat dan merilis konteks perangkat.

  2. Aplikasi biasanya menangani banyak pesan lain. Misalnya, WM_CREATE saat jendela pertama kali dibuat, dan WM_DESTROY saat jendela ditutup. Kode berikut menunjukkan fungsi dasar tetapi lengkap WndProc .

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
       PAINTSTRUCT ps;
       HDC hdc;
       TCHAR greeting[] = _T("Hello, Windows desktop!");
    
       switch (message)
       {
       case WM_PAINT:
          hdc = BeginPaint(hWnd, &ps);
    
          // Here your application is laid out.
          // For this introduction, we just print out "Hello, Windows desktop!"
          // in the top left corner.
          TextOut(hdc,
             5, 5,
             greeting, _tcslen(greeting));
          // End application specific layout section.
    
          EndPaint(hWnd, &ps);
          break;
       case WM_DESTROY:
          PostQuitMessage(0);
          break;
       default:
          return DefWindowProc(hWnd, message, wParam, lParam);
          break;
       }
    
       return 0;
    }
    

Bangun kode

Seperti yang dijanjikan, berikut adalah kode lengkap untuk aplikasi kerja.

Untuk membangun contoh ini

  1. Hapus kode apa pun yang telah Anda masukkan di HelloWindowsDesktop.cpp di editor. Salin contoh kode ini lalu tempelkan ke HelloWindowsDesktop.cpp:

    // HelloWindowsDesktop.cpp
    // compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c
    
    #include <windows.h>
    #include <stdlib.h>
    #include <string.h>
    #include <tchar.h>
    
    // Global variables
    
    // The main window class name.
    static TCHAR szWindowClass[] = _T("DesktopApp");
    
    // The string that appears in the application's title bar.
    static TCHAR szTitle[] = _T("Windows Desktop Guided Tour Application");
    
    // Stored instance handle for use in Win32 API calls such as FindResource
    HINSTANCE hInst;
    
    // Forward declarations of functions included in this code module:
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain(
       _In_ HINSTANCE hInstance,
       _In_opt_ HINSTANCE hPrevInstance,
       _In_ LPSTR     lpCmdLine,
       _In_ int       nCmdShow
    )
    {
       WNDCLASSEX wcex;
    
       wcex.cbSize = sizeof(WNDCLASSEX);
       wcex.style          = CS_HREDRAW | CS_VREDRAW;
       wcex.lpfnWndProc    = WndProc;
       wcex.cbClsExtra     = 0;
       wcex.cbWndExtra     = 0;
       wcex.hInstance      = hInstance;
       wcex.hIcon          = LoadIcon(wcex.hInstance, IDI_APPLICATION);
       wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
       wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
       wcex.lpszMenuName   = NULL;
       wcex.lpszClassName  = szWindowClass;
       wcex.hIconSm        = LoadIcon(wcex.hInstance, IDI_APPLICATION);
    
       if (!RegisterClassEx(&wcex))
       {
          MessageBox(NULL,
             _T("Call to RegisterClassEx failed!"),
             _T("Windows Desktop Guided Tour"),
             NULL);
    
          return 1;
       }
    
       // Store instance handle in our global variable
       hInst = hInstance;
    
       // The parameters to CreateWindowEx explained:
       // WS_EX_OVERLAPPEDWINDOW : An optional extended window style.
       // szWindowClass: the name of the application
       // szTitle: the text that appears in the title bar
       // WS_OVERLAPPEDWINDOW: the type of window to create
       // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y)
       // 500, 100: initial size (width, length)
       // NULL: the parent of this window
       // NULL: this application does not have a menu bar
       // hInstance: the first parameter from WinMain
       // NULL: not used in this application
       HWND hWnd = CreateWindowEx(
          WS_EX_OVERLAPPEDWINDOW,
          szWindowClass,
          szTitle,
          WS_OVERLAPPEDWINDOW,
          CW_USEDEFAULT, CW_USEDEFAULT,
          500, 100,
          NULL,
          NULL,
          hInstance,
          NULL
       );
    
       if (!hWnd)
       {
          MessageBox(NULL,
             _T("Call to CreateWindow failed!"),
             _T("Windows Desktop Guided Tour"),
             NULL);
    
          return 1;
       }
    
       // The parameters to ShowWindow explained:
       // hWnd: the value returned from CreateWindow
       // nCmdShow: the fourth parameter from WinMain
       ShowWindow(hWnd,
          nCmdShow);
       UpdateWindow(hWnd);
    
       // Main message loop:
       MSG msg;
       while (GetMessage(&msg, NULL, 0, 0))
       {
          TranslateMessage(&msg);
          DispatchMessage(&msg);
       }
    
       return (int) msg.wParam;
    }
    
    //  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
    //
    //  PURPOSE:  Processes messages for the main window.
    //
    //  WM_PAINT    - Paint the main window
    //  WM_DESTROY  - post a quit message and return
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
       PAINTSTRUCT ps;
       HDC hdc;
       TCHAR greeting[] = _T("Hello, Windows desktop!");
    
       switch (message)
       {
       case WM_PAINT:
          hdc = BeginPaint(hWnd, &ps);
    
          // Here your application is laid out.
          // For this introduction, we just print out "Hello, Windows desktop!"
          // in the top left corner.
          TextOut(hdc,
             5, 5,
             greeting, _tcslen(greeting));
          // End application-specific layout section.
    
          EndPaint(hWnd, &ps);
          break;
       case WM_DESTROY:
          PostQuitMessage(0);
          break;
       default:
          return DefWindowProc(hWnd, message, wParam, lParam);
          break;
       }
    
       return 0;
    }
    
  2. Pada menu Build , pilih Bangun Solusi. Hasil kompilasi akan muncul di jendela Output di Visual Studio.

    Cara membuat panduan penggunaan software sederhana

  3. Untuk menjalankan aplikasi, tekan F5. Jendela yang berisi teks "Halo, Windows desktop!" akan muncul di sudut kiri atas tampilan.

    Cara membuat panduan penggunaan software sederhana

Selamat! Anda telah menyelesaikan panduan ini dan membangun aplikasi desktop Windows tradisional.

Lihat juga

Aplikasi Desktop Windows


Additional resources

Apa yang dimaksud dengan user manual?

Manual pengguna adalah suatu dokumen komunikasi teknis yang bertujuan memberikan bantuan untuk penggunaan suatu sistem, terutama dikaitkan dengan peranti elektronik serta perangkat keras dan lunak komputer.

Apa saja isi dari manual book?

Isi manual book biasanya terdapat informasi terpenting dan detail seperti Informasi Garansi, Instruksi Keselamatan, Instruksi Instalasi, Identifikasi Masalah, Instruksi Pengaturan, Spesifikasi Umum Produk serta Instruksi Perawatan dan Pemecahan Masalah.

Manual book untuk apa?

Manual book adalah buku panduan yang dibuat untuk menyampaikan beberapa informasi kepada calon konsumen. Buku panduan sering digunakan pada produk baru, untuk memberikan informasi mengenai produk tersebut.