WindowsプログラミングTips

by K.I
2010/01/20〜

Index


概要


[top]

基本

最もシンプルなWindowsプログラム

コンソールを表示する

コンソールを消す

Close出来ないように

Windowのある基本プログラム

#include <windows.h>
#include <tchar.h>

TCHAR szTitle[100] = _T("My Program");

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
        switch (msg) {
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        default:
                return DefWindowProc(hWnd, msg, wp, lp);
        }
        return 0;
}

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
        MSG msg;
        HWND hWnd;
        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(hInstance, MAKEINTRESOURCE(NULL));           // ICON
        wcex.hCursor            = LoadCursor(NULL, IDC_ARROW);
        wcex.hbrBackground      = (HBRUSH)(COLOR_WINDOW+1);
        wcex.lpszMenuName       = MAKEINTRESOURCE(NULL);                // MENU
        wcex.lpszClassName      = szTitle;
        wcex.hIconSm            = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(NULL));      // small ICON
        if (!RegisterClassEx(&wcex)) return 0;

        hWnd = CreateWindow(szTitle, szTitle, WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
                        CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
        if (!hWnd) {
                return 0;
        }

        ShowWindow(hWnd, nCmdShow);

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

        return 0;
}

リソースの追加


1カットアンドペーストで、すぐコンパイル出来るというコンセプトは素晴らしい。

[top]

通信

COMポートの列挙

シリアル通信


[top]

その他

二重起動防止

ウェイトルーチン

時間の測定


[top]

デバッグ

MessageBoxを使う

OutputDebugStringを使ったマクロ


[top]

シェル実行

system

ShellExecute

パイプ

リンク



comments powered by Disqus