cppquery 简单的数据绑定对话框

来源:互联网 发布:怎么下载python安装包 编辑:程序博客网 时间:2024/06/11 02:02

上一篇文章: cppquery:用C++模仿jquery的探索

获取cppquery: https://github.com/coderebot/cppquery


在本文中,我们用绑定的方法来实现一个对话框:将高度和宽度值绑定到一个对话框上,并能够修改。如图


当然,从windows编程上来说,这只是一个非常入门的功能。我们从这里出发,来看看我们能够简化到何种程度。

该窗口只有一个简单的函数来实现:(在文件demo_dialog_get_int_values.cpp)

int gWidth = 300;int gHeight = 400;void demo_dialog_get_int_values(HINSTANCE hInst, HWND hParent){    //MessageBox(0, _T("Test Get Int Values"), _T("Get Int Value"), 0);    Dialog dialog(hInst, IDD_DIALOG_GETINTVALUES, hParent);    dialog.intNumber(IDC_EDIT_WIDTH).bind(&gWidth);    dialog.intNumber(IDC_EDIT_HEIGHT).bind(&gHeight);    wchar_t szText[100];    if(dialog.doModel())    {        wsprintf(szText, L"Get New Width=%d, Height=%d", gWidth, gHeight);            }    else    {        wsprintf(szText, L"Error!");    }    MessageBox(0, szText, L"Result", 0);}

首先,我们声明了一个dialog

Dialog dialog(hInst, IDD_DIALOG_GETINTVALUES, hParent);
传递的这些参数,是为了适应模板资源来创建对话框

然后,将变量绑定到对话框的控件上

    dialog.intNumber(IDC_EDIT_WIDTH).bind(&gWidth);    dialog.intNumber(IDC_EDIT_HEIGHT).bind(&gHeight);
最后,以模态方式显示对话框

   if(dialog.doModel())

然后,我们将它和菜单绑定起来 (cppquerytest.cpp)

    window.loadMenu(hInstance, MAKEINTRESOURCE(IDC_CPPQUERY))        .onCommand(IDM_EXIT, BIND(DestroyWindow, window.hwnd()))        .onDestroy(BIND(PostQuitMessage, 0))        .onCommand(IDM_ABOUT, BIND(DoDialogModel,hInstance, window.hwnd(), IDD_ABOUTBOX, about_handles))        //for demos        //for dialog demos        .onCommand(ID_DIALOG_GETINTVALUES, BIND(demo_dialog_get_int_values, hInstance, window.hwnd()))        //end demos        .show(nCmdShow)        .update()        .doModel();          
请关注:

.onCommand(ID_DIALOG_GETINTVALUES, BIND(demo_dialog_get_int_values, hInstance, window.hwnd()))




0 0
原创粉丝点击