⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testview1.cpp

📁 一个小巧的嵌入式图形系统wGUI, 可以用VC编译
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// TestView1.cpp//// test view for the wGui library////// Copyright (c) 2002 Rob Wiskow// rob-dev@boxedchaos.com//// This library is free software; you can redistribute it and/or// modify it under the terms of the GNU Lesser General Public// License as published by the Free Software Foundation; either// version 2.1 of the License, or (at your option) any later version.//// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU// Lesser General Public License for more details.//// You should have received a copy of the GNU Lesser General Public// License along with this library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//#include "TestView1.h"const long int CLEAR_EDIT_BOX_1 = 10;const long int FILL_EDIT_BOX_1 = 11;const long int CLEAR_EDIT_BOX_2 = 12;const long int FILL_EDIT_BOX_2 = 13;const long int EXIT_APP = 14;const long int NEXT_BUTTON_PICTURE = 15;CTestWindow::CTestWindow(const wGui::CRect& WindowRect, wGui::CWindow* pParent) :	CWindow(WindowRect, pParent){	m_ClientRect.Grow(-1);}void CTestWindow::Draw(void) const{	CWindow::Draw();	wGui::CPainter Painter(m_pSDLSurface);	Painter.DrawRect(m_WindowRect, false, wGui::COLOR_WHITE);	Painter.DrawRect(GetClientRect(), false, wGui::COLOR_RED);}CTestView::CTestView(void) :	wGui::CView(wGui::CRect(0, 0, 700, 500), "Test App 1", true),	m_iClickCount(0),	m_eCurrentPicture(wGui::WGRES_UP_ARROW_BITMAP){	SetWindowText(std::string("Test App 1 - wGui version ") + wGui::CwgStringResourceHandle(wGui::WGRES_VERSION_STRING).String());	wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_VALUECHANGE);	wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_LCLICK);	wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_RCLICK);	wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_RESIZE);	wGui::CMessageServer::Instance().RegisterMessageClient(this, wGui::CMessage::CTRL_TIMER);	m_pTimer = new wGui::CTimer(this);	AttachMenu(new wGui::CMenu(wGui::CRect(0, 0, 80, 22), this));	wGui::CPopupMenu* pContextSubmenu =  new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), this);	pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Do Something"));	pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Do Something Else"));	pContextSubmenu->InsertMenuItem(wGui::SMenuItem());  // instert a spacer	pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Exit", EXIT_APP));	GetMenu()->InsertMenuItem(wGui::SMenuItem("File", 0, pContextSubmenu));	pContextSubmenu =  new wGui::CPopupMenu(wGui::CRect(0, 0, 70, 50), this);	GetMenu()->InsertMenuItem(wGui::SMenuItem("Edit", 0, pContextSubmenu));	GetMenu()->InsertMenuItem(wGui::SMenuItem());	pContextSubmenu =  new wGui::CPopupMenu(wGui::CRect(0, 0, 70, 50), this);	GetMenu()->InsertMenuItem(wGui::SMenuItem("Help", 0, pContextSubmenu));	m_pButton = new wGui::CButton(ClientToScreen(wGui::CRect(20, 40, 100, 60)), this, "Test Button");	m_pButton2 = new wGui::CButton(ClientToScreen(wGui::CRect(130, 40, 210, 60)), this, "Disabled");	m_pButton2->SetButtonState(wGui::CButton::DISABLED);	m_pBtnPass = new wGui::CButton(ClientToScreen(wGui::CRect(330, 280, 400, 300)), this, "Show Pass");	m_pButtonCopyText = new wGui::CButton(ClientToScreen(wGui::CRect(30, 180, 160, 200)), this, "Copy Selected Text");	m_pProgressBar = new wGui::CProgress(ClientToScreen(wGui::CRect(20, 70, 210, 90)), this);	m_pProgressBar->SetLimits(0, 50);	m_pBtnQuit = new wGui::CButton(ClientToScreen(wGui::CRect(525, 10, 600, 30)), this, "Quit");	m_pBtnWaitCursor = new wGui::CButton(ClientToScreen(wGui::CRect(500, 50, 600, 70)), this, "Wait Cursor");	m_pBtnPointerCursor = new wGui::CButton(ClientToScreen(wGui::CRect(500, 80, 600, 100)), this, "Pointer Cursor");	m_pBtnDefaultCursor = new wGui::CButton(ClientToScreen(wGui::CRect(500, 110, 600, 130)), this, "Default Cursor");	new wGui::CLabel(ClientToScreen(wGui::CRect(20, 95, 90, 110)), this, "Test Label");	m_pEditBox = new wGui::CEditBox(ClientToScreen(wGui::CRect(20, 120, 200, 140)), this);	m_pEditBox->SetWindowText("Edit This is a really long message to see what happens when there is a long message in an editbox.");	m_pEditBox2 = new wGui::CEditBox(ClientToScreen(wGui::CRect(20, 150, 200, 170)), this);	m_pEditBox2->SetWindowText("Edit2");	m_pEditBox3 = new wGui::CEditBox(ClientToScreen(wGui::CRect(20, 210, 200, 230)), this);	m_pEditBox3->SetWindowText("ReadOnly Edit Box");	m_pEditBox3->SetReadOnly(true);	m_pPassBox = new wGui::CEditBox(ClientToScreen(wGui::CRect(225, 280, 325, 300)), this);	m_pPassBox->SetUsePasswordMask(true);	m_pPassShow = new wGui::CEditBox(ClientToScreen(wGui::CRect(225, 305, 325, 325)), this);	m_pGroupBox = new wGui::CGroupBox(ClientToScreen(wGui::CRect(225, 160, 470, 260)), this, "GroupBox");	m_pBigassEditBox = new wGui::CEditBox(ClientToScreen(wGui::CRect(240, 175, 460, 210)), m_pGroupBox, wGui::CApplication::Instance()->GetFontEngine("Vera.ttf", 25));	m_pBigassEditBox->SetWindowText("Big box to test stuff");	new wGui::CToolTip(m_pBigassEditBox, "This is a Big Ass Editbox");	m_pTimerButton = new wGui::CButton(ClientToScreen(wGui::CRect(20, 250, 120, 270)), this, "Timer Stopped");	m_pTimerLabel = new wGui::CLabel(ClientToScreen(wGui::CRect(140, 250, 210, 270)), this, "Count: 0");	m_pCheckBox = new wGui::CCheckBox(ClientToScreen(wGui::CRect(224, 124, 236, 136)), this);	new wGui::CLabel(ClientToScreen(wGui::CRect(245, 120, 380, 140)), this, "Read-Only EditBox2");	m_pVScrollBar = new wGui::CScrollBar(		wGui::CRect(m_ClientRect.Right() - 12, m_ClientRect.Top(), m_ClientRect.Right(), m_ClientRect.Bottom() - 12),		this, wGui::CScrollBar::VERTICAL);	m_pHScrollBar = new wGui::CScrollBar(		wGui::CRect(m_ClientRect.Left(), m_ClientRect.Bottom() - 12, m_ClientRect.Right() - 12, m_ClientRect.Bottom()),		this, wGui::CScrollBar::HORIZONTAL);	m_pTestWindow = new CTestWindow(ClientToScreen(wGui::CRect(240, 10, 340, 110)), this);	new wGui::CToolTip(m_pTestWindow, "A line drawing test");	m_pPicture = new wGui::CPicture(ClientToScreen(wGui::CRect(370, 10, 470, 110)), this, "testpic.bmp", true);	new wGui::CToolTip(m_pPicture, "A bitmap loading test");	m_pToolBar = new wGui::CToolBar(ClientToScreen(wGui::CRect(0, 0, 170, 24)), this);	wGui::CButton* pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_UP_ARROW_BITMAP));	new wGui::CToolTip(pButton, "Clear Edit Box 1");	m_pToolBar->InsertButton(pButton, CLEAR_EDIT_BOX_1);	pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_DOWN_ARROW_BITMAP));	new wGui::CToolTip(pButton, "Fill Edit Box 1");	m_pToolBar->InsertButton(pButton, FILL_EDIT_BOX_1);	m_pToolBar->InsertButton(0);  // Insert a spacer	pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_LEFT_ARROW_BITMAP));	new wGui::CToolTip(pButton, "Clear Edit Box 2");	m_pToolBar->InsertButton(pButton, CLEAR_EDIT_BOX_2);	pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_RIGHT_ARROW_BITMAP));	new wGui::CToolTip(pButton, "Fill Edit Box 2");	m_pToolBar->InsertButton(pButton, FILL_EDIT_BOX_2);	m_pToolBar->InsertButton(0);  // Insert a spacer	pButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(wGui::WGRES_X_BITMAP));	new wGui::CToolTip(pButton, "Exit App");	m_pToolBar->InsertButton(pButton, EXIT_APP);	m_pToolBar->InsertButton(0);  // Insert a spacer	m_pBtnPictureButton = new wGui::CPictureButton(wGui::CRect(0, 0, 20, 20), this, wGui::CwgBitmapResourceHandle(m_eCurrentPicture));	new wGui::CToolTip(m_pBtnPictureButton, "Click to animate");	m_pToolBar->InsertButton(m_pBtnPictureButton, NEXT_BUTTON_PICTURE);	m_pContextMenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 120, 50), this);	m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Menu Item 1"));	m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Menu Item 2"));	m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Menu Item 3"));	pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 80, 50), m_pContextMenu);	pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Clear", CLEAR_EDIT_BOX_1));	pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Fill", FILL_EDIT_BOX_1));	m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Edit Box 1", 0, pContextSubmenu));	pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 80, 50), m_pContextMenu);	pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Clear", CLEAR_EDIT_BOX_2));	pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Fill", FILL_EDIT_BOX_2));	m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Edit Box 2", 0, pContextSubmenu));	pContextSubmenu = new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), m_pContextMenu);	m_pContextMenu->InsertMenuItem(wGui::SMenuItem("Empty submenu", 0, pContextSubmenu));	wGui::CPopupMenu* pContextSubmenu2 =  new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), pContextSubmenu);	pContextSubmenu->InsertMenuItem(wGui::SMenuItem("Empty submenu", 0, pContextSubmenu2));	wGui::CPopupMenu* pContextSubmenu3 =  new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), pContextSubmenu2);	pContextSubmenu2->InsertMenuItem(wGui::SMenuItem("Empty submenu", 0, pContextSubmenu3));	wGui::CPopupMenu* pContextSubmenu4 =  new wGui::CPopupMenu(wGui::CRect(0, 0, 140, 50), pContextSubmenu3);	pContextSubmenu3->InsertMenuItem(wGui::SMenuItem("Empty submenu", 0, pContextSubmenu4));	m_pDropDown = new wGui::CDropDown(ClientToScreen(wGui::CRect(240, 230, 430, 248)), m_pGroupBox);	m_pDropDown->AddItem(wGui::SListItem("Item1"));	m_pDropDown->AddItem(wGui::SListItem("Item2", 0, wGui::COLOR_BLUE));	m_pDropDown->AddItem(wGui::SListItem("Item3", 0, wGui::COLOR_RED));	m_pDropDown->AddItem(wGui::SListItem("Item4"));	m_pListBox = new wGui::CListBox(ClientToScreen(wGui::CRect(20, 290, 200, 360)), this);	m_pListBox->AddItem(wGui::SListItem("Item1"));	m_pListBox->AddItem(wGui::SListItem("Item2", 0, wGui::COLOR_BLUE));	m_pListBox->AddItem(wGui::SListItem("Item3", 0, wGui::COLOR_RED));	m_pListBox->AddItem(wGui::SListItem("Item4"));	m_pListBox->AddItem(wGui::SListItem("Item5"));	m_pListBox->AddItem(wGui::SListItem("Item6", 0, wGui::COLOR_GRAY));	m_pListBox->AddItem(wGui::SListItem("Lets"));	m_pListBox->AddItem(wGui::SListItem("Add"));	m_pListBox->AddItem(wGui::SListItem("A Few"));	m_pListBox->AddItem(wGui::SListItem("More"));	m_pListBox->AddItem(wGui::SListItem("Items"));	m_pListBox->AddItem(wGui::SListItem("Shall"));	m_pListBox->AddItem(wGui::SListItem("We?"));}void CTestView::Draw(void) const{	CView::Draw();	wGui::CPainter Painter(m_pSDLSurface);	Painter.DrawLine(ClientToScreen(wGui::CPoint(250, 80)), ClientToScreen(wGui::CPoint(320, 80)));	Painter.DrawLine(ClientToScreen(wGui::CPoint(260, 40)), ClientToScreen(wGui::CPoint(320, 60)), wGui::COLOR_GREEN);	Painter.DrawLine(ClientToScreen(wGui::CPoint(320, 40)), ClientToScreen(wGui::CPoint(310, 110)), wGui::COLOR_RED);	Painter.DrawLine(ClientToScreen(wGui::CPoint(260, 40)), ClientToScreen(wGui::CPoint(260, 110)), wGui::COLOR_BLUE);}bool CTestView::OnMouseButtonDown(wGui::CPoint Point, unsigned int Button){	bool bResult = false; 	if (! CView::OnMouseButtonDown(Point, Button) && m_bVisible && (m_WindowRect.HitTest(Point) == wGui::CRect::RELPOS_INSIDE) &&		(Button == wGui::CMouseMessage::RIGHT))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -