int main()
{
    typedef SwitchTest<-1>::Type T1;
    typedef SwitchTest< 0>::Type T2;
    typedef SwitchTest< 1>::Type T3;
    typedef SwitchTest< 2>::Type T4;

    std::cout << switchTest(T1()) << "\n"   // => "-1"
              << switchTest(T2()) << "\n"   // => "0"
              << switchTest(T3()) << "\n"   // => "1"
              << switchTest(T4()) << "\n";  // => "2"

    return 0;
}
Exemple #2
0
// 主窗口的消息处理函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
    switch (message)
    {
    case WM_ERASEBKGND:         // 不清除背景,避免闪烁
        break;
    case WM_PAINT:              // 重绘主窗口
        ondraw(hwnd);
        break;
    case WM_SIZE:               // 改变窗口大小
        regen(hwnd);
        break;
    case WM_DESTROY:            // 退出
        PostQuitMessage(0);
        break;
    case WM_LBUTTONDBLCLK:      // 双击切换测试图形
        switchTest(hwnd);
        break;
    case WM_MOUSEMOVE:          // 鼠标移动
        _pt = MAKEPOINTS(lparam);
        InvalidateRect(hwnd, NULL, FALSE);
        break;
    default:
        return DefWindowProc(hwnd, message, wparam, lparam);
    }

    return 0;
}