質問するログイン新規登録

質問編集履歴

2

ソースコードの変更

2016/12/04 12:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,154 @@
1
- [問題のソースコード](http://k3tec.net/neko_wiki/index.php?Win32API%20bmp%A5%D5%A5%A1%A5%A4%A5%EB%C6%C9%A4%DF%B9%FE%A4%DF)
1
+ ```#define BMPFILE TEXT("test.bmp")
2
2
 
3
+ #include <windows.h>
4
+
5
+ LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
6
+ ATOM InitApp(HINSTANCE);
7
+ BOOL InitInstance(HINSTANCE, int);
8
+
9
+ TCHAR szClassName[] = TEXT("template"); //ウィンドウクラス
10
+
11
+
12
+ #pragma region InitWindow
13
+
14
+ int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst,
15
+ LPSTR lpsCmdLine, int nCmdShow)
16
+ {
17
+ MSG msg;
18
+ BOOL bRet;
19
+
20
+ if (!InitApp(hCurInst))
21
+ return FALSE;
22
+ if (!InitInstance(hCurInst, nCmdShow))
23
+ return FALSE;
24
+ while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) {
25
+ if (bRet == -1) {
26
+ break;
27
+ } else {
28
+ TranslateMessage(&msg);
29
+ DispatchMessage(&msg);
30
+ }
31
+ }
32
+ return (int)msg.wParam;
33
+ }
34
+
35
+ //ウィンドウ・クラスの登録
36
+
37
+ ATOM InitApp(HINSTANCE hInst)
38
+ {
39
+ WNDCLASSEX wc;
40
+ wc.cbSize = sizeof(WNDCLASSEX);
41
+ wc.style = CS_HREDRAW | CS_VREDRAW;
42
+ wc.lpfnWndProc = WndProc; //プロシージャ名
43
+ wc.cbClsExtra = 0;
44
+ wc.cbWndExtra = 0;
45
+ wc.hInstance = hInst;//インスタンス
46
+ wc.hIcon = (HICON)LoadImage(NULL,
47
+ MAKEINTRESOURCE(IDI_APPLICATION),
48
+ IMAGE_ICON,
49
+ 0,
50
+ 0,
51
+ LR_DEFAULTSIZE | LR_SHARED);
52
+ wc.hCursor = (HCURSOR)LoadImage(NULL,
53
+ MAKEINTRESOURCE(IDC_ARROW),
54
+ IMAGE_CURSOR,
55
+ 0,
56
+ 0,
57
+ LR_DEFAULTSIZE | LR_SHARED);
58
+ wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
59
+ wc.lpszMenuName = NULL; //メニュー名
60
+ wc.lpszClassName = (LPCTSTR)szClassName;
61
+ wc.hIconSm = (HICON)LoadImage(NULL,
62
+ MAKEINTRESOURCE(IDI_APPLICATION),
63
+ IMAGE_ICON,
64
+ 0,
65
+ 0,
66
+ LR_DEFAULTSIZE | LR_SHARED);
67
+
68
+ return (RegisterClassEx(&wc));
69
+ }
70
+
71
+ //ウィンドウの生成
72
+
73
+ BOOL InitInstance(HINSTANCE hInst, int nCmdShow)
74
+ {
75
+ HWND hWnd;
76
+
77
+ hWnd = CreateWindow(szClassName,
78
+ TEXT("Windowsプログラミング"), //タイトルバーにこの名前が表示されます
79
+ WS_OVERLAPPEDWINDOW, //ウィンドウの種類
80
+ CW_USEDEFAULT, //X座標
81
+ CW_USEDEFAULT, //Y座標
82
+ CW_USEDEFAULT, //幅
83
+ CW_USEDEFAULT, //高さ
84
+ NULL, //親ウィンドウのハンドル、親を作るときはNULL
85
+ NULL, //メニューハンドル、クラスメニューを使うときはNULL
86
+ hInst, //インスタンスハンドル
87
+ NULL);
88
+ if (!hWnd)
89
+ return FALSE;
90
+ ShowWindow(hWnd, nCmdShow);
91
+ UpdateWindow(hWnd);
92
+ return TRUE;
93
+ }
94
+
95
+ #pragma endregion
96
+
97
+ //ウィンドウプロシージャ
98
+
99
+ LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
100
+ {
101
+ int id;
102
+
103
+ HDC hdc; // デバイスコンテキストハンドル(描画の出力先(ディスプレイ)へのハンドル)
104
+ PAINTSTRUCT ps; // 描画構造体
105
+ static HDC hMemDC;
106
+ static HBITMAP hBitmap; // ビットマップハンドル
107
+ static BITMAP bitmap; // ビットマップ
108
+
109
+ switch (msg) {
110
+ case WM_CREATE:
111
+ {
112
+ hMemDC = CreateCompatibleDC(NULL);
113
+ hBitmap = (HBITMAP)LoadImage(
114
+ (HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE),
115
+ BMPFILE,IMAGE_BITMAP,
116
+ 0,0,LR_LOADFROMFILE);
117
+
118
+ SelectObject(hMemDC,hBitmap);
119
+ GetObject(hBitmap,sizeof(BITMAP),&bitmap);
120
+ }
121
+ break;
122
+ case WM_PAINT:
123
+ {
124
+ hdc = BeginPaint(hWnd,&ps);
125
+ BitBlt(hdc,0,0,bitmap.bmWidth,bitmap.bmHeight,hMemDC,0,0,SRCCOPY);
126
+ EndPaint(hWnd,&ps);
127
+ }
128
+ break;
129
+ case WM_CLOSE:
130
+ {
131
+ id = MessageBox(hWnd,
132
+ TEXT("終了してもよろしいですか"),
133
+ TEXT("確認"),
134
+ MB_YESNO | MB_ICONQUESTION);
135
+ if (id == IDYES)
136
+ DestroyWindow(hWnd);
137
+ }
138
+ break;
139
+ case WM_DESTROY:
140
+ {
141
+ DeleteDC(hMemDC); // デバイスコンテキストの削除
142
+ DeleteObject(hBitmap); // ビットマップの消去
143
+ PostQuitMessage(0);
144
+ }
145
+ break;
146
+ default:
147
+ return (DefWindowProc(hWnd, msg, wp, lp));
148
+ }
149
+ return 0;
150
+ }
151
+ コード
152
+ ```[問題のソースコード](http://k3tec.net/neko_wiki/index.php?Win32API%20bmp%A5%D5%A5%A1%A5%A4%A5%EB%C6%C9%A4%DF%B9%FE%A4%DF)
153
+
3
154
  このサイトのソースコードをVisualStudio2015で実行したところプリコンパイルヘッダーを検索中に不明なEOFが見つかりました。#include "stdafx.h"をソースに追加しましたか?というエラーが出ました。どうすればビルドできるようになるでしょうか?

1

リンクの追加

2016/12/04 12:08

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,152 +1,3 @@
1
- 以下コードをVisualStudio2015で実行したところプリコンパイルヘッダーを検索中に不明なEOFが見つかりました。#include "stdafx.h"をソースに追加しましたか?というエラが出ました。どうすればビルできるようになるでしょうか?
1
+ [問題のソースード](http://k3tec.net/neko_wiki/index.php?Win32API%20bmp%A5%D5%A5%A1%A5%A4%A5%EB%C6%C9%A4%DF%B9%FE%A4%DF)
2
2
 
3
- #define BMPFILE TEXT("test.bmp")
4
-
5
- #include <windows.h>
6
-
7
- LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
8
- ATOM InitApp(HINSTANCE);
9
- BOOL InitInstance(HINSTANCE, int);
10
-
11
- TCHAR szClassName[] = TEXT("template"); //ウィンドウクラ
3
+ このサイトのソースコードをVisualStudio2015で実行したところプリコンパイルヘッダーを検索中に不明なEOFが見つかりました。#include "stdafx.h"をソーに追加しましたか?というエラーが出ました。どうすればビルドできるようになるでしょうか?
12
-
13
-
14
- #pragma region InitWindow
15
-
16
- int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst,
17
- LPSTR lpsCmdLine, int nCmdShow)
18
- {
19
- MSG msg;
20
- BOOL bRet;
21
-
22
- if (!InitApp(hCurInst))
23
- return FALSE;
24
- if (!InitInstance(hCurInst, nCmdShow))
25
- return FALSE;
26
- while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) {
27
- if (bRet == -1) {
28
- break;
29
- } else {
30
- TranslateMessage(&msg);
31
- DispatchMessage(&msg);
32
- }
33
- }
34
- return (int)msg.wParam;
35
- }
36
-
37
- //ウィンドウ・クラスの登録
38
-
39
- ATOM InitApp(HINSTANCE hInst)
40
- {
41
- WNDCLASSEX wc;
42
- wc.cbSize = sizeof(WNDCLASSEX);
43
- wc.style = CS_HREDRAW | CS_VREDRAW;
44
- wc.lpfnWndProc = WndProc; //プロシージャ名
45
- wc.cbClsExtra = 0;
46
- wc.cbWndExtra = 0;
47
- wc.hInstance = hInst;//インスタンス
48
- wc.hIcon = (HICON)LoadImage(NULL,
49
- MAKEINTRESOURCE(IDI_APPLICATION),
50
- IMAGE_ICON,
51
- 0,
52
- 0,
53
- LR_DEFAULTSIZE | LR_SHARED);
54
- wc.hCursor = (HCURSOR)LoadImage(NULL,
55
- MAKEINTRESOURCE(IDC_ARROW),
56
- IMAGE_CURSOR,
57
- 0,
58
- 0,
59
- LR_DEFAULTSIZE | LR_SHARED);
60
- wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
61
- wc.lpszMenuName = NULL; //メニュー名
62
- wc.lpszClassName = (LPCTSTR)szClassName;
63
- wc.hIconSm = (HICON)LoadImage(NULL,
64
- MAKEINTRESOURCE(IDI_APPLICATION),
65
- IMAGE_ICON,
66
- 0,
67
- 0,
68
- LR_DEFAULTSIZE | LR_SHARED);
69
-
70
- return (RegisterClassEx(&wc));
71
- }
72
-
73
- //ウィンドウの生成
74
-
75
- BOOL InitInstance(HINSTANCE hInst, int nCmdShow)
76
- {
77
- HWND hWnd;
78
-
79
- hWnd = CreateWindow(szClassName,
80
- TEXT("Windowsプログラミング"), //タイトルバーにこの名前が表示されます
81
- WS_OVERLAPPEDWINDOW, //ウィンドウの種類
82
- CW_USEDEFAULT, //X座標
83
- CW_USEDEFAULT, //Y座標
84
- CW_USEDEFAULT, //幅
85
- CW_USEDEFAULT, //高さ
86
- NULL, //親ウィンドウのハンドル、親を作るときはNULL
87
- NULL, //メニューハンドル、クラスメニューを使うときはNULL
88
- hInst, //インスタンスハンドル
89
- NULL);
90
- if (!hWnd)
91
- return FALSE;
92
- ShowWindow(hWnd, nCmdShow);
93
- UpdateWindow(hWnd);
94
- return TRUE;
95
- }
96
-
97
- #pragma endregion
98
-
99
- //ウィンドウプロシージャ
100
-
101
- LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
102
- {
103
- int id;
104
-
105
- HDC hdc; // デバイスコンテキストハンドル(描画の出力先(ディスプレイ)へのハンドル)
106
- PAINTSTRUCT ps; // 描画構造体
107
- static HDC hMemDC;
108
- static HBITMAP hBitmap; // ビットマップハンドル
109
- static BITMAP bitmap; // ビットマップ
110
-
111
- switch (msg) {
112
- case WM_CREATE:
113
- {
114
- hMemDC = CreateCompatibleDC(NULL);
115
- hBitmap = (HBITMAP)LoadImage(
116
- (HINSTANCE)GetWindowLong(hWnd,GWL_HINSTANCE),
117
- BMPFILE,IMAGE_BITMAP,
118
- 0,0,LR_LOADFROMFILE);
119
-
120
- SelectObject(hMemDC,hBitmap);
121
- GetObject(hBitmap,sizeof(BITMAP),&bitmap);
122
- }
123
- break;
124
- case WM_PAINT:
125
- {
126
- hdc = BeginPaint(hWnd,&ps);
127
- BitBlt(hdc,0,0,bitmap.bmWidth,bitmap.bmHeight,hMemDC,0,0,SRCCOPY);
128
- EndPaint(hWnd,&ps);
129
- }
130
- break;
131
- case WM_CLOSE:
132
- {
133
- id = MessageBox(hWnd,
134
- TEXT("終了してもよろしいですか"),
135
- TEXT("確認"),
136
- MB_YESNO | MB_ICONQUESTION);
137
- if (id == IDYES)
138
- DestroyWindow(hWnd);
139
- }
140
- break;
141
- case WM_DESTROY:
142
- {
143
- DeleteDC(hMemDC); // デバイスコンテキストの削除
144
- DeleteObject(hBitmap); // ビットマップの消去
145
- PostQuitMessage(0);
146
- }
147
- break;
148
- default:
149
- return (DefWindowProc(hWnd, msg, wp, lp));
150
- }
151
- return 0;
152
- }