質問編集履歴

1

提示コードをリファクタリングしました。

2020/09/02 11:55

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -64,9 +64,13 @@
64
64
 
65
65
  break;
66
66
 
67
+
68
+
69
+ //////////////////////////////////////////////////////////////
70
+
67
71
  case WM_PAINT:
68
72
 
69
- {/////////////////////////////////////////////////////////////////////////////
73
+ {
70
74
 
71
75
  printf("Paint\n");
72
76
 
@@ -104,10 +108,14 @@
104
108
 
105
109
 
106
110
 
107
- }/////////////////////////////////////////////////////////////////////////
111
+ }
108
112
 
109
113
  break;
110
114
 
115
+ //////////////////////////////////////////////////////////////
116
+
117
+
118
+
111
119
  case WM_SIZE:
112
120
 
113
121
  {
@@ -150,127 +158,129 @@
150
158
 
151
159
 
152
160
 
153
- HWND hWnd;//ウインドウハンドル
161
+ HWND hWnd = { 0 };//ウインドウハンドル
154
-
162
+
155
- MSG msg = { 0 };//スレッドのメッセージキュー情報
163
+ MSG msg = { 0 };//スレッドのメッセージキュー情報
156
-
164
+
157
- WNDCLASS wc;//汎用ウインドウ
165
+ WNDCLASS wc; //汎用ウインドウ
166
+
158
-
167
+ HGLRC glRC; //OpenGLレンダリングコンテキスト
168
+
169
+ HDC dc; //デバイスコンテキスト
170
+
171
+
172
+
173
+
174
+
175
+ wc.style = CS_HREDRAW | CS_VREDRAW; //ウインドウのスタイル(ウインドウサイズを変更すると自動調整)
176
+
177
+ wc.lpfnWndProc = WndProc; //ウインドウプロシージャを設定
178
+
179
+ wc.cbClsExtra = 0; //構造体の後ろに補足バイト数
180
+
181
+ wc.cbWndExtra = 0; //ウインドウインスタンスの後ろに補足バイト数
182
+
183
+ wc.hInstance = hInstance; //ウインドウプロシージャがあるインスタンスハンドル
184
+
185
+ wc.hIcon = NULL; //アイコンのハンドル
186
+
187
+ wc.hCursor = LoadCursor(NULL,IDC_ARROW); //マウスカーソルのハンドル
188
+
189
+ wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //ウインドウ背景色
190
+
191
+ wc.lpszMenuName = NULL; //デフォルトのメニュー名
192
+
193
+ wc.lpszClassName = TEXT("WinAPITest"); //ウインドウクラスに付ける名前
194
+
195
+
196
+
197
+ if( !RegisterClass(&wc))
198
+
199
+ {
200
+
201
+ return 1;
202
+
203
+ }
204
+
205
+
206
+
159
- HGLRC glRC;
207
+ hWnd = nullptr;
208
+
209
+
210
+
211
+
212
+
160
-
213
+ hWnd = CreateWindowW(TEXT("WinAPITest"),TEXT("title") ,WS_OVERLAPPEDWINDOW | WS_VISIBLE,
214
+
215
+ 500,500,500,500,
216
+
217
+ NULL,NULL,hInstance,NULL);
218
+
219
+
220
+
221
+
222
+
223
+ if(hWnd == NULL)
224
+
225
+ {
226
+
227
+ printf("NULL");
228
+
229
+ }
230
+
231
+
232
+
233
+
234
+
235
+ //ピクセルフォーマットを指定
236
+
237
+ PIXELFORMATDESCRIPTOR pfd =
238
+
239
+ {
240
+
241
+ sizeof(PIXELFORMATDESCRIPTOR),
242
+
243
+ 1,
244
+
245
+ PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
246
+
247
+ PFD_TYPE_RGBA,
248
+
249
+ 32,
250
+
251
+ 0,0,0,0,0,
252
+
253
+ 0,
254
+
255
+ 0,
256
+
257
+ 0,
258
+
161
- HDC dc;
259
+ 0,0,0,0,
260
+
162
-
261
+ 24,
262
+
163
-
263
+ 8,
264
+
265
+ 0,
266
+
267
+ PFD_MAIN_PLANE,
268
+
269
+ 0,
270
+
271
+ 0,0,0
272
+
273
+ };
274
+
275
+
276
+
277
+
278
+
279
+ dc = GetDC(hWnd);//ディスプレイデバイスコンテキスト
164
280
 
165
281
  int _format;
166
282
 
167
-
168
-
169
- wc.style = CS_HREDRAW | CS_VREDRAW;//ウインドウのスタイル(ウインドウサイズを変更すると自動調整)
170
-
171
- wc.lpfnWndProc = WndProc;//ウインドウプロシージャを設定
172
-
173
- wc.cbClsExtra = 0;//構造体の後ろに補足バイト数
174
-
175
- wc.cbWndExtra = 0;//ウインドウインスタンスの後ろに補足バイト数
176
-
177
- wc.hInstance = hInstance;//ウインドウプロシージャがあるインスタンスハンドル
178
-
179
- wc.hIcon = NULL;//アイコンのハンドル
180
-
181
- wc.hCursor = LoadCursor(NULL,IDC_ARROW);//マウスカーソルのハンドル
182
-
183
- wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//ウインドウ背景色
184
-
185
- wc.lpszMenuName = NULL;//デフォルトのメニュー名
186
-
187
- wc.lpszClassName = TEXT("WinAPITest");//ウインドウクラスに付ける名前
188
-
189
-
190
-
191
- if( !RegisterClass(&wc))
192
-
193
- {
194
-
195
- return 1;
196
-
197
- }
198
-
199
-
200
-
201
- hWnd = nullptr;
202
-
203
-
204
-
205
-
206
-
207
- hWnd = CreateWindowW(TEXT("WinAPITest"),TEXT("title") ,WS_OVERLAPPEDWINDOW | WS_VISIBLE,
208
-
209
- 500,500,500,500,
210
-
211
- NULL,NULL,hInstance,NULL);
212
-
213
-
214
-
215
-
216
-
217
- if(hWnd == NULL)
218
-
219
- {
220
-
221
- printf("NULL");
222
-
223
- }
224
-
225
-
226
-
227
-
228
-
229
- //ピクセルフォーマットを指定
230
-
231
- PIXELFORMATDESCRIPTOR pfd =
232
-
233
- {
234
-
235
- sizeof(PIXELFORMATDESCRIPTOR),
236
-
237
- 1,
238
-
239
- PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER,
240
-
241
- PFD_TYPE_RGBA,
242
-
243
- 32,
244
-
245
- 0,0,0,0,0,
246
-
247
- 0,
248
-
249
- 0,
250
-
251
- 0,
252
-
253
- 0,0,0,0,
254
-
255
- 24,
256
-
257
- 8,
258
-
259
- 0,
260
-
261
- PFD_MAIN_PLANE,
262
-
263
- 0,
264
-
265
- 0,0,0
266
-
267
- };
268
-
269
-
270
-
271
- dc = GetDC(hWnd);
272
-
273
- _format = ChoosePixelFormat(dc,&pfd);
283
+ _format = ChoosePixelFormat(dc,&pfd);//ピクセルフォーマットを指定
274
284
 
275
285
  if(_format == 0)
276
286
 
@@ -308,19 +318,7 @@
308
318
 
309
319
 
310
320
 
311
- glewExperimental = TRUE;
312
-
313
- GLenum err = glewInit();
314
-
315
- if(err != GLEW_OK)
316
-
317
- {
318
-
319
- printf("glew 初期化エラー\n");
321
+ //指定されたOpenGLのレンダリングコンテキスト呼び出す
320
-
321
- }
322
-
323
-
324
322
 
325
323
  wglMakeCurrent(dc, glRC);
326
324
 
@@ -350,6 +348,14 @@
350
348
 
351
349
 
352
350
 
351
+
352
+
353
+
354
+
355
+
356
+
357
+ //終了処理
358
+
353
359
  MSG msg;
354
360
 
355
361
  if( PeekMessageW(&msg,hWnd,0,0,PM_REMOVE) )
@@ -370,9 +376,7 @@
370
376
 
371
377
  DispatchMessage(&msg);
372
378
 
373
- //break;
379
+
374
-
375
- //printf("%s\n",msg.message);
376
380
 
377
381
  }
378
382