掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
データを取得して出力出力するには? (ID:50892)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ご助言ありがとうございます。 あれから色々やってなんとかデータを取り込むことに成功しました。 しかし、コード事態は何もいじっていないのに成功したので 理由をおしえてもらいたくコードを載せます。 /****************************************************************************** * ファイルオープンプログラム ******************************************************************************/ #define STRICT #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <stdio.h> #define WALL 0xFF #define NON 0x00 #define ROW 5 #define COL 5 BYTE bArray[ROW][COL]; void OnCreate(HWND hWnd); void OnPaint(HDC hDC); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); char szClassNme[] = "ウィンドウクラス・ネーム"; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInst, LPSTR lpszCmdLine, int nCmdShow) { 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 =(HBRUSH)GetStockObject(WHITE_BRUSH); myProg.lpszMenuName =NULL; myProg.lpszClassName =szClassNme; if (!RegisterClass(&myProg)) return FALSE; } hWnd = CreateWindow( szClassNme, "プログラミング", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int) (msg.wParam); } /****************************************************************************** * コールバック関数 ******************************************************************************/ LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { HDC hDC = NULL; PAINTSTRUCT ps; switch(Msg) { case WM_CREATE: OnCreate(hWnd); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_PAINT: hDC = BeginPaint(hWnd, &ps); OnPaint(hDC); EndPaint(hWnd, &ps); break; default: return DefWindowProc(hWnd, Msg, wParam, lParam); } return 0; } /****************************************************************************** * メッセージ処理 ******************************************************************************/ void OnCreate(HWND hWnd) { HANDLE hFile = NULL; DWORD dwRead; BYTE pBuf[16]; hFile = CreateFile("date.dat", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile == INVALID_HANDLE_VALUE){ MessageBox(hWnd, "ファイルがオープンできません", "ファイルのオープンの失敗", MB_OK); } // データの読み出し for(int i = 0; i < ROW; i++) { ReadFile(hFile, &pBuf, sizeof(pBuf), &dwRead, NULL); for(int j = 0; j < COL; j++) { bArray[i][j] = pBuf[j]; } } CloseHandle(hFile); } /******************************************************************************/ void OnPaint(HDC hDC) { HBRUSH hOldBrush = NULL; hOldBrush = (HBRUSH)SelectObject(hDC, GetStockObject(BLACK_BRUSH)); for(int i = 0; i < ROW; i++) { for(int j = 0; j < COL; j++) { if(bArray[i][j] == WALL) Rectangle(hDC, i * 32, j * 32, (i + 1) * 32, (j + 1) * 32); } } SelectObject(hDC, hOldBrush); } これはバイナリデータを読み込みそれを白黒画像表示 させるものです。date.datというものがそのデータです。 さらにこのデータをダイアログで指定したいのですが どうすればよいでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.