zoukankan      html  css  js  c++  java
  • [wxWidget系列] Updating wxWidget from 2.6.X to 2.8.X

    Compile Error and Solution:


    1.    wxSizer::IsShown -> wxSizer::IsShown must take one argument.
    2.    Int GetCount() const->unsign Int GetCount() const
    3.    wxCommandEvent's members is protected, please use related interfaces to access them.
    4.    wxHIDE_READONLY is not supported by wxFileDialog.
    5.    The type of (*wxLIGHT_GREY) or (wxWHITE_PEN) is const wxColor or const wxPen.
    6.    Get/SetTitle() is not support by wxWindow, wxTopLevelWindow supports
    7.    wxBitmap/wxImage :OK()->IsOk(). Refer to 12.
    8.    wxRect::Inside->wxRect::Contains
    9.    wxTreeItemId's wxTreeItemId(long item) and operator long() const have been deprecated. Please use IsOk() to check if wxTreeItemId is valid and use default constructor to create invalid wxTreeItemId.
    10.    The timer functions are deprecated because they work with one global timer only and wxTimer and/or wxStopWatch classes should be used instead. The wxTimer class allows you to execute code at specified intervals. The wxStopWatch class allows you to measure time intervals.
    11.    wxDialog::OnOK/OnCancel() don't exist any more, use SetAffirmative/EscapeId()
    12.    Some classes (notably wxBitmap and wxImage) don't define operator==() as it used to work in somewhat unexpected way as it compared only internal pointers and not the object data. The code using it will have to be updated:
        * If the object was compared with wxNullXXX, use IsOk() method instead
        * If valid object need to be compared, use IsSameAs() to reproduce the old
          behaviour or change the code to avoid comparing bitmaps &c.

    Run-time Error and Solution:


    1.    VS 2008 enhance invalid iterator check, such iterator operator+(), ==, !=.
    2.    VS 2008 checks whether sort function is valid or not while debugging. If the sort function does exist contradictory points, there will be an error.
    In addition, because of doing validation, it will cost double time than before to do sorting in debug mode of VS.
    3.    Since wxGrid uses reference number to manage the lifetime of cell's attributes and renderers, and when the GetCellRenderer() was called, the reference number of the renderer is increased, So the DecRef() was called explicitly. Such as call wxGridCellAttr *wxGrid::GetOrCreateCellAttr(int row, int col) const;  Refer to wxGridCellWorker and wxGridCellRenderer (base class: wxGridCellWorker).
    4.    wxMenuItem::wxMenuItem(wxMenu* parentMenu = NULL, int id = wxID_SEPARATOR, const wxString& text = "", const wxString& helpString = "", wxItemKind kind = wxITEM_NORMAL, wxMenu* subMenu = NULL)
    For the custom (non-stock) menu items, text must be specified and while helpString may be left empty, it's recommended to pass the item description (which is automatically shown by the library in the status bar when the menu item is selected) in this parameter.
    5.    When using wxBitmapButton of wx289, please don't use SetBitmapSelect() to set the bitmap of the button, because that bitmap will only be shown when the button is selected.
    6.    wx2.8.9 changes the logic of parsing the virtual key from a char, 0 can not be the default key id, please use -1 instead.
    7.    Please use wxTreeCtrl's EVT_TREE_ITEM_MENU to handle the requirement of popping context menu, which can handle not only mouse event and also key event.
    8.    Don't forget to add the style of "EXPAND" for your control which you want it to be full fill the space.
    9.    Even if the Windows have been hidden, the Sizer also will reserve some space for expendable windows. Thus We should change the proportion flag to control the space allocation.
    10.    For bool cell of wxgrid, only "" and "1" are accepted as false and true from version 2.8.9. But in 2.6.2, both "" and "0" are accepted as false.
    11.    When wxPlot initializes, it need some font files, if it does not exist, gui will crash without any info.
    12.    SetSizeHint() is still an API which is needed to pay more attention, because it may cause some troubles. Maybe you can use Layout() instead or just eliminate it.
    13.    If Fit() will use window's best size to display, so if some window should change size in different situation, please use Fit() after create the window.
    14.    If you want to use EVT_TEXT_ENTER(id, func), please add wxTE_PROCESS_ENTER to window style. In 2.8.9, wxTE_PROCESS_ENTER is necessary to enable the event wxEVT_COMMAND_TEXT_ENTER.

  • 相关阅读:
    GPUImage滤镜效果翻译
    c3p0配置
    Android webview Mixed Content无法显示图片解决
    java连接jdbc Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by defa
    Castle DynamicProxy creation出现COMException(0x800703fa)错误的解决方案
    magent实现memcached集群的一个问题
    近期Windows 10 RedStone 2 Insider版本安装进度停留在百分之23、24解决方案
    XPS 15 9530使用Windows10频繁发生Intel HD Graphics 4600驱动奔溃的一种解决方法
    Visual Studio 2015开发Android App启动调试始终无法完成应用部署的解决方案
    Visual Studio 2015中创建C#的Android项目提示"Value cannot be null"的解决方法
  • 原文地址:https://www.cnblogs.com/zhenjing/p/2021820.html
Copyright © 2011-2022 走看看