描画するためにウインドウズのプログラムも
12/7のクラスを使用して、描画するプログラムです。
//---------------------------------------------------------------- // //---------------------------------------------------------------- #include "windows.h" #include <commctrl.h> // コモンコントロールに必要 #include "G9lib.h" #pragma comment(lib, "comctl32.lib") #pragma comment(lib, "winmm.lib") LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); #define PROC_NAME L"D9ViewProc" G9lib g9; #define FRAMERATE 60 //---------------------------------------------------------------- // int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow ) { DWORD tick = 0; HWND hWnd; MSG msg; WNDCLASS myProg; if (!hPreInst) { myProg.style = CS_HREDRAW | CS_VREDRAW; myProg.lpfnWndProc = WndProc; myProg.cbClsExtra = 0; myProg.cbWndExtra = 0; myProg.hInstance = hInstance; myProg.hIcon = NULL; myProg.hCursor = LoadCursor(NULL, IDC_ARROW); myProg.hbrBackground = NULL; //IDR_MENU myProg.lpszMenuName = NULL; myProg.lpszClassName = PROC_NAME; if (!RegisterClass(&myProg)) return FALSE; } hWnd = CreateWindow( PROC_NAME, L"View Test", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); if( !g9.Init( hWnd) ) return FALSE; tick = timeGetTime(); do{ if(PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } if(timeGetTime() >= tick) { tick += (1000 / FRAMERATE); g9.TestDraw(); } } while(msg.message != WM_QUIT); g9.Exit(); return (int)( msg.wParam ); } //---------------------------------------------------------------- // LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch ( msg ) { case WM_DESTROY: PostQuitMessage( 0 ); break; default: return(DefWindowProc( hwnd, msg, wParam, lParam )); } return (0L); }