MATLAB飞机大战第二版,windows程序设计——飞机大战札记(单文档文件登陆界面)...
windows程序設計——飛機大戰筆記(單文檔文件登陸界面)
//2015/07/21
/by xbw///
/環境 VS 2013
飛機大戰做的差不多了,閑來無事加點高大上的東西,關于單文檔的登陸界面;;;
界面有點丑,但是足夠賬號登陸了,,先試一把;
還不錯吧,該有的都有了;;
下面說一下過程 、、、、、、
首先,我們要在資源視圖中創建一個Dialog對話框;;;
先大體畫一下這個對話框,自己設計就好了,然后在空白處右鍵添加類,給這個對話框添加類;
這里呢,我添加了一個loading類,英語不是太好,胡亂寫點高大上的英文;;;
在哪用對話框我們就需要吧#include "loading.h"加為他的頭文件,,,
這樣呢,我在view類中建了一個函數
BOOL CPlaneGameView::Indlg()
{
loading dlg;
//opening = TRUE;
if (dlg.DoModal() == IDOK)
{
Invalidate();
opening = dlg.open1;
}
return TRUE;
}
調用在
void CPlaneGameView::OnInitialUpdate()
{
CView::OnInitialUpdate();
// TODO: 在此添加專用代碼和/或調用基類
//登陸界面
Indlg();
//初始化游戲
if (!opening)
InitGame();
else
exit(0);
}
這個函數中會依次運行;
這樣的話登陸界面就會先于單文檔窗口顯示,
至于opening是我設置的開關,就是點登陸界面的退出按鈕時就會執行exit(0),整個程序就結束了,之前遇到的問題是,點了退出按鈕后,程序反而運行了飛機大戰主程序,哭笑不得,索性把這個按鈕刪掉了,玩家只能進入游戲才能退出,后來一想這不扯呢嗎,哈哈,于是弄了起來;;
先來段loading.cpp的代碼;
完整的******
// loading.cpp : 實現文件
//
#include "stdafx.h"
#include "PlaneGame.h"
#include "loading.h"
#include "afxdialogex.h"
// loading 對話框
IMPLEMENT_DYNAMIC(loading, CDialogEx)
loading::loading(CWnd* pParent /*=NULL*/)
: CDialogEx(loading::IDD, pParent)
, open(false)
, open1(false)
{
}
loading::~loading()
{
}
void loading::DoDataExchange(CDataExchange* pDX)
{
}
BEGIN_MESSAGE_MAP(loading, CDialogEx)
ON_WM_NCHITTEST()
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDCANCEL, &loading::OnBnClickedCancel)
ON_BN_CLICKED(IDOK, &loading::OnBnClickedOk)
ON_BN_CLICKED(IDOK2, &loading::OnBnClickedOk2)
END_MESSAGE_MAP()
// loading 消息處理程序
//鼠標拖動窗口移動
LRESULT loading::OnNcHitTest(CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
ScreenToClient(&point);
CRect rc;
GetClientRect(&rc);
if (rc.PtInRect(point))
{
return HTCAPTION;
}
else
{
return CDialogEx::OnNcHitTest(point);
}
}
HBRUSH loading::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
//CFont font;
//font.CreatePointFont(200, _T("宋體"), NULL);
//GetDlgItem(IDC_STATIC)->SetFont(&font);
// TODO: 在此更改 DC 的任何特性
//在OnInitDialog()函數中添加:
// TODO: 在此添加額外的初始化代
if (nCtlColor == CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(200, 100, 50));
pDC->SetBkMode(RGB(200, 100, 50)); //設置背景透明
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
// TODO: 如果默認的不是所需畫筆,則返回另一個畫筆
//return hbr;
return 0;
}
void loading::OnBnClickedCancel()
{
// TODO: 在此添加控件通知處理程序代碼
open = FALSE;
CDialogEx::OnCancel();
}
void loading::OnBnClickedOk()
{
// TODO: 在此添加控件通知處理程序代碼
CString name;
CString pwd;
int flog = 1;
GetDlgItem(IDC_EDIT3)->GetWindowTextW(name);
GetDlgItem(IDC_EDIT4)->GetWindowTextW(pwd);
if (name.Compare(_T("xbw12138")) || pwd.Compare(_T("201401061130")))
{
if (name.Compare(_T("xbw12138")))
{
flog = 0;
MessageBox(_T("用戶名不正確"), _T("提示"));
}
if (pwd.Compare(_T("201401061130"))&&flog==1)
MessageBox(_T("密碼不正確"), _T("提示"));
}
else
{
OnOK();
}
}
void loading::OnBnClickedOk2()
{
open1 = FALSE;
// TODO: 在此添加控件通知處理程序代碼
}
LRESULT loading::OnNcHitTest(CPoint point)這個是添加的消息,具體什么消息不再這說明了,請看我的其他文章,鼠標拖動對話框移動的那篇,對,就是這個功能;
HBRUSH loading::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)也是添加的消息,為了使static text等一些空間透明,在有背景圖的時候效果很明顯,不過這里裝逼失敗了,一會文章補上;;;;;
void loading::OnBnClickedCancel()
{
// TODO:? 在此添加控件通知處理程序代碼
open = FALSE;
CDialogEx::OnCancel();
}
這段已經沒用了,取消的空間已經被我刪除了;;;
void loading::OnBnClickedOk()
{
// TODO:? 在此添加控件通知處理程序代碼
CString name;
CString pwd;
int flog = 1;
GetDlgItem(IDC_EDIT3)->GetWindowTextW(name);
GetDlgItem(IDC_EDIT4)->GetWindowTextW(pwd);
if (name.Compare(_T("xbw12138")) || pwd.Compare(_T("201401061130")))
{
if (name.Compare(_T("xbw12138")))
{
flog = 0;
MessageBox(_T("用戶名不正確"), _T("提示"));
}
if (pwd.Compare(_T("201401061130"))&&flog==1)
MessageBox(_T("密碼不正確"), _T("提示"));
}
else
{
OnOK();
}
}
這段是重點了吧算是,檢查登陸是否正確,,,雖然是個單機,不過這樣也很高大上,后續呢,我將要用xml記錄一些數據,試試能不能實現一個賬號記錄一個分數,弄個排行榜什么的,等我昂;
void loading::OnBnClickedOk2()
{
open1 = FALSE;
// TODO:? 在此添加控件通知處理程序代碼
}
這就是退出按鈕的開關,,,,至于一些變量,都添加在相應的頭文件里吧,一定要記得初始化,要不會亂套的,,,
這樣就基本差不多了,不正確的地方互相交流學習,有問題在下邊留言,我會回復跟您一同解決問題的,
這樣就車不多了
,不多說了
版權聲明:本文為博主原創文章,未經博主允許不得轉載。1樓zhoujielunzhimi昨天 17:20居然看到了exit(0);nexit一般用在console程序中,n界面程序使用PostQuitMessage(0).Re: xbw12138昨天 19:04回復zhoujielunzhimin學習了,謝謝您,我會改進的Re: xbw12138昨天 19:05回復zhoujielunzhimin學習了,謝謝您,我會改進的
總結
以上是生活随笔為你收集整理的MATLAB飞机大战第二版,windows程序设计——飞机大战札记(单文档文件登陆界面)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: k4多少钱啊?
- 下一篇: java信息管理系统总结_java实现科