当前位置:  编程技术>移动开发
本页文章导读:
    ▪wxWidgets事件处理(手机播放器连载系列二)        wxWidgets事件处理(手机播放器连载系列2)1、       绝大多数GUI程序都是事件驱动的,应用程序一直停留在一个消息循环中,等待这用户或者别的定时事件的发生,一旦收到某种事件,应用程.........
    ▪ Xcode初始化设立        Xcode初始化设置     #!/bin/bash # this script can help to initialize xcode environment, including # set organization name, set author name. ORGANIZATION_NAME=""; FULL_USERNAME=""; defaults write com.apple.Xcode PBXCustomTemplateMacroDefini.........
    ▪ 获取银屏上当前相应者       获取屏幕上当前相应者 ......

[1]wxWidgets事件处理(手机播放器连载系列二)
    来源: 互联网  发布时间: 2014-02-18
wxWidgets事件处理(手机播放器连载系列2)

1、

      绝大多数GUI程序都是事件驱动的,应用程序一直停留在一个消息循环中,等待这用户或者别的定时事件的发生,一旦收到某种事件,应用程序就将其扔给处理这个事件的函数。

      不同的GUI编程架构用不同的方法将他内部的事件处理机制展现给程序开发者。对于wxWidgets来说,事件表机制是最主要的方法。

2、

      每个wxEvtHandler的派生类,例如frame、按钮、菜单以及文档等,都会在其内部维护一个事件表,用来告诉wxWidgets事件和事件处理过程的对应关系。所以继承自wxWindow的窗口类,以及应用程序类都是wxEvtHandler的派生类。

下面来创建一个静态的事件表:

a、定义一个直接或者间接继承自wxEvtHandler的类

b、为每一个你想要处理的事件定义一个处理函数

c、在这个类中使用DECLARE_EVENT_TABLE来声明事件表

d、在.cpp文件中事件BEGIN_EVENT_TABLE和END_EVENT_TABLE实现一个事件表

e、在事件表的实现中增加事件宏,来实现从事件到事件处理过程的映射

wxEvent::Skip可以提示事件处理过程对于其中的事件应该继续寻找其父亲的事件表====一般来说在wxWidgets中,你应该通过调用事件Skip方法,而不是通过显示直接调用其父亲对应函数的方法来实现对特殊事件的过滤

继续来看一个例子:

client.h:

#include <wx/wx.h> 

class MyFrame : public wxFrame 
{ 
public: 
	MyFrame(const wxString& title);
	void OnQuit(wxCommandEvent& event);
	void OnAbout(wxCommandEvent& event);
	void OnSize(wxSizeEvent& event);
	void OnButtonOK(wxCommandEvent& event);

private:
	DECLARE_EVENT_TABLE();	// 告诉wxWidgets这个类想要自己处理某些事件,这是与EVENT_TABLE对应的
}; 

// 重载wxApp类的class要实现OnInit来定义自己的初始化函数,同样的还有OnExit等函数(app.h中)
class MyApp: public wxApp 
{
	wxFrame* frame_; 
public: 

	bool OnInit(); 
}; 


 

client.cpp

#include "stdafx.h"
#include <wx/wx.h> 
#include "client.h"

#include "mondrian.xpm"

MyFrame::MyFrame(const wxString& title)
	: wxFrame(NULL, wxID_ANY, wxT("Hello wxWidgets"), wxPoint(50,50), wxSize(800,600))  
{
	// set icon for application
	SetIcon(wxIcon(mondrian_xpm));

	wxButton *button = new wxButton(this, wxID_OK, wxT("OK"), wxPoint(200, 200), wxSize(50, 50));
	wxButton *button2 = new wxButton(this, wxID_NO, wxT("NO"), wxPoint(300, 300), wxSize(50, 50));
	// Create a menu bar
	wxMenu *fileMenu = new wxMenu;

	// The "About" item should be in the help menu
	wxMenu *helpMenu = new wxMenu;
	helpMenu->Append(wxID_ABOUT, wxT("&About...\tF1"),
		wxT("Show about dialog"));

	fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt-X"),
		wxT("Quit this program"));

	// Now append the freshly created menu to the menu bar...
	wxMenuBar *menuBar = new wxMenuBar();
	menuBar->Append(fileMenu, wxT("&File"));
	menuBar->Append(helpMenu, wxT("&Help"));

	// ... and attach this menu bar to the frame
	SetMenuBar(menuBar);

	// Create a status bar just for fun
	CreateStatusBar(2);
	SetStatusText(wxT("Welcome to wxWidgets!"));
}  

// Event table for MyFrame(事件表)
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
	EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
	EVT_MENU(wxID_EXIT,  MyFrame::OnQuit)
	EVT_SIZE(            MyFrame::OnSize)
	EVT_BUTTON(wxID_OK,	 MyFrame::OnButtonOK)
END_EVENT_TABLE()

void MyFrame::OnAbout(wxCommandEvent& event)
{
	wxString msg;
	msg.Printf(wxT("Hello and welcome to %s"), wxVERSION_STRING);
	wxMessageBox(msg, wxT("About Minimal"), wxOK | 
		wxICON_INFORMATION, this);
}

void MyFrame::OnQuit(wxCommandEvent& event)
{
	Close();
}


void MyFrame::OnSize(wxSizeEvent& event)
{
// 	wxString msg;
// 	msg.Printf(wxT("Hello and welcome to %s"), wxVERSION_STRING);
// 	wxMessageBox(msg, wxT("About Minimal"), wxOK | 
// 		wxICON_INFORMATION, this);
}


void MyFrame::OnButtonOK(wxCommandEvent& event)
{
	wxString msg;
	msg.Printf(wxT("Hello and welcome to %s"), wxVERSION_STRING);
	wxMessageBox(msg, wxT("About Minimal"), wxOK | 
		wxICON_INFORMATION, this);
}


//////=======================MyApp============================
bool MyApp::OnInit()  
{
	frame_ = new MyFrame(wxT("Minimal wxWidgets App"));

	frame_->Show();          
	return true; 
}


 

useWxWidgets.cpp

// useWxWidgets.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <wx/wx.h>
#include "wx/window.h"
#include "client.h"
#include "windows.h"
#include "wx/frame.h"

int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
					   _In_opt_ HINSTANCE hPrevInstance,
					   _In_ LPTSTR    lpCmdLine,
					   _In_ int       nCmdShow)
{
	// 调用wxApp类来初始化wxWidgets
	MyApp* app=new MyApp();

	wxApp::SetInstance(app);

	return wxEntry(hInstance,hPrevInstance);
}


 


    
[2] Xcode初始化设立
    来源: 互联网  发布时间: 2014-02-18
Xcode初始化设置

 

 

#!/bin/bash

# this script can help to initialize xcode environment, including 
# set organization name, set author name.

ORGANIZATION_NAME="";
FULL_USERNAME="";

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"ORGANIZATIONNAME"="$ORGANIZATION_NAME";}'
defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{"FULLUSERNAME"="$FULL_USERNAME";}'
 

 

 

 


    
[3] 获取银屏上当前相应者
    来源: 互联网  发布时间: 2014-02-18
获取屏幕上当前相应者

    UIWindow *keyWindow = [[UIApplicationsharedApplication] keyWindow];

    UITextField *firstResponder = [keyWindow performSelector:@selector(firstResponder)];

短小精湛但是常用


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android双击返回键退出程序的实现方法 iis7站长之家
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3