wxWidget入门(一)

该系列开发环境均在vs2010上。

在配置好环境以后,新建Win32工程。

之后更改一个设置(如下图):

否则程序会报:

MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 main,该符号在函数 __tmainCRTStartup 中被引用

即找不到main函数的错误,至于原因后文会提到。

wxWidget入门(一)_第1张图片

第一个程序肯定就是显示一个窗口啦!

第一步:引入一个窗口类,通俗易懂开头带有wx,真名是叫wxFrame

我们用自己的类去继承这个类

MyFrame::MyFrame(const wxString & title)
	:wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250,150))

第二步:需要将窗口显示出来

引入一个轮询机制的类,wxApp里面有个虚函数OnInit()

你可以把他简单理解成main函数,如果你细心可以去找找其中的原理所在

嗯。。。寻找的方法就是利用包的头文件入手 可以看到这个文件又包了很多其他统一路径下的头文件

根据文件命名规则发现app.h

wxWidget入门(一)_第2张图片

在app.h 中搜索main

找到如下,你心心念念的main函数了

wxWidget入门(一)_第3张图片

回到代码:同理也是用自己的类去继承实现这个虚函数

new出我们设计的窗口,然后Show出来(就是这么简单)

bool MyApp::OnInit()
{
	MyFrame *frame = new MyFrame(wxT("MyApp"));
	frame->Show(true);
	return true;
}

第三步:

IMPLEMENT_APP(MyApp)//核心的一步

最后呢点击运行,你就可以看到一个窗口啦。

贴出实现的全部代码

#include 

class MyFrame : public wxFrame
{
public:
	MyFrame(const wxString & title);
};
class MyApp : public wxApp
{

public:
	virtual bool OnInit();
};

MyFrame::MyFrame(const wxString & title)
	:wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250,150))
{
	Centre();//将窗口放置在显示屏正中心
}

bool MyApp::OnInit()
{
	MyFrame *frame = new MyFrame(wxT("MyApp"));
	frame->Show(true);
	return true;
}


// 核心代码
IMPLEMENT_APP(MyApp);

 

你可能感兴趣的:(wxWidgets学习笔记)