{"id":30583376,"url":"https://github.com/synergex/activex_child_tabbing","last_synced_at":"2025-09-10T20:43:20.151Z","repository":{"id":49499331,"uuid":"445678474","full_name":"Synergex/ActiveX_Child_Tabbing","owner":"Synergex","description":"A UI Toolkit program, an ActiveX control, and some other associated files that demonstrate how you can control tabbing when a composite window includes an ActiveX control that has multiple controls (two edit controls in this case) and that uses TAB and SHIFT+TAB internally.","archived":false,"fork":false,"pushed_at":"2022-07-25T15:53:13.000Z","size":209,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-03-26T20:17:16.302Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Synergex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-07T23:28:26.000Z","updated_at":"2024-03-26T20:17:16.303Z","dependencies_parsed_at":"2022-09-16T07:51:05.576Z","dependency_job_id":null,"html_url":"https://github.com/Synergex/ActiveX_Child_Tabbing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Synergex/ActiveX_Child_Tabbing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Synergex%2FActiveX_Child_Tabbing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Synergex%2FActiveX_Child_Tabbing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Synergex%2FActiveX_Child_Tabbing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Synergex%2FActiveX_Child_Tabbing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Synergex","download_url":"https://codeload.github.com/Synergex/ActiveX_Child_Tabbing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Synergex%2FActiveX_Child_Tabbing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272655961,"owners_count":24971220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-29T02:00:10.610Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-29T08:33:50.162Z","updated_at":"2025-08-29T08:33:50.719Z","avatar_url":"https://github.com/Synergex.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ActiveX_Child_Tabbing\u003cbr /\u003e\n**Created Date:** 9/7/2007\u003cbr /\u003e\n**Last Updated:** 5/21/2008\u003cbr /\u003e\n**Description:** A UI Toolkit program, an ActiveX control, and some other associated files that demonstrate how you can control tabbing when a composite window includes an ActiveX control that has multiple controls (two edit controls in this case) and that uses TAB and SHIFT+TAB internally.\u003cbr /\u003e\n**Platforms:** Windows\u003cbr /\u003e\n**Products:** UI Toolkit; ActiveX API\u003cbr /\u003e\n**Minimum Version:** 9.1\u003cbr /\u003e\n**Author:** Chip Camden\n\u003chr\u003e\n\n**Additional Information:**\nTesttab.dbl is a UI Toolkit program that controls the way tabbing works with an\nActiveX Control that\n\n-- uses TAB and SHIFT+TAB internally (i.e., it processes these as\naccelerators), which prevents users from tabbing out of the child.\n\n-- includes two edit controls.\n\nFor the first issue, the control is coded to invoke a method that signals the\n\"C_NEXT\" or \"C_PREV\" menu entry at the point a user would tab out of the\ncontrol. (Note this isn't necessary for many ActiveX controls. If a control\nuses TAB and SHIFT+TAB internally but returns them as unprocessed when it\nreaches the end of its own tabbing order, TAB and SHIFT+TAB do tab out of the\nchild. This is usually how controls created with VB6 work.)\n\nFor the second issue, if an ActiveX control consists of more than one control\nand has its own tabbing order, focus within the ActiveX control may not be\nwhere you want it when the user tabs to the ActiveX control. For this program,\nthe ActiveX control consists of two edit controls, and focus within the ActiveX\ncontrol generally lands on the edit control that last had focus. To work around\nthis, the Toolkit program includes a composite window processing method that in\nturn uses a method in the ActiveX control to set focus.\n\nThe important parts of the Synergy code are the two functions at the end of\ntesttab.dbl:\n\n-- The mfcctl_process function (used as the child window method when C_PROCESS\nprocesses the ActiveX window) instructs the control to focus the correct edit\ncontrol depending on the reason for achieving focus. It also instructs the\nruntime (via ax_wantskey) that the control wants to process TAB and SHIFT+TAB.\n\n-- The mfcctl_tabout function is an event handler for the control's Tabout\nevent. This is fired by the control whenever a TAB or SHIFT+TAB results in\ntabbing off either end of the control's own internal tabbing order.\n\nThe ActiveX control is written in C++, and the sources are included so you can\nsee how the control fires the required Tabout event.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynergex%2Factivex_child_tabbing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsynergex%2Factivex_child_tabbing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsynergex%2Factivex_child_tabbing/lists"}