<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 8.4 輸入對話框 這一類對話框讓用戶自己輸入信息,包括:wxNumberEntryDialog, wxTextEntryDialog, wxPasswordEntryDialog和 wxFindReplaceDialog. wxNumberEntryDialog wxNumberEntryDialog提示用戶輸入一個固定范圍內的數字,這個對話框包含一個spin控件因此,用戶既可以手動輸入數字,也可以通過鼠標點擊spin按鈕來調整數字的值,這個對話框是wxWidgets自己實現的,因此在各個平臺上的表現都是相似的. 創建wxNumberEntryDialog需要提供的參數包括一個父窗口,消息文本,提示文本(顯示在spin控件的前面),標題文本,默認值,最小值和最大值,位置等,然后調用ShowDialog函數,如果返回wxID_OK,則可以調用GetValue函數返回用戶輸入的數字的值. 下圖演示了其在windows平臺上的樣子: ![](img/mht9AB%281%29.tmp) wxNumberEntryDialog使用舉例 上圖中的對話框是用下面的代碼創建的: ``` #include "wx/numdlg.h" wxNumberEntryDialog dialog(parent, wxT("This is some text, actually a lot of text\nEven two rows of text"), wxT("Enter a number:"), wxT("Numeric input test"), 50, 0, 100); if (dialog.ShowModal() == wxID_OK) { long value = dialog.GetValue(); } ``` wxTextEntryDialog和wxPasswordEntryDialog wxTextEnTRyDialog和wxPasswordEntryDialog提供一個消息文本和一個單行文本框控件,以便用戶可以輸入文本,它們的功能很類似,只不過在wxPasswordEntryDialog中輸入的文本被以掩碼的方式顯示,因此是不能直接看到的. 下圖演示了wxTextEntryDialog對話框在windows平臺上的例子: ![](img/mht9AE%281%29.tmp) 創建這兩個對話框需要提供的參數包括父窗口指針,消息文本,標題文本,默認文本和一個類型參數.類型參數是一個比特位列表,其值為 wxOK, wxCANCEL,wxCENTRE(或者wxCENTER)等,你還可以傳遞wxTextCtrl的窗口類型wxTE_CENTRE(或 wxTE_CENTER)等. 你可以使用SetValue函數單獨設置其默認文本,還可以使用GetValue函數獲取用戶輸入的文本. wxTextEntryDialog使用舉例 上圖演示的對話框是用下面的代碼創建的: ``` #include "wx/textdlg.h" wxTextEntryDialog dialog(this, wxT("This is a small sample\n") wxT("A long, long string to test out the text entrybox"), wxT("Please enter a string"), wxT("Default value"), wxOK | wxCANCEL); if (dialog.ShowModal() == wxID_OK) wxMessageBox(dialog.GetValue(), wxT("Got string")); ``` wxFindReplaceDialog wxFindReplaceDialog是一個非模式對話框,它允許用戶用來輸入用于搜索的文本以及(如果需要的話)用來替換的文本.實際的搜索動作需要在其派生類或者其父窗口作為這個對話框某個按鈕時間的響應來完成.和大多數標準對話框不同,這種對話框必須擁有一個父窗口(非空),并且這個對話框必須是非模式顯示的,無論是基于設計還是實現來說. 下圖演示了windows系統上的查找和替換對話框: ![](img/mht9C1%281%29.tmp) 在其它平臺(比如GTK+或Mac OS X)上, wxWidgets使用自己實現的通用版對話框,如下圖所示: ![](img/mht9C4%281%29.tmp) 處理這個對話框相關的事件 wxFindReplaceDialog對話框在用戶點擊其上的按鈕的時候產生一些命令事件.事件處理函數采用wxFindDialogEvent類型的參數,事件映射宏中的窗口標識符為這個對話框的標識符,這些宏如下表所示: | EVT_FIND(id, func) | 當"查找"按鈕被按下時產生. | |:--- |:--- | | EVT_FIND_NEXT(id, func) | 當"下一個"按鈕被按下時產生. | | EVT_FIND_REPLACE(id, func) | 當"替換"按鈕被按下時產生. | | EVT_FIND_REPLACE_ALL(id, func) | 當"替換全部"按鈕被按下時產生. | | EVT_FIND_CLOSE(id, func) | 當用戶通過取消或者別的途徑關閉對話框的時候產生. | wxFindDialogEvent的成員函數 GetFlags返回下列值的一組比特位列表:wxFR_DOWN, wxFR_WHOLEWORD和wxFR_MATCHCASE. GetFindString返回用戶輸入的要查找的文本. GetreplaceString返回用戶輸入的要替換的文本. Getdialog返回一個指向產生這個事件的對話框的指針. 向對話框傳遞數據 創建wxFindReplaceDialog需要傳遞的參數包括一個父窗口,一個指向wxFindReplaceData的指針,標題文本和一個類型,類型是下表所示比特值的列表: | wxFR_REPLACEDIALOG | 指定對話框是查找替換對話框,而不是查找對話框. | |:--- |:--- | | wxFR_NOUPDOWN | 只是查找方向不允許被改變. | | wxFR_NOMATCHCASE | 支持僅允許大小敏感的搜索或替換. | | wxFR_NOWHOLEWORD | 指定不支持整字搜索的選項. | wxFindReplaceData保存了所有wxFindReplaceDialog相關的信息.用來對 wxFindReplaceDialog對象進行初始化的動作以及用來在wxFindReplaceDialog對話框關閉以后保存其相關的信息,它的值也會在每次產生wxFindDialogEvent事件的時候自動更新,因此你可以直接使用它的成員函數來代替使用wxFindDialogEvent事件的成員函數.使用對話框的GetData函數可以返回在構造對話框的時候填充的wxFindReplaceData對象指針. wxFindReplaceData的成員函數 下面列出了wxFindReplaceData的用來設置或者獲取相關數據的函數,注意那些用于設置的函數只在這個對話框顯示之前有用,在對話框顯示以后,調用這些用于設置的函數是沒有任何效果的. GetFindString和SetFindString用來設置或者獲取要查找的字符串. GetFlags和SetFlags用來設置或者獲取查找替換對話框選項的相應狀態(前面已經有具體描述). GetreplaceString和SetReplaceString用來設置或者獲取要替換成的字符串. 查找和替換使用舉例 下面演示了查找和替換對話框的使用方法,其中DoFind和DoReplace函數的代碼沒有列出來,它們用來進行應用程序相關的查找和替換動作.同時,這些函數還應該維護一組應用程序相關的變量,用來保存當前查找的位置,以便下次查找在這之后進行,這些函數還應該完成文檔視圖相匹配部分的高亮顯示. ``` #include "wx/fdrepdlg.h" BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(ID_REPLACE, MyFrame::ShowReplaceDialog) EVT_FIND(wxID_ANY, MyFrame::OnFind) EVT_FIND_NEXT(wxID_ANY, MyFrame::OnFind) EVT_FIND_REPLACE(wxID_ANY, MyFrame::OnReplace) EVT_FIND_REPLACE_ALL(wxID_ANY, MyFrame::OnReplaceAll) EVT_FIND_CLOSE(wxID_ANY, MyFrame::OnFindClose) END_EVENT_TABLE() void MyFrame::ShowReplaceDialog( wxCommandEvent& event ) { if ( m_dlgReplace ) { delete m_dlgReplace; m_dlgReplace = NULL; } else { m_dlgReplace = new wxFindReplaceDialog ( this, &m_findData, wxT("Find and replace dialog"), wxFR_REPLACEDIALOG ); m_dlgReplace->Show(true); } } void MyFrame::OnFind(wxFindDialogEvent& event) { if (!DoFind(event.GetFindString(), event.GetFlags())) { wxMessageBox(wxT("No more matches.")); } } void MyFrame::OnReplace(wxFindDialogEvent& event) { if (!DoReplace(event.GetFindString(), event.GetReplaceString(), event.GetFlags(), REPLACE_THIS)) { wxMessageBox(wxT("No more matches.")); } } void MyFrame::OnReplaceAll(wxFindDialogEvent& event) { if (DoReplace(event.GetFindString(), event.GetReplaceString(), event.GetFlags(), REPLACE_ALL)) { wxMessageBox(wxT("Replacements made.")); } else { wxMessageBox(wxT("No replacements made.")); } } void MyFrame::OnFindClose(wxFindDialogEvent& event) { m_dlgReplace->Destroy(); m_dlgReplace = NULL; } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看