【お知らせ】この部分は英語原文のみでの提供となります。何卒ご了承ください。
2.3.1.21 GETN_COMBO_BUTTON
Contents
Name
GETN_COMBO_BUTTON
Declaration
#define GETN_COMBO_BUTTON(_NODE_NAME, _BUTTON_NAME, _NODE_LABEL, _BUTTON_MODE, _COMBO_STR, _DEFAULT_VAL) _tmpSubNode = _tmpNode.AddTextNode(_DEFAULT_VAL, #_NODE_NAME, ONODETYPE_BROWSECOMBO);TREE_ADD_LABEL(_NODE_LABEL); string str=#_BUTTON_NAME + ".."+ _BUTTON_MODE + "|:|" +_COMBO_STR;_tmpSubNode.SetAttribute(STR_COMBO_ATTRIB, str);
Remark
This macro allows user to pick different kind of string to fill into an editable combo box. Programmer can prefill the combo dropdown as hints
Parameters
- _NODE_NAME
- [input] name of the control node
- _BUTTON_NAME
- [input] string to display on the button if _BUTTON_MODE is valid
- _NODE_LABEL
- [input] label to display on dynamic control
- _BUTTON_MODE
- [input] specify which type of dialog to open, valid mode are {"sheet(s)", "graph(s)", "column(s)", "matrix/matrices", "report(s)", "path(2)", "file(s)", "FileMultiSel", "Save", "SaveAs"}
- _COMBO_STR
- [input] tokens contains in this control
- _DEFAULT_VAL
- [input] default value of the combo list
Return
Examples
EX1
#include <GetNbox.h> void GETN_COMBO_BUTTON_ex1() { //this example prefill the combo with User.Dat, System.Dat, Group.Dat for user to pick //but also allow a browe button to let user browe to pick a file //the combo is prefilled with Untitle.dat GETN_BOX(tr) GETN_COMBO_BUTTON(fname, "Browse", "Picking a Data File", "File", "User.dat|System.dat|Group.dat", "Untitle.dat") if ( GetNBox(tr) ) printf("You have selected %s\n", tr.fname.strVal); else printf("User Cancel\n"); }
EX2
- This example shows
- 1. how to catch the combo button "click" event
- 2. how to show menu after click the button
#include <GetNbox.h> #include <control.h> int _event_func_ex(TreeNode& tr, int nRow, int nEvent, DWORD& dwEnables, LPCSTR lpcszNodeName, WndContainer& getNContainer, string& strAux, string& strErrMsg) { //on click the ">" button if(ONODETYPE_BROWSECOMBO == nEvent && lstrcmpi(lpcszNodeName,"test") == 0) { //show a menu Menu myMenu; myMenu.Add("Item1", 1, MF_STRING); myMenu.Add("Item2", 2, MF_STRING); int nSelCmd; POINT pt; GetCursorPos(&pt); myMenu.TrackPopupMenu(0, pt.x, pt.y, getNContainer.GetSafeHwnd(), &nSelCmd); if(nSelCmd > 0) { string strName; myMenu.GetMenuString(nSelCmd, strName, MF_STRING); tr.test.strVal = strName; } } return true; } void GETN_COMBO_BUTTON_ex2() { //combo with ">" button GETN_BOX(tr) GETN_COMBO_BUTTON(test, ">", "List", "User", "AAA|BBB", "") if ( GetNBox(tr, _event_func_ex) ) out_tree(tr); else printf("User Cancel\n"); }
See Also
GETN_BUTTON_BRANCH, GETN_BUTTON
Header to Include
GetNBox.h