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; }
// 主窗口的消息处理函数 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; }