?? keyboarddemo.cpp
字號:
//=========================================================================
/**
* @file KeyboardDemo.cpp
*
* 項目描述: DirectInput鍵盤演示
* 文件描述: 具體實例類
* 適用平臺: Windows98/2000/NT/XP
*
* 作者: WWBOSS
* 電子郵件: wwboss123@gmail.com
* 創建日期: 2006-09-13
* 修改日期: 2006-10-10
*
* 在這個類中您必須重載如下幾個虛函數
*
* virtual bool Init();
* 執行所有的初始化工作,如果成功函數返回true
*
* virtual void Uninit();
* 執行所有的卸載工作
*
* virtual void Update(DWORD milliseconds);
* 執行所有的更新操作,傳入的參數為兩次操作經過的時間,以毫秒為單位
*
* virtual void Draw();
* 執行所有的繪制操作
*/
//=========================================================================
#include "KeyboardDemo.h" /**< 包含頭文件 */
/** 創建一個程序的實例 */
GLApplication * GLApplication::Create(const char * class_name)
{
CKeyboardDemo * demo = new CKeyboardDemo(class_name);
return reinterpret_cast<GLApplication *>(demo);
}
/** 構造函數 */
CKeyboardDemo::CKeyboardDemo(const char * class_name) : GLApplication(class_name)
{
}
/** 初始化OpenGL */
bool CKeyboardDemo::Init()
{
/** 用戶自定義的初始化過程 */
glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
glClearDepth(1.0f);
glDepthFunc(GL_LEQUAL);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
ResizeDraw(true);
/** 創建輸入系統 */
m_pInput = new CInputSystem();
/** 輸入系統初始化 */
m_pInput->Init(this->m_Window.GetHwnd(),(HINSTANCE)GetModuleHandle(NULL),
true,IS_USEKEYBOARD);
/** 初始化字體 */
if(!m_hFont.InitFont())
MessageBox(NULL,"初始化字體失??!","錯誤",MB_OK);
return true; /**< 成功返回 */
}
/** 用戶自定義的卸載函數 */
void CKeyboardDemo::Uninit()
{
/** 用戶自定義的卸載過程 */
if(m_pInput)
{
delete m_pInput;
m_pInput = NULL;
}
}
/** 程序更新函數 */
void CKeyboardDemo::Update(DWORD milliseconds)
{
/** 輸入系統更新 */
m_pInput->Update();
/** 按ESC鍵時退出 */
if(m_pInput->GetKeyboard()->KeyDown(DIK_ESCAPE))
{
TerminateApplication();
}
}
/** 繪制函數 */
void CKeyboardDemo::Draw()
{
/** 用戶自定義的繪制過程 */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.0f,0.0f,-10.0f);
/** 檢測鍵盤輸入數據 */
char string[50] = {"您沒有按下任何鍵"};
/** 檢測A鍵按下? */
if(m_pInput->GetKeyboard()->KeyDown(DIK_A))
sprintf(string,"您按下了 %s 鍵","A");
/** 檢測F1鍵按下? */
if(m_pInput->GetKeyboard()->KeyDown(DIK_F1))
sprintf(string,"您按下了 %s 鍵","F1");
/** 檢測Ctrl和A鍵同時按下?*/
if(m_pInput->GetKeyboard()->KeyDown(DIK_A) &&
m_pInput->GetKeyboard()->KeyDown(DIK_LCONTROL))
sprintf(string,"您按下了 %s 鍵","CTRL + A");
/** 輸出提示信息 */
glColor3f(1.0f,0.0f,1.0f);
m_hFont.PrintText(string,-2.0,0.0);
glFlush();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -