zac seo博客,网站seo插件,国际网站建设,手机抖音你做我女朋友好吗套路网站VxTerm软件可以在本站链接下载#xff1a;唯一国产化SSH工具下载#xff0c;单文件纯绿色不需要安装#xff0c;替代SecureCRT
在软件的主界面中#xff0c;增加了一个地址栏功能。 本人的文章内容都是经本人亲自实现并验证成功的干货#xff0c;关注我#xff0c;互相交…
VxTerm软件可以在本站链接下载唯一国产化SSH工具下载单文件纯绿色不需要安装替代SecureCRT
在软件的主界面中增加了一个地址栏功能。 本人的文章内容都是经本人亲自实现并验证成功的干货关注我互相交流学习共同进步
1、首先得先假设您已实现了一个工具栏。
如果您还没有实现这个那么就关注我吧以后我应该会增加文章介绍如何实现这么一个工具栏的。
2、工具栏实现后希望在工具栏中增加Edit/Combo等组件实现类似于地址栏、搜索栏的功能。
实现步骤
1、先在资源管理器中添加一个toolbar IDR_TOOLBAR_QuickConnect在里面增加相应的占位图标 像我这样中间那两个图标一个是用于连接协议ID为ID_PROTOCOL一个是用于地址栏ID为ID_ADDRESS。
2、在头文件中定义一个新的工具栏 CMFCToolBar m_wndQuickConnectBar;
同时定义两个变量用于之后的组件管理
CMFCToolBarComboBoxButton * m_QuickConnectComboProtocol 0;CMFCToolBarComboBoxButton * m_QuickConnectComboAddress 0;
3、初始化
if (!m_wndQuickConnectBar.Create(this) || !m_wndQuickConnectBar.LoadToolBar(IDR_TOOLBAR_QuickConnect)){TRACE0(未能创建快速连接工具栏\n);return -1; }m_wndQuickConnectBar.ReplaceButton(ID_PROTOCOL, CMFCToolBarComboBoxButton(ID_PROTOCOL, 0, CBS_DROPDOWNLIST, 80));m_QuickConnectComboProtocol (CMFCToolBarComboBoxButton*) m_wndQuickConnectBar.GetButton(1); //第1个图标为Protocolm_QuickConnectComboProtocol-AddItem(LTELNET);m_QuickConnectComboProtocol-AddItem(LSSH);m_QuickConnectComboProtocol-SelectItem(LSSH);m_wndQuickConnectBar.ReplaceButton(ID_ADDRESS, CMFCToolBarComboBoxButton(ID_ADDRESS, 0, CBS_DROPDOWN, 150));m_QuickConnectComboAddress (CMFCToolBarComboBoxButton*)m_wndQuickConnectBar.GetButton(2); //第2个图标为Addressm_wndQuickConnectBar.SetWindowText(L快速连接);
在代码里由于在toolbar中增加了2个占位图标所以可以使用ReplaceButton对它们一一进行替换。如果不使用占位图标方式可以用InsertButton来添加需自行从帮助中找到关于它的调用方法。
ReplaceButton的原型定义
int ReplaceButton(UINT uiCmd,const CMFCToolBarButton button,BOOL bAllFALSE); 参数
uiCmd [in] 要替换的按钮的命令 ID。
button [in] 对要插入的 CMFCToolBarButton 的引用。
bAll [in] 一个布尔值该值指定是否替换具有 uiCmd 指定的命令 ID 的所有按钮。 如果此参数为 TRUE则替换具有指定命令 ID 的所有按钮。 否则将替换第一个按钮。
返回值
已替换的按钮数。 如果工具栏上不存在具有指定命令 ID 的按钮此方法将返回 0。
注解
如果要添加无法从资源加载的工具栏按钮请调用此方法。 可以在设计时创建占位符按钮并在初始化工具栏时将该按钮替换为自定义按钮。 有关使用此方法的示例请参阅 VisualStudioDemo 示例。 4、在地址栏中增加消息响应实现输入内容后按回车执行功能模块
在主程序的主消息循环模块中增加特定按钮的点击响应在toolbar中前后两个图标分别为ID_QuickConnect_Open和ID_DoQuickConnectFromBar BEGIN_MESSAGE_MAP(CVxTermApp, CWinAppEx)
。。。ON_COMMAND(ID_QuickConnect_Open, CVxTermApp::OnQuickconnect)ON_COMMAND(ID_DoQuickConnectFromBar, CVxTermApp::OnDoQuickconnectFromBar)
。。。
END_MESSAGE_MAP()
这两个消息响应正确执行后咱们能确定可以在此模块中对中间的两个ID_PROTOCOL和ID_ADDRESS也能响应相应的消息比如按回车键。
在此模块下面增加 BOOL CVxTermApp::PreTranslateMessage(MSG* pMsg)
{switch (pMsg-message){case WM_KEYDOWN:{if (pMsg-wParam VK_RETURN){HWND p GetFocus(); //获取当前的输入焦点CMainFrame* pM (CMainFrame*)theApp.m_pMainWnd;CMFCToolBarComboBoxButton * p2 pM-m_QuickConnectComboAddress;CEdit* p22 p2-GetEditCtrl(); //获取地址栏中的Edit组件的对象if (p p22-GetSafeHwnd()) //判断当前焦点是否在此Edit组件对象中{OnDoQuickconnectFromBar(); //执行return 1;}}}break;
}return CWinAppEx::PreTranslateMessage(pMsg);
} 至此我们实现了
在工具栏中增加4个功能组件和相应的操作响应
1打开快速连接的界面 2直接在工具栏中选择连接协议 3直接在工具栏中输入IP和端口等信息 4在地址输入框中按回车或者是点击第4个图标开始执行