Files
XCEngine/MVS/Music fluctuations/source/window/Window.h

67 lines
1.6 KiB
C
Raw Normal View History

#pragma once
#include "../global/Base.h"
#include"../myinput/Input.h"
#include<Windows.h>
#include <chrono>
#include <thread>
class Window {
public:
Window(Input& p_input);
~Window();
//ע<><EFBFBD><E1B4B0><EFBFBD><EFBFBD><E0A3AC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E5A3AC>ʾ
bool initWindow(HINSTANCE hInstance, const uint32_t& width = 800, const uint32_t& height = 600);
//<2F>й<EFBFBD><D0B9><EFBFBD>wndProc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD><D2BD>д<EFBFBD><D0B4><EFBFBD>
void handleMessage(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
//ÿһ֡/ÿһ<C3BF><D2BB>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
void peekMessage();
void swapBuffer();
uint32_t getWidth() const { return mWidth; }
uint32_t getHeight() const { return mHeight; }
void* getCanvas() const { return mCanvasBuffer; }
bool shouldClose() { return !mAlive; }
void Test(int p_time){
swapBuffer();
std::this_thread::sleep_for(std::chrono::microseconds(p_time));
}
void Update() {
POINT cursorPos;
if (GetCursorPos(&cursorPos)) {
m_input.HandelMouseInput(cursorPos.x, cursorPos.y);
}
}
private:
BOOL createWindow(HINSTANCE hInstance);
ATOM registerWindowClass(HINSTANCE hInstance);
public:
static Window* currentWindow; //<2F><>ǰ<EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>ʵ<EFBFBD><CAB5>
private:
//Ϊtrue<75><65>ʾ<EFBFBD><CABE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD>ڼ<EFBFBD><DABC><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD>
//Ϊfalse<73><65>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>رգ<D8B1><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>˳<EFBFBD>
bool mAlive{ true };
HINSTANCE mWindowInst;
WCHAR mWindowClassName[100] = L"AppWindow";
HWND mHwnd;
int mWidth = 800;
int mHeight = 600;
HDC mhDC; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dc
HDC mCanvasDC; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mhDC<44><43><EFBFBD><EFBFBD><EFBFBD>ݵĻ<DDB5>ͼ<EFBFBD>õ<EFBFBD>dc
HBITMAP mhBmp; //mCanvasDC<44>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD>ɵ<EFBFBD>bitmap
void* mCanvasBuffer{ nullptr }; //mhBmp<6D><70>Ӧ<EFBFBD><D3A6><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>ʼλ<CABC><CEBB>ָ<EFBFBD><D6B8>
Input& m_input;
};