質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

解決済

win32のウィンドウが上のバーしか出ない

Negligible-n
Negligible-n

総合スコア0

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

1回答

0評価

0クリップ

663閲覧

投稿2019/06/14 13:51

編集2022/01/12 10:58

ひとつ前の質問のを進めていたところ https://youtu.be/Il6jySpR3VI の31:09であったり、46:27(ここまでは打ちました。)であったり、ウィンドウが、![イメージ説明](91d7896596e5f6be4f16113111ea60b5.jpeg)これしか出ません。どうしてなのでしょうか。。。
コードも載せておきます。長いですすみません。

WinMain.cpp

c++

#include<windows.h> #include"D3DApp.h" class testApp :public d3DApp { public: //Constructor testApp(HINSTANCE hInstance); //Destructor ~testApp(); //Methods bool init() override; void update(float dt) override; void render() override; }; testApp::testApp(HINSTANCE hInstance) :d3DApp(hInstance) { } testApp::~testApp() { } bool testApp::init() { if (!d3DApp::init()) { return false; } return true; } void testApp::update(float dt) { } void testApp::render() { m_pDevice3D->Clear(0, 0, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 255, 0), 1.0f, 0); m_pDevice3D->Present(0, 0, 0, 0); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { testApp* tApp = new testApp(hInstance); if (!tApp->init()) { return 1; } return tApp->run(); }

D3DApp.h

c++

#include<windows.h> #include<d3d9.h> #include<d3dx9.h> class d3DApp { public: //Constructor d3DApp(HINSTANCE hInstance); //destructor virtual ~d3DApp(); //Main application loop int run(); //Framework methods virtual bool init(); virtual void update(float dt) = 0; virtual void render() = 0; LRESULT msgProc(HWND hwnd, UINT msg, WPARAM aParam, LPARAM lParam); protected: //Attributes HWND m_hAppWindow; HINSTANCE m_hAppInstance; unsigned int m_uiClientWidth; unsigned int m_uiClientHeight; LPCWSTR m_sAppTitle; DWORD m_WindowStyle; //DirectX Attributes IDirect3D9* m_pDirect3D; IDirect3DDevice9* m_pDevice3D; D3DPRESENT_PARAMETERS m_d3dpp; //methods //Initialize the app window bool initWindow(); //Initialize Direct3D bool initDirect3D(); };

D3DApp.cpp

c++

#include"D3DApp.h" namespace { //Create a global pointer to d3DApp d3DApp* g_pd3DApp; } LRESULT CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { //Foward the messages return g_pd3DApp->msgProc(hwnd, msg, wParam, lParam); } d3DApp::d3DApp(HINSTANCE hInstance) { m_hAppInstance = hInstance; m_hAppWindow = NULL; m_uiClientWidth = 800; m_uiClientHeight = 600; m_sAppTitle = (LPCWSTR)TEXT("DIRECTX9 App"); m_WindowStyle = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX; g_pd3DApp = this; } d3DApp::~d3DApp() { //Release object from memory } int d3DApp::run() { //Main message loop MSG msg = { 0 }; while (WM_QUIT != msg.message) { if (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } else { //Update update(0.0f); //Render render(); } } return static_cast<int>(msg.wParam); } bool d3DApp::init() { //Check window creation if (!initWindow()) { return false; } //Check Direct3D initilization if (!initDirect3D()) { return false; } return true; } bool d3DApp::initWindow() { //Create WNDCLASS WNDCLASSEX wcex; static LPCWSTR classNameLPCWSTR = (LPCWSTR)TEXT("D3DAPPWNDCLASS"); ZeroMemory(&wcex, sizeof(WNDCLASSEX)); wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.hInstance = m_hAppInstance; wcex.lpfnWndProc = MainWndProc; wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH); wcex.lpszMenuName = NULL; wcex.lpszClassName = classNameLPCWSTR; wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION); //Register that class if (!RegisterClassEx(&wcex)) { MessageBox(NULL, (LPCWSTR)TEXT("Failed to register window class"), NULL, NULL); return false; } //Cache requested width, height RECT r = { 0,0,m_uiClientWidth,m_uiClientHeight }; AdjustWindowRect(&r, m_WindowStyle, false); int width = r.right - r.left; int height = r.top - r.bottom; //Create the window m_hAppWindow = CreateWindow( (LPCWSTR)TEXT("D3DAPPWNDCLASS"), m_sAppTitle, m_WindowStyle, GetSystemMetrics(SM_CXSCREEN) / 2 - width / 2, GetSystemMetrics(SM_CYSCREEN) / 2 - height / 2, width, height, NULL, NULL, m_hAppInstance, NULL); //Check if window was created if (!m_hAppWindow) { MessageBox(NULL, (LPCWSTR)TEXT("Failed to create window"), NULL, NULL); return false; } //Show the window ShowWindow(m_hAppWindow, SW_SHOW); return true; } bool d3DApp::initDirect3D() { //Get interface to Direct3D m_pDirect3D = Direct3DCreate9(D3D_SDK_VERSION); if (!m_pDirect3D) { MessageBox(NULL, (LPCWSTR)TEXT("Failed to create direct3D com object"), NULL, NULL); return false; } //Check divice capabilities D3DCAPS9 m_d3dDevCaps; m_pDirect3D->GetDeviceCaps(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, &m_d3dDevCaps); int vp; if (m_d3dDevCaps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) { vp = D3DCREATE_HARDWARE_VERTEXPROCESSING; } else { vp = D3DCREATE_SOFTWARE_VERTEXPROCESSING; } //Fill out the present parameters ZeroMemory(&m_d3dpp, sizeof(D3DPRESENT_PARAMETERS)); m_d3dpp.BackBufferWidth = m_uiClientWidth; m_d3dpp.BackBufferHeight = m_uiClientHeight; m_d3dpp.Windowed = true; m_d3dpp.BackBufferCount = 1; m_d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8; m_d3dpp.MultiSampleType = D3DMULTISAMPLE_NONE; m_d3dpp.MultiSampleQuality = 0; m_d3dpp.hDeviceWindow = m_hAppWindow; m_d3dpp.Flags = 0; m_d3dpp.EnableAutoDepthStencil = true; m_d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8; m_d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT; m_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; m_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; //Create the device m_pDirect3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_hAppWindow, vp, &m_d3dpp, &m_pDevice3D); if (!m_pDevice3D) { MessageBox(NULL, (LPCWSTR)TEXT("Failed device creation"), NULL, NULL); return false; } return true; } LRESULT d3DApp::msgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, msg, wParam, lParam); }

まだまだ初心者ですみませんが、よろしくお願いします

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Win32 API

Win32 APIはMicrosoft Windowsの32bitプロセッサのOSで動作するAPIです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。