窗口标识符
This commit is contained in:
parent
d07cc4295e
commit
6bd8e59e1d
@ -17,8 +17,11 @@ include(${wxWidgets_USE_FILE})
|
|||||||
|
|
||||||
add_executable(wxWidgetStudy main.cpp)
|
add_executable(wxWidgetStudy main.cpp)
|
||||||
add_executable(wxEvent event_binary.cpp src/event_demo.cpp)
|
add_executable(wxEvent event_binary.cpp src/event_demo.cpp)
|
||||||
|
add_executable(wxWindowSign window_sign_bin.cpp src/window_sign.cpp)
|
||||||
target_link_libraries(wxWidgetStudy PRIVATE ${wxWidgets_LIBRARIES})
|
target_link_libraries(wxWidgetStudy PRIVATE ${wxWidgets_LIBRARIES})
|
||||||
target_link_libraries(wxEvent PRIVATE ${wxWidgets_LIBRARIES})
|
target_link_libraries(wxEvent PRIVATE ${wxWidgets_LIBRARIES})
|
||||||
|
target_link_libraries(wxWindowSign PRIVATE ${wxWidgets_LIBRARIES})
|
||||||
|
|
||||||
set_target_properties(wxWidgetStudy PROPERTIES WIN32_EXECUTABLE TRUE)
|
set_target_properties(wxWidgetStudy PROPERTIES WIN32_EXECUTABLE TRUE)
|
||||||
set_target_properties(wxEvent PROPERTIES WIN32_EXECUTABLE TRUE)
|
set_target_properties(wxEvent PROPERTIES WIN32_EXECUTABLE TRUE)
|
||||||
|
set_target_properties(wxWindowSign PROPERTIES WIN32_EXECUTABLE TRUE)
|
@ -116,9 +116,9 @@ public:
|
|||||||
void OnSize(wxSizeEvent& event);
|
void OnSize(wxSizeEvent& event);
|
||||||
void OnButtonOK(wxCommandEvent& event);
|
void OnButtonOK(wxCommandEvent& event);
|
||||||
|
|
||||||
|
#ifndef USE_DYNAMIC_CONNECT
|
||||||
private:
|
private:
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
46
src/window_sign.cpp
Normal file
46
src/window_sign.cpp
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#include "window_sign.h"
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
||||||
|
EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
|
||||||
|
EVT_MENU(wxID_EXIT, MyFrame::OnQuit)
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
bool MyApp::OnInit()
|
||||||
|
{
|
||||||
|
MyFrame* frame = new MyFrame(wxT("Minimal wxWidgets App"));
|
||||||
|
frame->Show(true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
MyFrame::MyFrame(const wxString& title) : wxFrame(NULL, wxID_ANY, title)
|
||||||
|
{
|
||||||
|
// 设置窗口图标
|
||||||
|
// SetIcon(wxIcon(mondrian_xpm));
|
||||||
|
// 创建菜单条
|
||||||
|
wxMenu* fileMenu = new wxMenu;
|
||||||
|
// 添加“关于”菜单项
|
||||||
|
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"));
|
||||||
|
// 将菜单项添加到菜单条中
|
||||||
|
wxMenuBar* menuBar = new wxMenuBar();
|
||||||
|
menuBar->Append(fileMenu, wxT("&File"));
|
||||||
|
menuBar->Append(helpMenu, wxT("&Help"));
|
||||||
|
// ...然后将菜单条放置在主窗口上
|
||||||
|
SetMenuBar(menuBar);
|
||||||
|
CreateStatusBar(2);
|
||||||
|
SetStatusText(wxT("Welcome to wxWidgets!"));
|
||||||
|
}
|
123
src/window_sign.h
Normal file
123
src/window_sign.h
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
#ifndef WINDOW_SIGN
|
||||||
|
#define WINDOW_SIGN
|
||||||
|
|
||||||
|
#include "wx/wx.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
窗口标识符是在事件系统中用来唯一确定窗口的整数。事实上,在整个应用程序的范围内,窗口标识符不必一定
|
||||||
|
是唯一的,而只要在某个固定的上下文(比如说,在一个frame窗口和它的所有子窗口)内是唯一的就可以了。举例
|
||||||
|
来说:你可以在无数个对话框中使用wxID_OK这个标识符,只要在某个对话框内不要重复使用就可以了。
|
||||||
|
如果在窗口的构造函数中使用wxID_ANY作为其标识符,则意味着你希望wxWidgets自动为你生成一个标识符。
|
||||||
|
这或者是因为你不关心这个标识符的值,或者是因为这个窗口不需要处理任何事件,或者是因为你将在同一个地
|
||||||
|
方处理所有的事件。如果是最后一种情况,在使用 wxEvtHandler::Connect函数或者在静态事件表中,你应该使
|
||||||
|
用wxID_ANY作为窗口的标识符。wxWidgets自动创建的标识符是总是一个负数,所以永远不会和用户定义的窗
|
||||||
|
口标识符重复,用户定义的窗口标识符只能是正整数。
|
||||||
|
下表列举了wxWidgets提供的一些标准的标识符。你应该尽可能的使用这些标识符,这是由于下面一些原因。某
|
||||||
|
些系统会给特定的标识符提供一些小图片(例如GTK+系统上的OK和取消按钮)或者提供默认的处理函数(例如自动
|
||||||
|
产生wxID_CANCEL事件来响应Escape键)。在 Mac OS X系统上,wxID_ABOUT, wxID_PREFERENCES和
|
||||||
|
wxID_EXIT菜单项也有特别的处理。另外一些wxWidgets的控件也会自动处理标识符为 wxID_COPY,
|
||||||
|
wxID_PASTE或 wxID_UNDO等的一些菜单或者按钮的命令。
|
||||||
|
|
||||||
|
标识符名称 描述
|
||||||
|
wxID_ANY 让wxWidgets自动产生一个标识符
|
||||||
|
wxID_LOWEST 最小的系统标识符值 (4999)
|
||||||
|
wxID_HIGHEST 最大的系统标识符值 (5999)
|
||||||
|
wxID_OPEN 打开文件
|
||||||
|
wxID_CLOSE 关闭窗口
|
||||||
|
wxID_NEW 新建窗口文件或者文档
|
||||||
|
wxID_SAVE 保存文件
|
||||||
|
wxID_SAVEAS 文件另存为(应该弹出文件位置对话框)
|
||||||
|
wxID_REVERT 恢复文件在磁盘上的状态
|
||||||
|
wxID_EXIT 退出应用程序
|
||||||
|
wxID_UNDO 撤消最近一次操作
|
||||||
|
wxID_REDO 重复最近一次操作
|
||||||
|
wxID_HELP 帮助 (例如对话框上的帮助按钮可以用
|
||||||
|
这个标识符)
|
||||||
|
wxID_PRINT 打印
|
||||||
|
wxID_PRINT_SETUP 打印设置
|
||||||
|
wxID_PREVIEW 打印预览
|
||||||
|
wxID_ABOUT 显示一个用来描述整个程序的对话框
|
||||||
|
wxID_HELP_CONTENTS 显示上下文帮助
|
||||||
|
wxID_HELP_COMMANDS 显示应用程序命令
|
||||||
|
wxID_HELP_PROCEDURES 显示应用程序过程
|
||||||
|
wxID_HELP_CONTEXT 未使用
|
||||||
|
wxID_CUT 剪切
|
||||||
|
wxID_COPY 复制到剪贴板
|
||||||
|
wxID_PASTE 粘贴
|
||||||
|
wxID_CLEAR 清除
|
||||||
|
wxID_FIND 查找
|
||||||
|
wxID_DUPLICATE 复制
|
||||||
|
wxID_SELECTALL 全选
|
||||||
|
wxID_DELETE 删除
|
||||||
|
wxID_REPLACE 覆盖
|
||||||
|
wxID_REPLACE_ALL 全部覆盖
|
||||||
|
wxID_PROPERTIES 查看属性
|
||||||
|
wxID_VIEW_DETAILS 列表框中的按照详细信息方式显示
|
||||||
|
wxID_VIEW_LARGEICONS 列表框按照大图标的方式显示
|
||||||
|
wxID_VIEW_SMALLICONS 列表框中按照小图标的方式显示
|
||||||
|
wxID_VIEW_LIST 列表框中按照列表的的方式显示
|
||||||
|
wxID_VIEW_SORTDATE 按照日期排序
|
||||||
|
wxID_VIEW_SORTNAME 按照名称排序
|
||||||
|
wxID_VIEW_SORTSIZE 按照大小排序
|
||||||
|
wxID_VIEW_SORTTYPE 按照类型排序
|
||||||
|
wxID_FILE1 to wxID_FILE9 显示最近使用的文件
|
||||||
|
wxID_OK 确定
|
||||||
|
wxID_CANCEL 取消
|
||||||
|
wxID_APPLY 应用变更
|
||||||
|
wxID_YES YES
|
||||||
|
wxID_NO No
|
||||||
|
wxID_STATIC 静态文本或者静态图片可以用这个标识符
|
||||||
|
wxID_FORWARD 向前
|
||||||
|
wxID_BACKWARD 向后
|
||||||
|
wxID_DEFAULT 恢复默认设置
|
||||||
|
wxID_MORE 显示更多选项
|
||||||
|
wxID_SETUP 显示一个设置对话框
|
||||||
|
wxID_RESET 重置所有选项
|
||||||
|
wxID_CONTEXT_HELP 显示上下文帮助
|
||||||
|
wxID_YESTOALL 全部选是
|
||||||
|
wxID_NOTOALL 全部选否
|
||||||
|
wxID_ABORT 中止当前操作
|
||||||
|
wxID_RETRY 重试
|
||||||
|
wxID_IGNORE 忽略错误
|
||||||
|
wxID_UP 向上
|
||||||
|
wxID_DOWN 向下
|
||||||
|
wxID_HOME 首页
|
||||||
|
wxID_REFRESH 刷新
|
||||||
|
wxID_STOP 停止正在进行的操作
|
||||||
|
wxID_INDEX 显示一个索引
|
||||||
|
wxID_BOLD 加粗显示
|
||||||
|
wxID_ITALIC 斜体显示
|
||||||
|
wxID_JUSTIFY_CENTER 居中
|
||||||
|
wxID_JUSTIFY_FILL 格式
|
||||||
|
wxID_JUSTIFY_RIGHT 右对齐
|
||||||
|
wxID_JUSTIFY_LEFT 左对齐
|
||||||
|
wxID_UNDERLINE 下划线
|
||||||
|
wxID_INDENT 缩进
|
||||||
|
wxID_UNINDENT 反缩进
|
||||||
|
wxID_ZOOM_100 放大到100%
|
||||||
|
wxID_ZOOM_FIT 缩放到整页
|
||||||
|
wxID_ZOOM_IN 放大
|
||||||
|
wxID_ZOOM_OUT 缩小
|
||||||
|
wxID_UNDELETE 反删除
|
||||||
|
wxID_REVERT_TO_SAVED 恢复到上次保存的状态
|
||||||
|
|
||||||
|
为了避免你自己定义的标识符和这些预定义的标识符重复,你可以使用大于wxID_HIGHEST的标识符或者小于wxID_LOWEST的标识符。
|
||||||
|
*/
|
||||||
|
|
||||||
|
class MyApp : public wxApp {
|
||||||
|
public:
|
||||||
|
virtual bool OnInit();
|
||||||
|
};
|
||||||
|
|
||||||
|
class MyFrame : public wxFrame {
|
||||||
|
public:
|
||||||
|
MyFrame(const wxString& title);
|
||||||
|
void OnQuit(wxCommandEvent& event);
|
||||||
|
void OnAbout(wxCommandEvent& event);
|
||||||
|
|
||||||
|
private:
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
4
window_sign_bin.cpp
Normal file
4
window_sign_bin.cpp
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#include "src/window_sign.h"
|
||||||
|
|
||||||
|
IMPLEMENT_APP(MyApp)
|
||||||
|
DECLARE_APP(MyApp)
|
Loading…
x
Reference in New Issue
Block a user