参考資料:
MSDN ライブラリ>Windows 開発>C++ による Windows プログラミングの学習>モジュール 1. 初めての Windows プログラム
https://msdn.microsoft.com/ja-jp/library/ff381409(v=vs.85).aspx
まず、新しいプロジェクトを作成します。
※各操作はVisual Studio 2015での物
ファイル>新規作成>プロジェクト>Visual C++>Win32プロジェクト
でプロジェクトを作成
ウィザードが表示されるのでアプリケーションの種類で
Windows アプリケーションを選択して完了
個人的に、使いまわせそうなラッパーはライブラリ化したいので
もう一つスタティックリンクライブラリを作成しておきます。
ファイル>追加>新しいプロジェクト>Visual C++>Win32プロジェクト
でプロジェクトを追加し、今度は、アプリケーションの種類でスタティックライブラリを選択して完了します。
アプリケーションプロジェクトから、ライブラリプロジェクトを参照するように設定します。
ソリューションエクスプローラーでアプリケーションプロジェクトで右クリック
>追加>参照>参照の追加ウィンドウが表示されるので
作成したスタティックライブラリプロジェクトをチェックしてOKします。
最初から書かれているコードを削除して
MSDNからサンプルコードを貼り付けます
#include <windows.h> LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow) { // ウィンドウ クラスを登録する const wchar_t CLASS_NAME[] = L"Sample Window Class"; WNDCLASS wc = {}; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.lpszClassName = CLASS_NAME; RegisterClass(&wc); // ウィンドウを作成する HWND hwnd = CreateWindowEx( 0, // オプションのウィンドウ スタイル CLASS_NAME, // ウィンドウ クラス L"Learn to Program Windows", // ウィンドウ テキスト WS_OVERLAPPEDWINDOW, // ウィンドウ スタイル // サイズと位置 CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, // 親ウィンドウ NULL, // メニュー hInstance, // インスタンス ハンドル NULL // 追加のアプリケーション データ ); if (hwnd == NULL) { return 0; } ShowWindow(hwnd, nCmdShow); // メッセージ ループを実行する MSG msg = {}; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); FillRect(hdc, &ps.rcPaint, (HBRUSH)(COLOR_WINDOW + 1)); EndPaint(hwnd, &ps); } return 0; } return DefWindowProc(hwnd, uMsg, wParam, lParam); }